From 521b0e4b163d3570dcf5e77a2f2bfdd01824f4af Mon Sep 17 00:00:00 2001 From: owen05 Date: Mon, 9 Nov 2020 14:26:38 +0800 Subject: [PATCH] add route test framework --- .gitignore | 6 + build-v1/contracts/Admin.json | 7151 ++ .../BandBNBBUSDPriceOracleProxy.json | 1047 + .../ChainlinkCOMPUSDCPriceOracleProxy.json | 788 + .../ChainlinkETHPriceOracleProxy.json | 788 + .../ChainlinkETHUSDTPriceOracleProxy.json | 862 + .../ChainlinkLENDUSDCPriceOracleProxy.json | 788 + .../ChainlinkLINKUSDCPriceOracleProxy.json | 788 + .../ChainlinkSNXUSDCPriceOracleProxy.json | 788 + .../ChainlinkWBTCUSDCPriceOracleProxy.json | 896 + .../ChainlinkYFIUSDCPriceOracleProxy.json | 1573 + build-v1/contracts/CloneFactory.json | 1281 + build-v1/contracts/ConstOracle.json | 607 + build-v1/contracts/DODO.json | 5964 ++ build-v1/contracts/DODOEthProxy.json | 34491 +++++++++ build-v1/contracts/DODOLpToken.json | 10705 +++ build-v1/contracts/DODOMath.json | 9192 +++ build-v1/contracts/DODOMine.json | 33367 +++++++++ build-v1/contracts/DODOMineReader.json | 3640 + build-v1/contracts/DODORewardVault.json | 1496 + build-v1/contracts/DODOToken.json | 7127 ++ build-v1/contracts/DODOZoo.json | 9817 +++ build-v1/contracts/DecimalMath.json | 2332 + build-v1/contracts/IBandOracleAggregator.json | 1034 + build-v1/contracts/IChainlink.json | 1547 + build-v1/contracts/ICloneFactory.json | 1281 + build-v1/contracts/IDODO.json | 3900 + build-v1/contracts/IDODOCallee.json | 440 + build-v1/contracts/IDODOLpToken.json | 838 + build-v1/contracts/IDODOMine.json | 3630 + build-v1/contracts/IDODORewardVault.json | 1388 + build-v1/contracts/IDODOZoo.json | 34000 +++++++++ build-v1/contracts/IERC20.json | 1889 + build-v1/contracts/IMinimumOracle.json | 2743 + build-v1/contracts/IOracle.json | 257 + build-v1/contracts/IUniswapV2Callee.json | 59170 +++++++++++++++ build-v1/contracts/IUniswapV2ERC20.json | 59452 +++++++++++++++ build-v1/contracts/IUniswapV2Factory.json | 59305 +++++++++++++++ build-v1/contracts/IUniswapV2Pair.json | 59793 +++++++++++++++ build-v1/contracts/IWETH.json | 1735 + build-v1/contracts/InitializableOwnable.json | 2453 + build-v1/contracts/LiquidityProvider.json | 29808 ++++++++ build-v1/contracts/LockedTokenVault.json | 14437 ++++ build-v1/contracts/Math.json | 59141 +++++++++++++++ build-v1/contracts/Migrations.json | 1451 + build-v1/contracts/MinimumOracle.json | 2793 + .../contracts/MultiSigWalletWithTimelock.json | 31203 ++++++++ build-v1/contracts/NaiveOracle.json | 835 + build-v1/contracts/Ownable.json | 2895 + build-v1/contracts/Pricing.json | 14277 ++++ build-v1/contracts/ReentrancyGuard.json | 648 + build-v1/contracts/SafeERC20.json | 4183 ++ build-v1/contracts/SafeMath.json | 4884 ++ build-v1/contracts/Settlement.json | 15774 ++++ build-v1/contracts/Storage.json | 6490 ++ build-v1/contracts/TestERC20.json | 7880 ++ build-v1/contracts/Trader.json | 20610 ++++++ build-v1/contracts/Types.json | 181 + build-v1/contracts/UQ112x112.json | 59141 +++++++++++++++ build-v1/contracts/UniswapArbitrageur.json | 17989 +++++ build-v1/contracts/UniswapV2ERC20.json | 59452 +++++++++++++++ build-v1/contracts/UniswapV2Pair.json | 59798 ++++++++++++++++ build-v1/contracts/WETH9.json | 6950 ++ contracts/SmartRoute/SmartApprove.sol | 36 + contracts/SmartRoute/SmartSwap.sol | 118 + contracts/intf/ISmartApprove.sol | 15 + contracts/lib/ExternalCall.sol | 34 + contracts/lib/UniversalERC20.sol | 75 + package-lock.json | 6520 +- test/Route/Route.test.ts | 171 + test/utils-v1/Context.ts | 195 + test/utils-v1/Contracts.ts | 118 + test/utils-v1/Converter.ts | 15 + test/utils-v1/EVM.ts | 92 + test/utils-v1/Log.ts | 30 + tsconfig.json | 2 +- yarn.lock | 6820 -- 77 files changed, 854505 insertions(+), 10905 deletions(-) create mode 100644 build-v1/contracts/Admin.json create mode 100644 build-v1/contracts/BandBNBBUSDPriceOracleProxy.json create mode 100644 build-v1/contracts/ChainlinkCOMPUSDCPriceOracleProxy.json create mode 100644 build-v1/contracts/ChainlinkETHPriceOracleProxy.json create mode 100644 build-v1/contracts/ChainlinkETHUSDTPriceOracleProxy.json create mode 100644 build-v1/contracts/ChainlinkLENDUSDCPriceOracleProxy.json create mode 100644 build-v1/contracts/ChainlinkLINKUSDCPriceOracleProxy.json create mode 100644 build-v1/contracts/ChainlinkSNXUSDCPriceOracleProxy.json create mode 100644 build-v1/contracts/ChainlinkWBTCUSDCPriceOracleProxy.json create mode 100644 build-v1/contracts/ChainlinkYFIUSDCPriceOracleProxy.json create mode 100644 build-v1/contracts/CloneFactory.json create mode 100644 build-v1/contracts/ConstOracle.json create mode 100644 build-v1/contracts/DODO.json create mode 100644 build-v1/contracts/DODOEthProxy.json create mode 100644 build-v1/contracts/DODOLpToken.json create mode 100644 build-v1/contracts/DODOMath.json create mode 100644 build-v1/contracts/DODOMine.json create mode 100644 build-v1/contracts/DODOMineReader.json create mode 100644 build-v1/contracts/DODORewardVault.json create mode 100644 build-v1/contracts/DODOToken.json create mode 100644 build-v1/contracts/DODOZoo.json create mode 100644 build-v1/contracts/DecimalMath.json create mode 100644 build-v1/contracts/IBandOracleAggregator.json create mode 100644 build-v1/contracts/IChainlink.json create mode 100644 build-v1/contracts/ICloneFactory.json create mode 100644 build-v1/contracts/IDODO.json create mode 100644 build-v1/contracts/IDODOCallee.json create mode 100644 build-v1/contracts/IDODOLpToken.json create mode 100644 build-v1/contracts/IDODOMine.json create mode 100644 build-v1/contracts/IDODORewardVault.json create mode 100644 build-v1/contracts/IDODOZoo.json create mode 100644 build-v1/contracts/IERC20.json create mode 100644 build-v1/contracts/IMinimumOracle.json create mode 100644 build-v1/contracts/IOracle.json create mode 100644 build-v1/contracts/IUniswapV2Callee.json create mode 100644 build-v1/contracts/IUniswapV2ERC20.json create mode 100644 build-v1/contracts/IUniswapV2Factory.json create mode 100644 build-v1/contracts/IUniswapV2Pair.json create mode 100644 build-v1/contracts/IWETH.json create mode 100644 build-v1/contracts/InitializableOwnable.json create mode 100644 build-v1/contracts/LiquidityProvider.json create mode 100644 build-v1/contracts/LockedTokenVault.json create mode 100644 build-v1/contracts/Math.json create mode 100644 build-v1/contracts/Migrations.json create mode 100644 build-v1/contracts/MinimumOracle.json create mode 100644 build-v1/contracts/MultiSigWalletWithTimelock.json create mode 100644 build-v1/contracts/NaiveOracle.json create mode 100644 build-v1/contracts/Ownable.json create mode 100644 build-v1/contracts/Pricing.json create mode 100644 build-v1/contracts/ReentrancyGuard.json create mode 100644 build-v1/contracts/SafeERC20.json create mode 100644 build-v1/contracts/SafeMath.json create mode 100644 build-v1/contracts/Settlement.json create mode 100644 build-v1/contracts/Storage.json create mode 100644 build-v1/contracts/TestERC20.json create mode 100644 build-v1/contracts/Trader.json create mode 100644 build-v1/contracts/Types.json create mode 100644 build-v1/contracts/UQ112x112.json create mode 100644 build-v1/contracts/UniswapArbitrageur.json create mode 100644 build-v1/contracts/UniswapV2ERC20.json create mode 100644 build-v1/contracts/UniswapV2Pair.json create mode 100644 build-v1/contracts/WETH9.json create mode 100644 contracts/SmartRoute/SmartApprove.sol create mode 100644 contracts/SmartRoute/SmartSwap.sol create mode 100644 contracts/intf/ISmartApprove.sol create mode 100644 contracts/lib/ExternalCall.sol create mode 100644 contracts/lib/UniversalERC20.sol create mode 100644 test/Route/Route.test.ts create mode 100644 test/utils-v1/Context.ts create mode 100644 test/utils-v1/Contracts.ts create mode 100644 test/utils-v1/Converter.ts create mode 100644 test/utils-v1/EVM.ts create mode 100644 test/utils-v1/Log.ts delete mode 100644 yarn.lock diff --git a/.gitignore b/.gitignore index 06def01..7f476ea 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,9 @@ flattered/ *.swo *.swp + +node_modules + +#Hardhat files +cache +artifacts diff --git a/build-v1/contracts/Admin.json b/build-v1/contracts/Admin.json new file mode 100644 index 0000000..7005891 --- /dev/null +++ b/build-v1/contracts/Admin.json @@ -0,0 +1,7151 @@ +{ + "contractName": "Admin", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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": "uint256", + "name": "oldGasPriceLimit", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newGasPriceLimit", + "type": "uint256" + } + ], + "name": "UpdateGasPriceLimit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldK", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newK", + "type": "uint256" + } + ], + "name": "UpdateK", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldLiquidityProviderFeeRate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newLiquidityProviderFeeRate", + "type": "uint256" + } + ], + "name": "UpdateLiquidityProviderFeeRate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldMaintainerFeeRate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newMaintainerFeeRate", + "type": "uint256" + } + ], + "name": "UpdateMaintainerFeeRate", + "type": "event" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BUYING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "_CLAIMED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_CLOSED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_BASE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_GAS_PRICE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_K_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_LP_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MAINTAINER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MT_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_ORACLE_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_R_STATUS_", + "outputs": [ + { + "internalType": "enum Types.RStatus", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SELLING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SUPERVISOR_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TRADE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getBaseCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getQuoteCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalBaseCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalQuoteCapital", + "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": "version", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOracle", + "type": "address" + } + ], + "name": "setOracle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newSupervisor", + "type": "address" + } + ], + "name": "setSupervisor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newMaintainer", + "type": "address" + } + ], + "name": "setMaintainer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newLiquidityPorviderFeeRate", + "type": "uint256" + } + ], + "name": "setLiquidityProviderFeeRate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newMaintainerFeeRate", + "type": "uint256" + } + ], + "name": "setMaintainerFeeRate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newK", + "type": "uint256" + } + ], + "name": "setK", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newGasPriceLimit", + "type": "uint256" + } + ], + "name": "setGasPriceLimit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "disableTrading", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableTrading", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "disableQuoteDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableQuoteDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "disableBaseDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableBaseDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "disableBuying", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableBuying", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "disableSelling", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableSelling", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newBaseBalanceLimit", + "type": "uint256" + } + ], + "name": "setBaseBalanceLimit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newQuoteBalanceLimit", + "type": "uint256" + } + ], + "name": "setQuoteBalanceLimit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\":\"uint256\",\"name\":\"oldGasPriceLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newGasPriceLimit\",\"type\":\"uint256\"}],\"name\":\"UpdateGasPriceLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldK\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newK\",\"type\":\"uint256\"}],\"name\":\"UpdateK\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldLiquidityProviderFeeRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newLiquidityProviderFeeRate\",\"type\":\"uint256\"}],\"name\":\"UpdateLiquidityProviderFeeRate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaintainerFeeRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaintainerFeeRate\",\"type\":\"uint256\"}],\"name\":\"UpdateMaintainerFeeRate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_RECEIVE_QUOTE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BUYING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_CLAIMED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_CLOSED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_BASE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_QUOTE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_GAS_PRICE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_K_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_LP_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MAINTAINER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MT_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_ORACLE_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_RECEIVE_BASE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_R_STATUS_\",\"outputs\":[{\"internalType\":\"enum Types.RStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SELLING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SUPERVISOR_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_BASE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_QUOTE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TRADE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableBaseDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableBuying\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableQuoteDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableSelling\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableTrading\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableBaseDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableBuying\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableQuoteDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableSelling\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableTrading\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getBaseCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOraclePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getQuoteCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalBaseCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalQuoteCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBaseBalanceLimit\",\"type\":\"uint256\"}],\"name\":\"setBaseBalanceLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newGasPriceLimit\",\"type\":\"uint256\"}],\"name\":\"setGasPriceLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newK\",\"type\":\"uint256\"}],\"name\":\"setK\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newLiquidityPorviderFeeRate\",\"type\":\"uint256\"}],\"name\":\"setLiquidityProviderFeeRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMaintainer\",\"type\":\"address\"}],\"name\":\"setMaintainer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMaintainerFeeRate\",\"type\":\"uint256\"}],\"name\":\"setMaintainerFeeRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOracle\",\"type\":\"address\"}],\"name\":\"setOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuoteBalanceLimit\",\"type\":\"uint256\"}],\"name\":\"setQuoteBalanceLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newSupervisor\",\"type\":\"address\"}],\"name\":\"setSupervisor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"Admin\"},\"userdoc\":{\"methods\":{},\"notice\":\"Functions for admin operations\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Admin.sol\":\"Admin\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Admin.sol\":{\"keccak256\":\"0x04a6c300c659e67733e5d89e709e052f0d095a5e825a467410d49ef6691fae56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f6d4417d9c9bb16431ab7622d6e0f8e8f2233fbad1e71d6ff7971926d9470807\",\"dweb:/ipfs/QmXqLYnbs6Yuhhg9knkNx5AvZWqxkvZsVKmPUJo2j9FqtE\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol\":{\"keccak256\":\"0xbf15f2a72d59bbf0ed32b2a24fc4a68d45ffaa60dd2b2c1cc555d03ec1cd2f0a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7289884a2a8939295c4f61aeb7754bd3ce49e9d09188a1eddb762342589f36be\",\"dweb:/ipfs/QmaHYH51wieAyxBDASyHyfYSeu6UJNV7adD3AceeZXCgcZ\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol\":{\"keccak256\":\"0x2183977c7a3cf5aa8d2f56d2167bf59515e34a8e4ebd2402efa85b612631955f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://61766578f8d1bef7f51912a5327e8d4e95e3d9adb509e9486b4e2c8cf179f5e6\",\"dweb:/ipfs/QmXJRK4JKMrJkdn7BFVueoNRixsu26shnX3Dxeb5T9JKK4\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol\":{\"keccak256\":\"0xed4a31155c30a764366aba2244e42406269e59618088f93c02f1b4c9fec9e53c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bd3d50110c9120d942f7713e1cfced848ba7721ea336b2d9c4a87a6eb2a82ca9\",\"dweb:/ipfs/QmTYFeDcAyA2JpfoL1LsGLgj4TeRJxNV1rM27vdcaZSwpF\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":{\"keccak256\":\"0x9a093cbac4e37ed4ee5e27495dae08754bbfec81f7c0ceb57a5a7ac4f362208f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ddd9e5de1c555f0d1232e148fe18574e6adaa348e792844d9011bbd39bf908f\",\"dweb:/ipfs/QmSgZNwPNqCrQC4kJNdwH3iQNasbTfw2cbTtAtNVcpqnYc\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol\":{\"keccak256\":\"0xf462d86a85221f424c5a40f3c0d4a699c72a61b31ed07091ffb0e0b28b3cd137\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3d92b79f4527b3d7812395c41e5d0786309a121b99af3bff5cd7663f7255d335\",\"dweb:/ipfs/QmYkQANWtKsJNHKeD6PrtUFeC3D6uWAxhXjB97eBHwqtzK\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol\":{\"keccak256\":\"0xc9c3fc946350fd72083a9d5b1327ff923533ef37b054bc7b6007562b20b0faaf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fc140417457139fb240427629673bfaf970c5d4568ad1cfe582764c6e4855bbb\",\"dweb:/ipfs/Qmd7ESYe5kyM6NYiSzeFE74f1YGGPXzpdVd5qnYg2AvgH8\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol\":{\"keccak256\":\"0x0aebcc897b4de833e87e46a11e5a70d2b6e1d2fd99ebdf9e32e6421924f18b15\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a1098dace4f0664b0e3f5c3b6ce535ad2aba52e68fb6d1ea94b09debc06ed33c\",\"dweb:/ipfs/QmRbiq7M3Y8utAXaPWmVooGmoYF27N5dKVn6QYTaDFwqdP\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5061142b806100206000396000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c80637c9b8e89116101d3578063b2094fd311610104578063d689107c116100a2578063ec2fd46d1161007c578063ec2fd46d146105ca578063f2220416146105d2578063f2fde38b146105e5578063f67ed448146105f857610378565b8063d689107c146105b2578063dd58b41c146105ba578063eab5d20e146105c257610378565b8063c5bbffe8116100de578063c5bbffe814610592578063c6b73cf91461059a578063cc062b58146105a2578063d4b97046146105aa57610378565b8063b2094fd31461057a578063bc7d679d14610582578063c0ffa1781461058a57610378565b806397316ad811610171578063a598aca71161014b578063a598aca71461055a578063ab44a7a314610562578063ac1fbc981461056a578063aceecbc81461057257610378565b806397316ad8146105375780639b020fba1461054a578063a3161a561461055257610378565b80638a8c523c116101ad5780638a8c523c1461050c5780638ff5e7421461051457806390cbf8221461051c5780639299eb301461052457610378565b80637c9b8e89146104e95780638456db15146104f1578063892daf05146104f957610378565b80633960f142116102ad57806367de8be91161024b57806373a2ab7c1161022557806373a2ab7c146104b3578063796da7af146104bb5780637adbf973146104c35780637aed942d146104d657610378565b806367de8be91461047857806368be20ad1461048b5780636ec6a58d146104ab57610378565b80634de4527e116102875780634de4527e1461044d5780634e71e0c81461045557806354fd4d501461045d5780635bb7552a1461046557610378565b80633960f142146104355780634322ec831461043d5780634a248d2a1461044557610378565b80631769ddaa1161031a578063245c9685116102f4578063245c968514610415578063247f993b1461041d5780632aa82c651461042557806336ac41a81461042d57610378565b80631769ddaa146103f057806317700f01146103f857806317be952e1461040057610378565b80631184d8be116103565780631184d8be146103b857806313c57624146103c057806313ea5d29146103c857806316048bc4146103db57610378565b8063092316021461037d5780630cd1667d146103925780630e6518e9146103b0575b600080fd5b61039061038b36600461122b565b61060b565b005b61039a610693565b6040516103a791906113de565b60405180910390f35b61039a610716565b61039061071c565b610390610785565b6103906103d6366004611204565b6107d3565b6103e361081f565b6040516103a7919061125b565b61039a61082e565b610390610834565b610408610882565b6040516103a7919061127a565b61039a61088b565b610390610891565b61039a6108dc565b610390610921565b6103e361098a565b6103e3610999565b6103e36109a8565b61039a6109b7565b6103906109bd565b61039a610a4b565b61039061047336600461122b565b610a50565b61039061048636600461122b565b610ac6565b61049e610499366004611204565b610b38565b6040516103a7919061126f565b61049e610b4d565b6103e3610b5d565b61039a610b6c565b6103906104d1366004611204565b610bb1565b61039a6104e4366004611204565b610bfd565b61039a610c84565b6103e3610c8a565b61039061050736600461122b565b610c99565b610390610cf2565b61049e610d5b565b610390610d69565b610390610532366004611204565b610dcc565b61039061054536600461122b565b610e18565b61039a610e71565b61049e610e77565b61049e610e80565b61039a610e90565b6103e3610e96565b610390610ea5565b61039a610ef1565b610390610ef7565b61039a610f45565b61049e610f4b565b61039a610f5b565b610390610f61565b6103e3610fc6565b6103e3610fd5565b61049e610fe4565b61039a610ff4565b61039a610ffa565b6103906105e036600461122b565b611000565b6103906105f3366004611204565b611072565b61039a610606366004611204565b61111d565b6006546001600160a01b031633148061062e57506000546001600160a01b031633145b6106535760405162461bcd60e51b815260040161064a906112d2565b60405180910390fd5b7f808f99cfd15f1be6019f93dc76c81d5bd82e0b3e0b3d23a54f5a2e647a6cc3cc600254826040516106869291906113e7565b60405180910390a1600255565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156106d857600080fd5b505afa1580156106ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107109190611243565b90505b90565b60165481565b6000546001600160a01b031633146107465760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff16156107705760405162461bcd60e51b815260040161064a90611330565b6001805460ff60c01b1916600160c01b179055565b6006546001600160a01b03163314806107a857506000546001600160a01b031633145b6107c45760405162461bcd60e51b815260040161064a906112d2565b6001805460ff60c01b19169055565b6000546001600160a01b031633146107fd5760405162461bcd60e51b815260040161064a9061137a565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031681565b60055481565b6006546001600160a01b031633148061085757506000546001600160a01b031633145b6108735760405162461bcd60e51b815260040161064a906112d2565b6001805460ff60c81b19169055565b600e5460ff1681565b60105481565b6006546001600160a01b03163314806108b457506000546001600160a01b031633145b6108d05760405162461bcd60e51b815260040161064a906112d2565b6003805460ff19169055565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156106d857600080fd5b6000546001600160a01b0316331461094b5760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff16156109755760405162461bcd60e51b815260040161064a90611330565b6001805460ff60b81b1916600160b81b179055565b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b031633146109e75760405162461bcd60e51b815260040161064a906112ab565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b6000546001600160a01b03163314610a7a5760405162461bcd60e51b815260040161064a9061137a565b7f3ce6ea91adda496b7a0546fa6558e5b52c3a509de6015820efb00ca4020e0a07600b5482604051610aad9291906113e7565b60405180910390a1600b819055610ac261114e565b5050565b6000546001600160a01b03163314610af05760405162461bcd60e51b815260040161064a9061137a565b7f023a40bebf7ac113f81c3d628073246cf9e0bc49980a9d6a9531498ce9e3dd1c600d5482604051610b239291906113e7565b60405180910390a1600d819055610ac261114e565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b1580156106d857600080fd5b6000546001600160a01b03163314610bdb5760405162461bcd60e51b815260040161064a9061137a565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6013546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610c2e90859060040161125b565b60206040518083038186803b158015610c4657600080fd5b505afa158015610c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7e9190611243565b92915050565b60125481565b6001546001600160a01b031681565b6000546001600160a01b03163314610cc35760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff1615610ced5760405162461bcd60e51b815260040161064a90611330565b600455565b6000546001600160a01b03163314610d1c5760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff1615610d465760405162461bcd60e51b815260040161064a90611330565b6001805460ff60c81b1916600160c81b179055565b600354610100900460ff1681565b6000546001600160a01b03163314610d935760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff1615610dbd5760405162461bcd60e51b815260040161064a90611330565b6003805460ff19166001179055565b6000546001600160a01b03163314610df65760405162461bcd60e51b815260040161064a9061137a565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e425760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff1615610e6c5760405162461bcd60e51b815260040161064a90611330565b600555565b60045481565b60035460ff1681565b600154600160c01b900460ff1681565b600b5481565b6014546001600160a01b031681565b6006546001600160a01b0316331480610ec857506000546001600160a01b031633145b610ee45760405162461bcd60e51b815260040161064a906112d2565b6003805461ff0019169055565b600f5481565b6006546001600160a01b0316331480610f1a57506000546001600160a01b031633145b610f365760405162461bcd60e51b815260040161064a906112d2565b6001805460ff60b81b19169055565b600c5481565b600154600160b81b900460ff1681565b60155481565b6000546001600160a01b03163314610f8b5760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff1615610fb55760405162461bcd60e51b815260040161064a90611330565b6003805461ff001916610100179055565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b60115481565b600d5481565b6000546001600160a01b0316331461102a5760405162461bcd60e51b815260040161064a9061137a565b7f6b04da3d58e4b37d99652babb3ea2bc25ce94379bfff3059f03d61b26c59e553600c548260405161105d9291906113e7565b60405180910390a1600c819055610ac261114e565b6000546001600160a01b0316331461109c5760405162461bcd60e51b815260040161064a9061137a565b6001600160a01b0381166110c25760405162461bcd60e51b815260040161064a90611309565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610c2e90859060040161125b565b6000670de0b6b3a7640000600d54106111795760405162461bcd60e51b815260040161064a906113c0565b6000600d541161119b5760405162461bcd60e51b815260040161064a9061128e565b670de0b6b3a76400006111bb600c54600b546111d890919063ffffffff16565b106107135760405162461bcd60e51b815260040161064a90611355565b6000828201838110156111fd5760405162461bcd60e51b815260040161064a9061139d565b9392505050565b600060208284031215611215578081fd5b81356001600160a01b03811681146111fd578182fd5b60006020828403121561123c578081fd5b5035919050565b600060208284031215611254578081fd5b5051919050565b6001600160a01b0391909116815260200190565b901515815260200190565b602081016003831061128857fe5b91905290565b60208082526003908201526204b3d360ec1b604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526017908201527f4e4f545f53555045525649534f525f4f525f4f574e4552000000000000000000604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600b908201526a1113d113d7d0d313d4d15160aa1b604082015260600190565b6020808252600b908201526a4645455f524154453e3d3160a81b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252600490820152634b3e3d3160e01b604082015260600190565b90815260200190565b91825260208201526040019056fea2646970667358221220e856033bc330207be0100003cace375d8fad287d256324bddc13e5a37282509e64736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103785760003560e01c80637c9b8e89116101d3578063b2094fd311610104578063d689107c116100a2578063ec2fd46d1161007c578063ec2fd46d146105ca578063f2220416146105d2578063f2fde38b146105e5578063f67ed448146105f857610378565b8063d689107c146105b2578063dd58b41c146105ba578063eab5d20e146105c257610378565b8063c5bbffe8116100de578063c5bbffe814610592578063c6b73cf91461059a578063cc062b58146105a2578063d4b97046146105aa57610378565b8063b2094fd31461057a578063bc7d679d14610582578063c0ffa1781461058a57610378565b806397316ad811610171578063a598aca71161014b578063a598aca71461055a578063ab44a7a314610562578063ac1fbc981461056a578063aceecbc81461057257610378565b806397316ad8146105375780639b020fba1461054a578063a3161a561461055257610378565b80638a8c523c116101ad5780638a8c523c1461050c5780638ff5e7421461051457806390cbf8221461051c5780639299eb301461052457610378565b80637c9b8e89146104e95780638456db15146104f1578063892daf05146104f957610378565b80633960f142116102ad57806367de8be91161024b57806373a2ab7c1161022557806373a2ab7c146104b3578063796da7af146104bb5780637adbf973146104c35780637aed942d146104d657610378565b806367de8be91461047857806368be20ad1461048b5780636ec6a58d146104ab57610378565b80634de4527e116102875780634de4527e1461044d5780634e71e0c81461045557806354fd4d501461045d5780635bb7552a1461046557610378565b80633960f142146104355780634322ec831461043d5780634a248d2a1461044557610378565b80631769ddaa1161031a578063245c9685116102f4578063245c968514610415578063247f993b1461041d5780632aa82c651461042557806336ac41a81461042d57610378565b80631769ddaa146103f057806317700f01146103f857806317be952e1461040057610378565b80631184d8be116103565780631184d8be146103b857806313c57624146103c057806313ea5d29146103c857806316048bc4146103db57610378565b8063092316021461037d5780630cd1667d146103925780630e6518e9146103b0575b600080fd5b61039061038b36600461122b565b61060b565b005b61039a610693565b6040516103a791906113de565b60405180910390f35b61039a610716565b61039061071c565b610390610785565b6103906103d6366004611204565b6107d3565b6103e361081f565b6040516103a7919061125b565b61039a61082e565b610390610834565b610408610882565b6040516103a7919061127a565b61039a61088b565b610390610891565b61039a6108dc565b610390610921565b6103e361098a565b6103e3610999565b6103e36109a8565b61039a6109b7565b6103906109bd565b61039a610a4b565b61039061047336600461122b565b610a50565b61039061048636600461122b565b610ac6565b61049e610499366004611204565b610b38565b6040516103a7919061126f565b61049e610b4d565b6103e3610b5d565b61039a610b6c565b6103906104d1366004611204565b610bb1565b61039a6104e4366004611204565b610bfd565b61039a610c84565b6103e3610c8a565b61039061050736600461122b565b610c99565b610390610cf2565b61049e610d5b565b610390610d69565b610390610532366004611204565b610dcc565b61039061054536600461122b565b610e18565b61039a610e71565b61049e610e77565b61049e610e80565b61039a610e90565b6103e3610e96565b610390610ea5565b61039a610ef1565b610390610ef7565b61039a610f45565b61049e610f4b565b61039a610f5b565b610390610f61565b6103e3610fc6565b6103e3610fd5565b61049e610fe4565b61039a610ff4565b61039a610ffa565b6103906105e036600461122b565b611000565b6103906105f3366004611204565b611072565b61039a610606366004611204565b61111d565b6006546001600160a01b031633148061062e57506000546001600160a01b031633145b6106535760405162461bcd60e51b815260040161064a906112d2565b60405180910390fd5b7f808f99cfd15f1be6019f93dc76c81d5bd82e0b3e0b3d23a54f5a2e647a6cc3cc600254826040516106869291906113e7565b60405180910390a1600255565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156106d857600080fd5b505afa1580156106ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107109190611243565b90505b90565b60165481565b6000546001600160a01b031633146107465760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff16156107705760405162461bcd60e51b815260040161064a90611330565b6001805460ff60c01b1916600160c01b179055565b6006546001600160a01b03163314806107a857506000546001600160a01b031633145b6107c45760405162461bcd60e51b815260040161064a906112d2565b6001805460ff60c01b19169055565b6000546001600160a01b031633146107fd5760405162461bcd60e51b815260040161064a9061137a565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031681565b60055481565b6006546001600160a01b031633148061085757506000546001600160a01b031633145b6108735760405162461bcd60e51b815260040161064a906112d2565b6001805460ff60c81b19169055565b600e5460ff1681565b60105481565b6006546001600160a01b03163314806108b457506000546001600160a01b031633145b6108d05760405162461bcd60e51b815260040161064a906112d2565b6003805460ff19169055565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156106d857600080fd5b6000546001600160a01b0316331461094b5760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff16156109755760405162461bcd60e51b815260040161064a90611330565b6001805460ff60b81b1916600160b81b179055565b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b031633146109e75760405162461bcd60e51b815260040161064a906112ab565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b6000546001600160a01b03163314610a7a5760405162461bcd60e51b815260040161064a9061137a565b7f3ce6ea91adda496b7a0546fa6558e5b52c3a509de6015820efb00ca4020e0a07600b5482604051610aad9291906113e7565b60405180910390a1600b819055610ac261114e565b5050565b6000546001600160a01b03163314610af05760405162461bcd60e51b815260040161064a9061137a565b7f023a40bebf7ac113f81c3d628073246cf9e0bc49980a9d6a9531498ce9e3dd1c600d5482604051610b239291906113e7565b60405180910390a1600d819055610ac261114e565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b1580156106d857600080fd5b6000546001600160a01b03163314610bdb5760405162461bcd60e51b815260040161064a9061137a565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6013546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610c2e90859060040161125b565b60206040518083038186803b158015610c4657600080fd5b505afa158015610c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7e9190611243565b92915050565b60125481565b6001546001600160a01b031681565b6000546001600160a01b03163314610cc35760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff1615610ced5760405162461bcd60e51b815260040161064a90611330565b600455565b6000546001600160a01b03163314610d1c5760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff1615610d465760405162461bcd60e51b815260040161064a90611330565b6001805460ff60c81b1916600160c81b179055565b600354610100900460ff1681565b6000546001600160a01b03163314610d935760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff1615610dbd5760405162461bcd60e51b815260040161064a90611330565b6003805460ff19166001179055565b6000546001600160a01b03163314610df65760405162461bcd60e51b815260040161064a9061137a565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610e425760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff1615610e6c5760405162461bcd60e51b815260040161064a90611330565b600555565b60045481565b60035460ff1681565b600154600160c01b900460ff1681565b600b5481565b6014546001600160a01b031681565b6006546001600160a01b0316331480610ec857506000546001600160a01b031633145b610ee45760405162461bcd60e51b815260040161064a906112d2565b6003805461ff0019169055565b600f5481565b6006546001600160a01b0316331480610f1a57506000546001600160a01b031633145b610f365760405162461bcd60e51b815260040161064a906112d2565b6001805460ff60b81b19169055565b600c5481565b600154600160b81b900460ff1681565b60155481565b6000546001600160a01b03163314610f8b5760405162461bcd60e51b815260040161064a9061137a565b600154600160b01b900460ff1615610fb55760405162461bcd60e51b815260040161064a90611330565b6003805461ff001916610100179055565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b60115481565b600d5481565b6000546001600160a01b0316331461102a5760405162461bcd60e51b815260040161064a9061137a565b7f6b04da3d58e4b37d99652babb3ea2bc25ce94379bfff3059f03d61b26c59e553600c548260405161105d9291906113e7565b60405180910390a1600c819055610ac261114e565b6000546001600160a01b0316331461109c5760405162461bcd60e51b815260040161064a9061137a565b6001600160a01b0381166110c25760405162461bcd60e51b815260040161064a90611309565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610c2e90859060040161125b565b6000670de0b6b3a7640000600d54106111795760405162461bcd60e51b815260040161064a906113c0565b6000600d541161119b5760405162461bcd60e51b815260040161064a9061128e565b670de0b6b3a76400006111bb600c54600b546111d890919063ffffffff16565b106107135760405162461bcd60e51b815260040161064a90611355565b6000828201838110156111fd5760405162461bcd60e51b815260040161064a9061139d565b9392505050565b600060208284031215611215578081fd5b81356001600160a01b03811681146111fd578182fd5b60006020828403121561123c578081fd5b5035919050565b600060208284031215611254578081fd5b5051919050565b6001600160a01b0391909116815260200190565b901515815260200190565b602081016003831061128857fe5b91905290565b60208082526003908201526204b3d360ec1b604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526017908201527f4e4f545f53555045525649534f525f4f525f4f574e4552000000000000000000604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600b908201526a1113d113d7d0d313d4d15160aa1b604082015260600190565b6020808252600b908201526a4645455f524154453e3d3160a81b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252600490820152634b3e3d3160e01b604082015260600190565b90815260200190565b91825260208201526040019056fea2646970667358221220e856033bc330207be0100003cace375d8fad287d256324bddc13e5a37282509e64736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "270:3200:22:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "270:3200:22:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1771:207;;;;;;;;;:::i;:::-;;2949:133:27;;;:::i;:::-;;;;;;;;;;;;;;;;2006:43;;;:::i;2587:104:22:-;;;:::i;2473:108::-;;;:::i;985:110::-;;;;;;;;;:::i;264:22:37:-;;;:::i;:::-;;;;;;;;1112:36:27;;;:::i;2043:97:22:-;;;:::i;1604:31:27:-;;;:::i;:::-;;;;;;;;1688:42;;;:::i;2758:97:22:-;;;:::i;3243:135:27:-;;;:::i;2361:106:22:-;;;:::i;1202:27:27:-;;;:::i;1271:::-;;;:::i;1352:::-;;;:::i;912:32::-;;;:::i;963:225:37:-;;;:::i;3433:87:27:-;;;:::i;1101:274:22:-;;;;;;;;;:::i;1626:139::-;;;;;;;;;:::i;2055:41:27:-;;;;;;;;;:::i;:::-;;;;;;;;772:20;;;:::i;1419:23::-;;;:::i;2682:108::-;;;:::i;769:94:22:-;;;;;;;;;:::i;2796:147:27:-;;;;;;;;;:::i;1771:30::-;;;:::i;292:26:37:-;;;:::i;3166:146:22:-;;;;;;;;;:::i;2146:93::-;;;:::i;1036:29:27:-;;;:::i;2861:93:22:-;;;:::i;869:110::-;;;;;;;;;:::i;3318:150::-;;;;;;;;;:::i;1071:35:27:-;;;:::i;1002:28::-;;;:::i;839:34::-;;;:::i;1511:28::-;;;:::i;1849:36::-;;;:::i;2960:99:22:-;;;:::i;1641:41:27:-;;;:::i;2245:110:22:-;;;:::i;1545:28:27:-;;;:::i;798:35::-;;;:::i;1957:43::-;;;:::i;3065:95:22:-;;;:::i;1385:28:27:-;;;:::i;1808:35::-;;;:::i;879:27::-;;;:::i;1736:29::-;;;:::i;1579:18::-;;;:::i;1381:239:22:-;;;;;;;;;:::i;737:220:37:-;;;;;;;;;:::i;3088:149:27:-;;;;;;;;;:::i;1771:207:22:-;2212:12:27;;-1:-1:-1;;;;;2212:12:27;2198:10;:26;;:51;;-1:-1:-1;2242:7:27;;-1:-1:-1;;;;;2242:7:27;2228:10;:21;2198:51;2190:87;;;;-1:-1:-1;;;2190:87:27;;;;;;;;;;;;;;;;;1869:56:22::1;1889:17;;1908:16;1869:56;;;;;;;;;;;;;;;;1935:17;:36:::0;1771:207::o;2949:133:27:-;3040:20;;3027:48;;;-1:-1:-1;;;3027:48:27;;;;3001:7;;-1:-1:-1;;;;;3040:20:27;;3027:46;;:48;;;;;;;;;;;;;;3040:20;3027:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:55;;2949:133;;:::o;2006:43::-;;;;:::o;2587:104:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;2680:4:22::2;2655:29:::0;;-1:-1:-1;;;;2655:29:22::2;-1:-1:-1::0;;;2655:29:22::2;::::0;;2587:104::o;2473:108::-;2212:12:27;;-1:-1:-1;;;;;2212:12:27;2198:10;:26;;:51;;-1:-1:-1;2242:7:27;;-1:-1:-1;;;;;2242:7:27;2228:10;:21;2198:51;2190:87;;;;-1:-1:-1;;;2190:87:27;;;;;;;;;2544:22:22::1;:30:::0;;-1:-1:-1;;;;2544:30:22::1;::::0;;2473:108::o;985:110::-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;1060:12:22::1;:28:::0;;-1:-1:-1;;;;;;1060:28:22::1;-1:-1:-1::0;;;;;1060:28:22;;;::::1;::::0;;;::::1;::::0;;985:110::o;264:22:37:-;;;-1:-1:-1;;;;;264:22:37;;:::o;1112:36:27:-;;;;:::o;2043:97:22:-;2212:12:27;;-1:-1:-1;;;;;2212:12:27;2198:10;:26;;:51;;-1:-1:-1;2242:7:27;;-1:-1:-1;;;;;2242:7:27;2228:10;:21;2198:51;2190:87;;;;-1:-1:-1;;;2190:87:27;;;;;;;;;2110:15:22::1;:23:::0;;-1:-1:-1;;;;2110:23:22::1;::::0;;2043:97::o;1604:31:27:-;;;;;;:::o;1688:42::-;;;;:::o;2758:97:22:-;2212:12:27;;-1:-1:-1;;;;;2212:12:27;2198:10;:26;;:51;;-1:-1:-1;2242:7:27;;-1:-1:-1;;;;;2242:7:27;2228:10;:21;2198:51;2190:87;;;;-1:-1:-1;;;2190:87:27;;;;;;;;;2824:16:22::1;:24:::0;;-1:-1:-1;;2824:24:22::1;::::0;;2758:97::o;3243:135:27:-;3335:21;;3322:49;;;-1:-1:-1;;;3322:49:27;;;;3296:7;;-1:-1:-1;;;;;3335:21:27;;3322:47;;:49;;;;;;;;;;;;;;3335:21;3322:49;;;;;;;;;;2361:106:22;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;2456:4:22::2;2430:30:::0;;-1:-1:-1;;;;2430:30:22::2;-1:-1:-1::0;;;2430:30:22::2;::::0;;2361:106::o;1202:27:27:-;;;-1:-1:-1;;;;;1202:27:27;;:::o;1271:::-;;;-1:-1:-1;;;;;1271:27:27;;:::o;1352:::-;;;-1:-1:-1;;;;;1352:27:27;;:::o;912:32::-;;;;:::o;963:225:37:-;1030:11;;-1:-1:-1;;;;;1030:11:37;1016:10;:25;1008:51;;;;-1:-1:-1;;;1008:51:37;;;;;;;;;1104:11;;;1095:7;;1074:42;;-1:-1:-1;;;;;1104:11:37;;;;1095:7;;;;1074:42;;;1136:11;;;;1126:21;;-1:-1:-1;;;;;;1126:21:37;;;-1:-1:-1;;;;;1136:11:37;;1126:21;;;;1157:24;;;963:225::o;3433:87:27:-;3501:3;3433:87;:::o;1101:274:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;1209:74:22::1;1240:13;;1255:27;1209:74;;;;;;;;;;;;;;;;1293:13;:43:::0;;;1346:22:::1;:20;:22::i;:::-;;1101:274:::0;:::o;1626:139::-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;1688:18:22::1;1696:3;;1701:4;1688:18;;;;;;;;;;;;;;;;1716:3;:10:::0;;;1736:22:::1;:20;:22::i;2055:41:27:-:0;;;;;;;;;;;;;;;:::o;772:20::-;;;-1:-1:-1;;;772:20:27;;;;;:::o;1419:23::-;;;-1:-1:-1;;;;;1419:23:27;;:::o;2682:108::-;2763:8;;2755:28;;;-1:-1:-1;;;2755:28:27;;;;2729:7;;-1:-1:-1;;;;;2763:8:27;;2755:26;;:28;;;;;;;;;;;;;;2763:8;2755:28;;;;;;;;;;769:94:22;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;836:8:22::1;:20:::0;;-1:-1:-1;;;;;;836:20:22::1;-1:-1:-1::0;;;;;836:20:22;;;::::1;::::0;;;::::1;::::0;;769:94::o;2796:147:27:-;2901:20;;2888:48;;-1:-1:-1;;;2888:48:27;;2862:7;;-1:-1:-1;;;;;2901:20:27;;2888:44;;:48;;2933:2;;2888:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2881:55;2796:147;-1:-1:-1;;2796:147:27:o;1771:30::-;;;;:::o;292:26:37:-;;;-1:-1:-1;;;;;292:26:37;;:::o;3166:146:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;3263:20:22::2;:42:::0;3166:146::o;2146:93::-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;2228:4:22::2;2210:22:::0;;-1:-1:-1;;;;2210:22:22::2;-1:-1:-1::0;;;2210:22:22::2;::::0;;2146:93::o;1036:29:27:-;;;;;;;;;:::o;2861:93:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;2924:16:22::2;:23:::0;;-1:-1:-1;;2924:23:22::2;2943:4;2924:23;::::0;;2861:93::o;869:110::-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;944:12:22::1;:28:::0;;-1:-1:-1;;;;;;944:28:22::1;-1:-1:-1::0;;;;;944:28:22;;;::::1;::::0;;;::::1;::::0;;869:110::o;3318:150::-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;3417:21:22::2;:44:::0;3318:150::o;1071:35:27:-;;;;:::o;1002:28::-;;;;;;:::o;839:34::-;;;-1:-1:-1;;;839:34:27;;;;;:::o;1511:28::-;;;;:::o;1849:36::-;;;-1:-1:-1;;;;;1849:36:27;;:::o;2960:99:22:-;2212:12:27;;-1:-1:-1;;;;;2212:12:27;2198:10;:26;;:51;;-1:-1:-1;2242:7:27;;-1:-1:-1;;;;;2242:7:27;2228:10;:21;2198:51;2190:87;;;;-1:-1:-1;;;2190:87:27;;;;;;;;;3027:17:22::1;:25:::0;;-1:-1:-1;;3027:25:22::1;::::0;;2960:99::o;1641:41:27:-;;;;:::o;2245:110:22:-;2212:12:27;;-1:-1:-1;;;;;2212:12:27;2198:10;:26;;:51;;-1:-1:-1;2242:7:27;;-1:-1:-1;;;;;2242:7:27;2228:10;:21;2198:51;2190:87;;;;-1:-1:-1;;;2190:87:27;;;;;;;;;2317:23:22::1;:31:::0;;-1:-1:-1;;;;2317:31:22::1;::::0;;2245:110::o;1545:28:27:-;;;;:::o;798:35::-;;;-1:-1:-1;;;798:35:27;;;;;:::o;1957:43::-;;;;:::o;3065:95:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;3129:17:22::2;:24:::0;;-1:-1:-1;;3129:24:22::2;;;::::0;;3065:95::o;1385:28:27:-;;;-1:-1:-1;;;;;1385:28:27;;:::o;1808:35::-;;;-1:-1:-1;;;;;1808:35:27;;:::o;879:27::-;;;-1:-1:-1;;;879:27:27;;;;;:::o;1736:29::-;;;;:::o;1579:18::-;;;;:::o;1381:239:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;1475:60:22::1;1499:13;;1514:20;1475:60;;;;;;;;;;;;;;;;1545:13;:36:::0;;;1591:22:::1;:20;:22::i;737:220:37:-:0;648:7;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;-1:-1:-1;;;;;819:22:37;::::1;811:48;;;;-1:-1:-1::0;;;811:48:37::1;;;;;;;;;900:7;::::0;;874:44:::1;::::0;-1:-1:-1;;;;;874:44:37;;::::1;::::0;900:7;::::1;::::0;874:44:::1;::::0;::::1;928:11;:22:::0;;-1:-1:-1;;;;;;928:22:37::1;-1:-1:-1::0;;;;;928:22:37;;;::::1;::::0;;;::::1;::::0;;737:220::o;3088:149:27:-;3194:21;;3181:49;;-1:-1:-1;;;3181:49:27;;3155:7;;-1:-1:-1;;;;;3194:21:27;;3181:45;;:49;;3227:2;;3181:49;;;;2440:236;2495:7;379:6:36;2522:3:27;;:21;2514:38;;;;-1:-1:-1;;;2514:38:27;;;;;;;;;2576:1;2570:3;;:7;2562:23;;;;-1:-1:-1;;;2562:23:27;;;;;;;;;379:6:36;2603:32:27;2621:13;;2603;;:17;;:32;;;;:::i;:::-;:50;2595:74;;;;-1:-1:-1;;;2595:74:27;;;;;;;;1074:157:41;1132:7;1163:5;;;1186:6;;;;1178:28;;;;-1:-1:-1;;;1178:28:41;;;;;;;;;1223:1;1074:157;-1:-1:-1;;;1074:157:41:o;420:241:-1:-;;524:2;512:9;503:7;499:23;495:32;492:2;;;-1:-1;;530:12;492:2;72:20;;-1:-1;;;;;10201:54;;10655:35;;10645:2;;-1:-1;;10694:12;668:241;;772:2;760:9;751:7;747:23;743:32;740:2;;;-1:-1;;778:12;740:2;-1:-1;209:20;;734:175;-1:-1;734:175;916:263;;1031:2;1019:9;1010:7;1006:23;1002:32;999:2;;;-1:-1;;1037:12;999:2;-1:-1;357:13;;993:186;-1:-1;993:186;4565:222;-1:-1;;;;;10201:54;;;;1257:37;;4692:2;4677:18;;4663:124;4794:210;9974:13;;9967:21;1371:34;;4915:2;4900:18;;4886:118;5011:244;5149:2;5134:18;;10567:1;10557:12;;10547:2;;10573:9;10547:2;1499:61;;;5120:135;;5262:416;5462:2;5476:47;;;1797:1;5447:18;;;9742:19;-1:-1;;;9782:14;;;1812:26;1857:12;;;5433:245;5685:416;5885:2;5899:47;;;2108:2;5870:18;;;9742:19;-1:-1;;;9782:14;;;2124:36;2179:12;;;5856:245;6108:416;6308:2;6322:47;;;2430:2;6293:18;;;9742:19;2466:25;9782:14;;;2446:46;2511:12;;;6279:245;6531:416;6731:2;6745:47;;;2762:2;6716:18;;;9742:19;-1:-1;;;9782:14;;;2778:36;2833:12;;;6702:245;6954:416;7154:2;7168:47;;;3084:2;7139:18;;;9742:19;-1:-1;;;9782:14;;;3100:34;3153:12;;;7125:245;7377:416;7577:2;7591:47;;;3404:2;7562:18;;;9742:19;-1:-1;;;9782:14;;;3420:34;3473:12;;;7548:245;7800:416;8000:2;8014:47;;;3724:1;7985:18;;;9742:19;-1:-1;;;9782:14;;;3739:32;3790:12;;;7971:245;8223:416;8423:2;8437:47;;;4041:1;8408:18;;;9742:19;-1:-1;;;9782:14;;;4056:32;4107:12;;;8394:245;8646:416;8846:2;8860:47;;;4358:1;8831:18;;;9742:19;-1:-1;;;9782:14;;;4373:27;4419:12;;;8817:245;9069:222;4516:37;;;9196:2;9181:18;;9167:124;9298:333;4516:37;;;9617:2;9602:18;;4516:37;9453:2;9438:18;;9424:207", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {Storage} from \"./Storage.sol\";\n\n\n/**\n * @title Admin\n * @author DODO Breeder\n *\n * @notice Functions for admin operations\n */\ncontract Admin is Storage {\n // ============ Events ============\n\n event UpdateGasPriceLimit(uint256 oldGasPriceLimit, uint256 newGasPriceLimit);\n\n event UpdateLiquidityProviderFeeRate(\n uint256 oldLiquidityProviderFeeRate,\n uint256 newLiquidityProviderFeeRate\n );\n\n event UpdateMaintainerFeeRate(uint256 oldMaintainerFeeRate, uint256 newMaintainerFeeRate);\n\n event UpdateK(uint256 oldK, uint256 newK);\n\n // ============ Params Setting Functions ============\n\n function setOracle(address newOracle) external onlyOwner {\n _ORACLE_ = newOracle;\n }\n\n function setSupervisor(address newSupervisor) external onlyOwner {\n _SUPERVISOR_ = newSupervisor;\n }\n\n function setMaintainer(address newMaintainer) external onlyOwner {\n _MAINTAINER_ = newMaintainer;\n }\n\n function setLiquidityProviderFeeRate(uint256 newLiquidityPorviderFeeRate) external onlyOwner {\n emit UpdateLiquidityProviderFeeRate(_LP_FEE_RATE_, newLiquidityPorviderFeeRate);\n _LP_FEE_RATE_ = newLiquidityPorviderFeeRate;\n _checkDODOParameters();\n }\n\n function setMaintainerFeeRate(uint256 newMaintainerFeeRate) external onlyOwner {\n emit UpdateMaintainerFeeRate(_MT_FEE_RATE_, newMaintainerFeeRate);\n _MT_FEE_RATE_ = newMaintainerFeeRate;\n _checkDODOParameters();\n }\n\n function setK(uint256 newK) external onlyOwner {\n emit UpdateK(_K_, newK);\n _K_ = newK;\n _checkDODOParameters();\n }\n\n function setGasPriceLimit(uint256 newGasPriceLimit) external onlySupervisorOrOwner {\n emit UpdateGasPriceLimit(_GAS_PRICE_LIMIT_, newGasPriceLimit);\n _GAS_PRICE_LIMIT_ = newGasPriceLimit;\n }\n\n // ============ System Control Functions ============\n\n function disableTrading() external onlySupervisorOrOwner {\n _TRADE_ALLOWED_ = false;\n }\n\n function enableTrading() external onlyOwner notClosed {\n _TRADE_ALLOWED_ = true;\n }\n\n function disableQuoteDeposit() external onlySupervisorOrOwner {\n _DEPOSIT_QUOTE_ALLOWED_ = false;\n }\n\n function enableQuoteDeposit() external onlyOwner notClosed {\n _DEPOSIT_QUOTE_ALLOWED_ = true;\n }\n\n function disableBaseDeposit() external onlySupervisorOrOwner {\n _DEPOSIT_BASE_ALLOWED_ = false;\n }\n\n function enableBaseDeposit() external onlyOwner notClosed {\n _DEPOSIT_BASE_ALLOWED_ = true;\n }\n\n // ============ Advanced Control Functions ============\n\n function disableBuying() external onlySupervisorOrOwner {\n _BUYING_ALLOWED_ = false;\n }\n\n function enableBuying() external onlyOwner notClosed {\n _BUYING_ALLOWED_ = true;\n }\n\n function disableSelling() external onlySupervisorOrOwner {\n _SELLING_ALLOWED_ = false;\n }\n\n function enableSelling() external onlyOwner notClosed {\n _SELLING_ALLOWED_ = true;\n }\n\n function setBaseBalanceLimit(uint256 newBaseBalanceLimit) external onlyOwner notClosed {\n _BASE_BALANCE_LIMIT_ = newBaseBalanceLimit;\n }\n\n function setQuoteBalanceLimit(uint256 newQuoteBalanceLimit) external onlyOwner notClosed {\n _QUOTE_BALANCE_LIMIT_ = newQuoteBalanceLimit;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Admin.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Admin.sol", + "exportedSymbols": { + "Admin": [ + 6963 + ] + }, + "id": 6964, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6681, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:22" + }, + { + "id": 6682, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:22" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "file": "./Storage.sol", + "id": 6684, + "nodeType": "ImportDirective", + "scope": 6964, + "sourceUnit": 9614, + "src": "136:38:22", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 6683, + "name": "Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:22", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6686, + "name": "Storage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9613, + "src": "288:7:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Storage_$9613", + "typeString": "contract Storage" + } + }, + "id": 6687, + "nodeType": "InheritanceSpecifier", + "src": "288:7:22" + } + ], + "contractDependencies": [ + 9613, + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 6685, + "nodeType": "StructuredDocumentation", + "src": "177:92:22", + "text": " @title Admin\n @author DODO Breeder\n @notice Functions for admin operations" + }, + "fullyImplemented": true, + "id": 6963, + "linearizedBaseContracts": [ + 6963, + 9613, + 11296, + 11166 + ], + "name": "Admin", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 6693, + "name": "UpdateGasPriceLimit", + "nodeType": "EventDefinition", + "parameters": { + "id": 6692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6689, + "indexed": false, + "mutability": "mutable", + "name": "oldGasPriceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6693, + "src": "369:24:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "369:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6691, + "indexed": false, + "mutability": "mutable", + "name": "newGasPriceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6693, + "src": "395:24:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "395:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "368:52:22" + }, + "src": "343:78:22" + }, + { + "anonymous": false, + "documentation": null, + "id": 6699, + "name": "UpdateLiquidityProviderFeeRate", + "nodeType": "EventDefinition", + "parameters": { + "id": 6698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6695, + "indexed": false, + "mutability": "mutable", + "name": "oldLiquidityProviderFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6699, + "src": "473:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "473:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6697, + "indexed": false, + "mutability": "mutable", + "name": "newLiquidityProviderFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6699, + "src": "518:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "518:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "463:96:22" + }, + "src": "427:133:22" + }, + { + "anonymous": false, + "documentation": null, + "id": 6705, + "name": "UpdateMaintainerFeeRate", + "nodeType": "EventDefinition", + "parameters": { + "id": 6704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6701, + "indexed": false, + "mutability": "mutable", + "name": "oldMaintainerFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6705, + "src": "596:28:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "596:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6703, + "indexed": false, + "mutability": "mutable", + "name": "newMaintainerFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6705, + "src": "626:28:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "626:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "595:60:22" + }, + "src": "566:90:22" + }, + { + "anonymous": false, + "documentation": null, + "id": 6711, + "name": "UpdateK", + "nodeType": "EventDefinition", + "parameters": { + "id": 6710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6707, + "indexed": false, + "mutability": "mutable", + "name": "oldK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6711, + "src": "676:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "676:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6709, + "indexed": false, + "mutability": "mutable", + "name": "newK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6711, + "src": "690:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6708, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "690:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "675:28:22" + }, + "src": "662:42:22" + }, + { + "body": { + "id": 6722, + "nodeType": "Block", + "src": "826:37:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6718, + "name": "_ORACLE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9451, + "src": "836:8:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6719, + "name": "newOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6713, + "src": "847:9:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "836:20:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6721, + "nodeType": "ExpressionStatement", + "src": "836:20:22" + } + ] + }, + "documentation": null, + "functionSelector": "7adbf973", + "id": 6723, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6716, + "modifierName": { + "argumentTypes": null, + "id": 6715, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "816:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "816:9:22" + } + ], + "name": "setOracle", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6713, + "mutability": "mutable", + "name": "newOracle", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6723, + "src": "788:17:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "788:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "787:19:22" + }, + "returnParameters": { + "id": 6717, + "nodeType": "ParameterList", + "parameters": [], + "src": "826:0:22" + }, + "scope": 6963, + "src": "769:94:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6734, + "nodeType": "Block", + "src": "934:45:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6730, + "name": "_SUPERVISOR_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9443, + "src": "944:12:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6731, + "name": "newSupervisor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6725, + "src": "959:13:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "944:28:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6733, + "nodeType": "ExpressionStatement", + "src": "944:28:22" + } + ] + }, + "documentation": null, + "functionSelector": "9299eb30", + "id": 6735, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6728, + "modifierName": { + "argumentTypes": null, + "id": 6727, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "924:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "924:9:22" + } + ], + "name": "setSupervisor", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6725, + "mutability": "mutable", + "name": "newSupervisor", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6735, + "src": "892:21:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6724, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "892:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "891:23:22" + }, + "returnParameters": { + "id": 6729, + "nodeType": "ParameterList", + "parameters": [], + "src": "934:0:22" + }, + "scope": 6963, + "src": "869:110:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6746, + "nodeType": "Block", + "src": "1050:45:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6742, + "name": "_MAINTAINER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9445, + "src": "1060:12:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6743, + "name": "newMaintainer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6737, + "src": "1075:13:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1060:28:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6745, + "nodeType": "ExpressionStatement", + "src": "1060:28:22" + } + ] + }, + "documentation": null, + "functionSelector": "13ea5d29", + "id": 6747, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6740, + "modifierName": { + "argumentTypes": null, + "id": 6739, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "1040:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1040:9:22" + } + ], + "name": "setMaintainer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6737, + "mutability": "mutable", + "name": "newMaintainer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6747, + "src": "1008:21:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6736, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1008:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1007:23:22" + }, + "returnParameters": { + "id": 6741, + "nodeType": "ParameterList", + "parameters": [], + "src": "1050:0:22" + }, + "scope": 6963, + "src": "985:110:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6766, + "nodeType": "Block", + "src": "1194:181:22", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6755, + "name": "_LP_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "1240:13:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6756, + "name": "newLiquidityPorviderFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6749, + "src": "1255:27:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6754, + "name": "UpdateLiquidityProviderFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6699, + "src": "1209:30:22", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 6757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1209:74:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6758, + "nodeType": "EmitStatement", + "src": "1204:79:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 6761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6759, + "name": "_LP_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "1293:13:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6760, + "name": "newLiquidityPorviderFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6749, + "src": "1309:27:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1293:43:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6762, + "nodeType": "ExpressionStatement", + "src": "1293:43:22" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6763, + "name": "_checkDODOParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "1346:20:22", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 6764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1346:22:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6765, + "nodeType": "ExpressionStatement", + "src": "1346:22:22" + } + ] + }, + "documentation": null, + "functionSelector": "5bb7552a", + "id": 6767, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6752, + "modifierName": { + "argumentTypes": null, + "id": 6751, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "1184:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1184:9:22" + } + ], + "name": "setLiquidityProviderFeeRate", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6749, + "mutability": "mutable", + "name": "newLiquidityPorviderFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6767, + "src": "1138:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1138:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1137:37:22" + }, + "returnParameters": { + "id": 6753, + "nodeType": "ParameterList", + "parameters": [], + "src": "1194:0:22" + }, + "scope": 6963, + "src": "1101:274:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6786, + "nodeType": "Block", + "src": "1460:160:22", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6775, + "name": "_MT_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "1499:13:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6776, + "name": "newMaintainerFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6769, + "src": "1514:20:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6774, + "name": "UpdateMaintainerFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6705, + "src": "1475:23:22", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 6777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1475:60:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6778, + "nodeType": "EmitStatement", + "src": "1470:65:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 6781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6779, + "name": "_MT_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "1545:13:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6780, + "name": "newMaintainerFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6769, + "src": "1561:20:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1545:36:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6782, + "nodeType": "ExpressionStatement", + "src": "1545:36:22" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6783, + "name": "_checkDODOParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "1591:20:22", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 6784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1591:22:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6785, + "nodeType": "ExpressionStatement", + "src": "1591:22:22" + } + ] + }, + "documentation": null, + "functionSelector": "f2220416", + "id": 6787, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6772, + "modifierName": { + "argumentTypes": null, + "id": 6771, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "1450:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1450:9:22" + } + ], + "name": "setMaintainerFeeRate", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6769, + "mutability": "mutable", + "name": "newMaintainerFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6787, + "src": "1411:28:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1411:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1410:30:22" + }, + "returnParameters": { + "id": 6773, + "nodeType": "ParameterList", + "parameters": [], + "src": "1460:0:22" + }, + "scope": 6963, + "src": "1381:239:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6806, + "nodeType": "Block", + "src": "1673:92:22", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6795, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "1696:3:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6796, + "name": "newK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6789, + "src": "1701:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6794, + "name": "UpdateK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "1688:7:22", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 6797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1688:18:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6798, + "nodeType": "EmitStatement", + "src": "1683:23:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 6801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6799, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "1716:3:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6800, + "name": "newK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6789, + "src": "1722:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1716:10:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6802, + "nodeType": "ExpressionStatement", + "src": "1716:10:22" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6803, + "name": "_checkDODOParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "1736:20:22", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 6804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1736:22:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6805, + "nodeType": "ExpressionStatement", + "src": "1736:22:22" + } + ] + }, + "documentation": null, + "functionSelector": "67de8be9", + "id": 6807, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6792, + "modifierName": { + "argumentTypes": null, + "id": 6791, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "1663:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1663:9:22" + } + ], + "name": "setK", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6789, + "mutability": "mutable", + "name": "newK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6807, + "src": "1640:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1640:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1639:14:22" + }, + "returnParameters": { + "id": 6793, + "nodeType": "ParameterList", + "parameters": [], + "src": "1673:0:22" + }, + "scope": 6963, + "src": "1626:139:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6823, + "nodeType": "Block", + "src": "1854:124:22", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6815, + "name": "_GAS_PRICE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9433, + "src": "1889:17:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6816, + "name": "newGasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6809, + "src": "1908:16:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6814, + "name": "UpdateGasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6693, + "src": "1869:19:22", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 6817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1869:56:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6818, + "nodeType": "EmitStatement", + "src": "1864:61:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 6821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6819, + "name": "_GAS_PRICE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9433, + "src": "1935:17:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6820, + "name": "newGasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6809, + "src": "1955:16:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1935:36:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6822, + "nodeType": "ExpressionStatement", + "src": "1935:36:22" + } + ] + }, + "documentation": null, + "functionSelector": "09231602", + "id": 6824, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6812, + "modifierName": { + "argumentTypes": null, + "id": 6811, + "name": "onlySupervisorOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "1832:21:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1832:21:22" + } + ], + "name": "setGasPriceLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6809, + "mutability": "mutable", + "name": "newGasPriceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6824, + "src": "1797:24:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6808, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1797:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1796:26:22" + }, + "returnParameters": { + "id": 6813, + "nodeType": "ParameterList", + "parameters": [], + "src": "1854:0:22" + }, + "scope": 6963, + "src": "1771:207:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6833, + "nodeType": "Block", + "src": "2100:40:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6829, + "name": "_TRADE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9431, + "src": "2110:15:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 6830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2128:5:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2110:23:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6832, + "nodeType": "ExpressionStatement", + "src": "2110:23:22" + } + ] + }, + "documentation": null, + "functionSelector": "17700f01", + "id": 6834, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6827, + "modifierName": { + "argumentTypes": null, + "id": 6826, + "name": "onlySupervisorOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "2078:21:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2078:21:22" + } + ], + "name": "disableTrading", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6825, + "nodeType": "ParameterList", + "parameters": [], + "src": "2066:2:22" + }, + "returnParameters": { + "id": 6828, + "nodeType": "ParameterList", + "parameters": [], + "src": "2100:0:22" + }, + "scope": 6963, + "src": "2043:97:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6845, + "nodeType": "Block", + "src": "2200:39:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6841, + "name": "_TRADE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9431, + "src": "2210:15:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2228:4:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2210:22:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6844, + "nodeType": "ExpressionStatement", + "src": "2210:22:22" + } + ] + }, + "documentation": null, + "functionSelector": "8a8c523c", + "id": 6846, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6837, + "modifierName": { + "argumentTypes": null, + "id": 6836, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "2180:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2180:9:22" + }, + { + "arguments": null, + "id": 6839, + "modifierName": { + "argumentTypes": null, + "id": 6838, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "2190:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2190:9:22" + } + ], + "name": "enableTrading", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6835, + "nodeType": "ParameterList", + "parameters": [], + "src": "2168:2:22" + }, + "returnParameters": { + "id": 6840, + "nodeType": "ParameterList", + "parameters": [], + "src": "2200:0:22" + }, + "scope": 6963, + "src": "2146:93:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6855, + "nodeType": "Block", + "src": "2307:48:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6851, + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9427, + "src": "2317:23:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 6852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2343:5:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2317:31:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6854, + "nodeType": "ExpressionStatement", + "src": "2317:31:22" + } + ] + }, + "documentation": null, + "functionSelector": "bc7d679d", + "id": 6856, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6849, + "modifierName": { + "argumentTypes": null, + "id": 6848, + "name": "onlySupervisorOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "2285:21:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2285:21:22" + } + ], + "name": "disableQuoteDeposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6847, + "nodeType": "ParameterList", + "parameters": [], + "src": "2273:2:22" + }, + "returnParameters": { + "id": 6850, + "nodeType": "ParameterList", + "parameters": [], + "src": "2307:0:22" + }, + "scope": 6963, + "src": "2245:110:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6867, + "nodeType": "Block", + "src": "2420:47:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6863, + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9427, + "src": "2430:23:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2456:4:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2430:30:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6866, + "nodeType": "ExpressionStatement", + "src": "2430:30:22" + } + ] + }, + "documentation": null, + "functionSelector": "36ac41a8", + "id": 6868, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6859, + "modifierName": { + "argumentTypes": null, + "id": 6858, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "2400:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2400:9:22" + }, + { + "arguments": null, + "id": 6861, + "modifierName": { + "argumentTypes": null, + "id": 6860, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "2410:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2410:9:22" + } + ], + "name": "enableQuoteDeposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6857, + "nodeType": "ParameterList", + "parameters": [], + "src": "2388:2:22" + }, + "returnParameters": { + "id": 6862, + "nodeType": "ParameterList", + "parameters": [], + "src": "2420:0:22" + }, + "scope": 6963, + "src": "2361:106:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6877, + "nodeType": "Block", + "src": "2534:47:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6873, + "name": "_DEPOSIT_BASE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9429, + "src": "2544:22:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 6874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2569:5:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2544:30:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6876, + "nodeType": "ExpressionStatement", + "src": "2544:30:22" + } + ] + }, + "documentation": null, + "functionSelector": "13c57624", + "id": 6878, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6871, + "modifierName": { + "argumentTypes": null, + "id": 6870, + "name": "onlySupervisorOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "2512:21:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2512:21:22" + } + ], + "name": "disableBaseDeposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6869, + "nodeType": "ParameterList", + "parameters": [], + "src": "2500:2:22" + }, + "returnParameters": { + "id": 6872, + "nodeType": "ParameterList", + "parameters": [], + "src": "2534:0:22" + }, + "scope": 6963, + "src": "2473:108:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6889, + "nodeType": "Block", + "src": "2645:46:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6885, + "name": "_DEPOSIT_BASE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9429, + "src": "2655:22:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2680:4:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2655:29:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6888, + "nodeType": "ExpressionStatement", + "src": "2655:29:22" + } + ] + }, + "documentation": null, + "functionSelector": "1184d8be", + "id": 6890, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6881, + "modifierName": { + "argumentTypes": null, + "id": 6880, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "2625:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2625:9:22" + }, + { + "arguments": null, + "id": 6883, + "modifierName": { + "argumentTypes": null, + "id": 6882, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "2635:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2635:9:22" + } + ], + "name": "enableBaseDeposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6879, + "nodeType": "ParameterList", + "parameters": [], + "src": "2613:2:22" + }, + "returnParameters": { + "id": 6884, + "nodeType": "ParameterList", + "parameters": [], + "src": "2645:0:22" + }, + "scope": 6963, + "src": "2587:104:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6899, + "nodeType": "Block", + "src": "2814:41:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6895, + "name": "_BUYING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9435, + "src": "2824:16:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 6896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2843:5:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2824:24:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6898, + "nodeType": "ExpressionStatement", + "src": "2824:24:22" + } + ] + }, + "documentation": null, + "functionSelector": "247f993b", + "id": 6900, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6893, + "modifierName": { + "argumentTypes": null, + "id": 6892, + "name": "onlySupervisorOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "2792:21:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2792:21:22" + } + ], + "name": "disableBuying", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6891, + "nodeType": "ParameterList", + "parameters": [], + "src": "2780:2:22" + }, + "returnParameters": { + "id": 6894, + "nodeType": "ParameterList", + "parameters": [], + "src": "2814:0:22" + }, + "scope": 6963, + "src": "2758:97:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6911, + "nodeType": "Block", + "src": "2914:40:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6907, + "name": "_BUYING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9435, + "src": "2924:16:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2943:4:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2924:23:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6910, + "nodeType": "ExpressionStatement", + "src": "2924:23:22" + } + ] + }, + "documentation": null, + "functionSelector": "90cbf822", + "id": 6912, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6903, + "modifierName": { + "argumentTypes": null, + "id": 6902, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "2894:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2894:9:22" + }, + { + "arguments": null, + "id": 6905, + "modifierName": { + "argumentTypes": null, + "id": 6904, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "2904:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2904:9:22" + } + ], + "name": "enableBuying", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6901, + "nodeType": "ParameterList", + "parameters": [], + "src": "2882:2:22" + }, + "returnParameters": { + "id": 6906, + "nodeType": "ParameterList", + "parameters": [], + "src": "2914:0:22" + }, + "scope": 6963, + "src": "2861:93:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6921, + "nodeType": "Block", + "src": "3017:42:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6917, + "name": "_SELLING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9437, + "src": "3027:17:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 6918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3047:5:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3027:25:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6920, + "nodeType": "ExpressionStatement", + "src": "3027:25:22" + } + ] + }, + "documentation": null, + "functionSelector": "aceecbc8", + "id": 6922, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6915, + "modifierName": { + "argumentTypes": null, + "id": 6914, + "name": "onlySupervisorOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "2995:21:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2995:21:22" + } + ], + "name": "disableSelling", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6913, + "nodeType": "ParameterList", + "parameters": [], + "src": "2983:2:22" + }, + "returnParameters": { + "id": 6916, + "nodeType": "ParameterList", + "parameters": [], + "src": "3017:0:22" + }, + "scope": 6963, + "src": "2960:99:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6933, + "nodeType": "Block", + "src": "3119:41:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6929, + "name": "_SELLING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9437, + "src": "3129:17:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3149:4:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3129:24:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6932, + "nodeType": "ExpressionStatement", + "src": "3129:24:22" + } + ] + }, + "documentation": null, + "functionSelector": "cc062b58", + "id": 6934, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6925, + "modifierName": { + "argumentTypes": null, + "id": 6924, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "3099:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3099:9:22" + }, + { + "arguments": null, + "id": 6927, + "modifierName": { + "argumentTypes": null, + "id": 6926, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "3109:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3109:9:22" + } + ], + "name": "enableSelling", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6923, + "nodeType": "ParameterList", + "parameters": [], + "src": "3087:2:22" + }, + "returnParameters": { + "id": 6928, + "nodeType": "ParameterList", + "parameters": [], + "src": "3119:0:22" + }, + "scope": 6963, + "src": "3065:95:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6947, + "nodeType": "Block", + "src": "3253:59:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6943, + "name": "_BASE_BALANCE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9439, + "src": "3263:20:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6944, + "name": "newBaseBalanceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "3286:19:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3263:42:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6946, + "nodeType": "ExpressionStatement", + "src": "3263:42:22" + } + ] + }, + "documentation": null, + "functionSelector": "892daf05", + "id": 6948, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6939, + "modifierName": { + "argumentTypes": null, + "id": 6938, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "3233:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3233:9:22" + }, + { + "arguments": null, + "id": 6941, + "modifierName": { + "argumentTypes": null, + "id": 6940, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "3243:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3243:9:22" + } + ], + "name": "setBaseBalanceLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6936, + "mutability": "mutable", + "name": "newBaseBalanceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6948, + "src": "3195:27:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3195:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3194:29:22" + }, + "returnParameters": { + "id": 6942, + "nodeType": "ParameterList", + "parameters": [], + "src": "3253:0:22" + }, + "scope": 6963, + "src": "3166:146:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6961, + "nodeType": "Block", + "src": "3407:61:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6957, + "name": "_QUOTE_BALANCE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9441, + "src": "3417:21:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6958, + "name": "newQuoteBalanceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6950, + "src": "3441:20:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3417:44:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6960, + "nodeType": "ExpressionStatement", + "src": "3417:44:22" + } + ] + }, + "documentation": null, + "functionSelector": "97316ad8", + "id": 6962, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6953, + "modifierName": { + "argumentTypes": null, + "id": 6952, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "3387:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3387:9:22" + }, + { + "arguments": null, + "id": 6955, + "modifierName": { + "argumentTypes": null, + "id": 6954, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "3397:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3397:9:22" + } + ], + "name": "setQuoteBalanceLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6950, + "mutability": "mutable", + "name": "newQuoteBalanceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6962, + "src": "3348:28:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6949, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3348:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3347:30:22" + }, + "returnParameters": { + "id": 6956, + "nodeType": "ParameterList", + "parameters": [], + "src": "3407:0:22" + }, + "scope": 6963, + "src": "3318:150:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6964, + "src": "270:3200:22" + } + ], + "src": "78:3393:22" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Admin.sol", + "exportedSymbols": { + "Admin": [ + 6963 + ] + }, + "id": 6964, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6681, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:22" + }, + { + "id": 6682, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:22" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "file": "./Storage.sol", + "id": 6684, + "nodeType": "ImportDirective", + "scope": 6964, + "sourceUnit": 9614, + "src": "136:38:22", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 6683, + "name": "Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:22", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6686, + "name": "Storage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9613, + "src": "288:7:22", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Storage_$9613", + "typeString": "contract Storage" + } + }, + "id": 6687, + "nodeType": "InheritanceSpecifier", + "src": "288:7:22" + } + ], + "contractDependencies": [ + 9613, + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 6685, + "nodeType": "StructuredDocumentation", + "src": "177:92:22", + "text": " @title Admin\n @author DODO Breeder\n @notice Functions for admin operations" + }, + "fullyImplemented": true, + "id": 6963, + "linearizedBaseContracts": [ + 6963, + 9613, + 11296, + 11166 + ], + "name": "Admin", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 6693, + "name": "UpdateGasPriceLimit", + "nodeType": "EventDefinition", + "parameters": { + "id": 6692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6689, + "indexed": false, + "mutability": "mutable", + "name": "oldGasPriceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6693, + "src": "369:24:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "369:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6691, + "indexed": false, + "mutability": "mutable", + "name": "newGasPriceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6693, + "src": "395:24:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "395:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "368:52:22" + }, + "src": "343:78:22" + }, + { + "anonymous": false, + "documentation": null, + "id": 6699, + "name": "UpdateLiquidityProviderFeeRate", + "nodeType": "EventDefinition", + "parameters": { + "id": 6698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6695, + "indexed": false, + "mutability": "mutable", + "name": "oldLiquidityProviderFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6699, + "src": "473:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "473:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6697, + "indexed": false, + "mutability": "mutable", + "name": "newLiquidityProviderFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6699, + "src": "518:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "518:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "463:96:22" + }, + "src": "427:133:22" + }, + { + "anonymous": false, + "documentation": null, + "id": 6705, + "name": "UpdateMaintainerFeeRate", + "nodeType": "EventDefinition", + "parameters": { + "id": 6704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6701, + "indexed": false, + "mutability": "mutable", + "name": "oldMaintainerFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6705, + "src": "596:28:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "596:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6703, + "indexed": false, + "mutability": "mutable", + "name": "newMaintainerFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6705, + "src": "626:28:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "626:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "595:60:22" + }, + "src": "566:90:22" + }, + { + "anonymous": false, + "documentation": null, + "id": 6711, + "name": "UpdateK", + "nodeType": "EventDefinition", + "parameters": { + "id": 6710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6707, + "indexed": false, + "mutability": "mutable", + "name": "oldK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6711, + "src": "676:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "676:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6709, + "indexed": false, + "mutability": "mutable", + "name": "newK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6711, + "src": "690:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6708, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "690:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "675:28:22" + }, + "src": "662:42:22" + }, + { + "body": { + "id": 6722, + "nodeType": "Block", + "src": "826:37:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6718, + "name": "_ORACLE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9451, + "src": "836:8:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6719, + "name": "newOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6713, + "src": "847:9:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "836:20:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6721, + "nodeType": "ExpressionStatement", + "src": "836:20:22" + } + ] + }, + "documentation": null, + "functionSelector": "7adbf973", + "id": 6723, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6716, + "modifierName": { + "argumentTypes": null, + "id": 6715, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "816:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "816:9:22" + } + ], + "name": "setOracle", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6713, + "mutability": "mutable", + "name": "newOracle", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6723, + "src": "788:17:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "788:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "787:19:22" + }, + "returnParameters": { + "id": 6717, + "nodeType": "ParameterList", + "parameters": [], + "src": "826:0:22" + }, + "scope": 6963, + "src": "769:94:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6734, + "nodeType": "Block", + "src": "934:45:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6730, + "name": "_SUPERVISOR_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9443, + "src": "944:12:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6731, + "name": "newSupervisor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6725, + "src": "959:13:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "944:28:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6733, + "nodeType": "ExpressionStatement", + "src": "944:28:22" + } + ] + }, + "documentation": null, + "functionSelector": "9299eb30", + "id": 6735, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6728, + "modifierName": { + "argumentTypes": null, + "id": 6727, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "924:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "924:9:22" + } + ], + "name": "setSupervisor", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6725, + "mutability": "mutable", + "name": "newSupervisor", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6735, + "src": "892:21:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6724, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "892:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "891:23:22" + }, + "returnParameters": { + "id": 6729, + "nodeType": "ParameterList", + "parameters": [], + "src": "934:0:22" + }, + "scope": 6963, + "src": "869:110:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6746, + "nodeType": "Block", + "src": "1050:45:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6742, + "name": "_MAINTAINER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9445, + "src": "1060:12:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6743, + "name": "newMaintainer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6737, + "src": "1075:13:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1060:28:22", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6745, + "nodeType": "ExpressionStatement", + "src": "1060:28:22" + } + ] + }, + "documentation": null, + "functionSelector": "13ea5d29", + "id": 6747, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6740, + "modifierName": { + "argumentTypes": null, + "id": 6739, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "1040:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1040:9:22" + } + ], + "name": "setMaintainer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6737, + "mutability": "mutable", + "name": "newMaintainer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6747, + "src": "1008:21:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6736, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1008:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1007:23:22" + }, + "returnParameters": { + "id": 6741, + "nodeType": "ParameterList", + "parameters": [], + "src": "1050:0:22" + }, + "scope": 6963, + "src": "985:110:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6766, + "nodeType": "Block", + "src": "1194:181:22", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6755, + "name": "_LP_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "1240:13:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6756, + "name": "newLiquidityPorviderFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6749, + "src": "1255:27:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6754, + "name": "UpdateLiquidityProviderFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6699, + "src": "1209:30:22", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 6757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1209:74:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6758, + "nodeType": "EmitStatement", + "src": "1204:79:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 6761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6759, + "name": "_LP_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "1293:13:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6760, + "name": "newLiquidityPorviderFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6749, + "src": "1309:27:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1293:43:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6762, + "nodeType": "ExpressionStatement", + "src": "1293:43:22" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6763, + "name": "_checkDODOParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "1346:20:22", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 6764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1346:22:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6765, + "nodeType": "ExpressionStatement", + "src": "1346:22:22" + } + ] + }, + "documentation": null, + "functionSelector": "5bb7552a", + "id": 6767, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6752, + "modifierName": { + "argumentTypes": null, + "id": 6751, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "1184:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1184:9:22" + } + ], + "name": "setLiquidityProviderFeeRate", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6749, + "mutability": "mutable", + "name": "newLiquidityPorviderFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6767, + "src": "1138:35:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1138:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1137:37:22" + }, + "returnParameters": { + "id": 6753, + "nodeType": "ParameterList", + "parameters": [], + "src": "1194:0:22" + }, + "scope": 6963, + "src": "1101:274:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6786, + "nodeType": "Block", + "src": "1460:160:22", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6775, + "name": "_MT_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "1499:13:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6776, + "name": "newMaintainerFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6769, + "src": "1514:20:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6774, + "name": "UpdateMaintainerFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6705, + "src": "1475:23:22", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 6777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1475:60:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6778, + "nodeType": "EmitStatement", + "src": "1470:65:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 6781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6779, + "name": "_MT_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "1545:13:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6780, + "name": "newMaintainerFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6769, + "src": "1561:20:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1545:36:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6782, + "nodeType": "ExpressionStatement", + "src": "1545:36:22" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6783, + "name": "_checkDODOParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "1591:20:22", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 6784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1591:22:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6785, + "nodeType": "ExpressionStatement", + "src": "1591:22:22" + } + ] + }, + "documentation": null, + "functionSelector": "f2220416", + "id": 6787, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6772, + "modifierName": { + "argumentTypes": null, + "id": 6771, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "1450:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1450:9:22" + } + ], + "name": "setMaintainerFeeRate", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6769, + "mutability": "mutable", + "name": "newMaintainerFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6787, + "src": "1411:28:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1411:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1410:30:22" + }, + "returnParameters": { + "id": 6773, + "nodeType": "ParameterList", + "parameters": [], + "src": "1460:0:22" + }, + "scope": 6963, + "src": "1381:239:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6806, + "nodeType": "Block", + "src": "1673:92:22", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6795, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "1696:3:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6796, + "name": "newK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6789, + "src": "1701:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6794, + "name": "UpdateK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6711, + "src": "1688:7:22", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 6797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1688:18:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6798, + "nodeType": "EmitStatement", + "src": "1683:23:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 6801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6799, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "1716:3:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6800, + "name": "newK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6789, + "src": "1722:4:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1716:10:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6802, + "nodeType": "ExpressionStatement", + "src": "1716:10:22" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6803, + "name": "_checkDODOParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "1736:20:22", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 6804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1736:22:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6805, + "nodeType": "ExpressionStatement", + "src": "1736:22:22" + } + ] + }, + "documentation": null, + "functionSelector": "67de8be9", + "id": 6807, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6792, + "modifierName": { + "argumentTypes": null, + "id": 6791, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "1663:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1663:9:22" + } + ], + "name": "setK", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6789, + "mutability": "mutable", + "name": "newK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6807, + "src": "1640:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1640:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1639:14:22" + }, + "returnParameters": { + "id": 6793, + "nodeType": "ParameterList", + "parameters": [], + "src": "1673:0:22" + }, + "scope": 6963, + "src": "1626:139:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6823, + "nodeType": "Block", + "src": "1854:124:22", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6815, + "name": "_GAS_PRICE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9433, + "src": "1889:17:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6816, + "name": "newGasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6809, + "src": "1908:16:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6814, + "name": "UpdateGasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6693, + "src": "1869:19:22", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 6817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1869:56:22", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6818, + "nodeType": "EmitStatement", + "src": "1864:61:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 6821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6819, + "name": "_GAS_PRICE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9433, + "src": "1935:17:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6820, + "name": "newGasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6809, + "src": "1955:16:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1935:36:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6822, + "nodeType": "ExpressionStatement", + "src": "1935:36:22" + } + ] + }, + "documentation": null, + "functionSelector": "09231602", + "id": 6824, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6812, + "modifierName": { + "argumentTypes": null, + "id": 6811, + "name": "onlySupervisorOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "1832:21:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1832:21:22" + } + ], + "name": "setGasPriceLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6809, + "mutability": "mutable", + "name": "newGasPriceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6824, + "src": "1797:24:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6808, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1797:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1796:26:22" + }, + "returnParameters": { + "id": 6813, + "nodeType": "ParameterList", + "parameters": [], + "src": "1854:0:22" + }, + "scope": 6963, + "src": "1771:207:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6833, + "nodeType": "Block", + "src": "2100:40:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6829, + "name": "_TRADE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9431, + "src": "2110:15:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 6830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2128:5:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2110:23:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6832, + "nodeType": "ExpressionStatement", + "src": "2110:23:22" + } + ] + }, + "documentation": null, + "functionSelector": "17700f01", + "id": 6834, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6827, + "modifierName": { + "argumentTypes": null, + "id": 6826, + "name": "onlySupervisorOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "2078:21:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2078:21:22" + } + ], + "name": "disableTrading", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6825, + "nodeType": "ParameterList", + "parameters": [], + "src": "2066:2:22" + }, + "returnParameters": { + "id": 6828, + "nodeType": "ParameterList", + "parameters": [], + "src": "2100:0:22" + }, + "scope": 6963, + "src": "2043:97:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6845, + "nodeType": "Block", + "src": "2200:39:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6841, + "name": "_TRADE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9431, + "src": "2210:15:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2228:4:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2210:22:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6844, + "nodeType": "ExpressionStatement", + "src": "2210:22:22" + } + ] + }, + "documentation": null, + "functionSelector": "8a8c523c", + "id": 6846, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6837, + "modifierName": { + "argumentTypes": null, + "id": 6836, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "2180:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2180:9:22" + }, + { + "arguments": null, + "id": 6839, + "modifierName": { + "argumentTypes": null, + "id": 6838, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "2190:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2190:9:22" + } + ], + "name": "enableTrading", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6835, + "nodeType": "ParameterList", + "parameters": [], + "src": "2168:2:22" + }, + "returnParameters": { + "id": 6840, + "nodeType": "ParameterList", + "parameters": [], + "src": "2200:0:22" + }, + "scope": 6963, + "src": "2146:93:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6855, + "nodeType": "Block", + "src": "2307:48:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6851, + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9427, + "src": "2317:23:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 6852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2343:5:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2317:31:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6854, + "nodeType": "ExpressionStatement", + "src": "2317:31:22" + } + ] + }, + "documentation": null, + "functionSelector": "bc7d679d", + "id": 6856, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6849, + "modifierName": { + "argumentTypes": null, + "id": 6848, + "name": "onlySupervisorOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "2285:21:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2285:21:22" + } + ], + "name": "disableQuoteDeposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6847, + "nodeType": "ParameterList", + "parameters": [], + "src": "2273:2:22" + }, + "returnParameters": { + "id": 6850, + "nodeType": "ParameterList", + "parameters": [], + "src": "2307:0:22" + }, + "scope": 6963, + "src": "2245:110:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6867, + "nodeType": "Block", + "src": "2420:47:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6863, + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9427, + "src": "2430:23:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2456:4:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2430:30:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6866, + "nodeType": "ExpressionStatement", + "src": "2430:30:22" + } + ] + }, + "documentation": null, + "functionSelector": "36ac41a8", + "id": 6868, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6859, + "modifierName": { + "argumentTypes": null, + "id": 6858, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "2400:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2400:9:22" + }, + { + "arguments": null, + "id": 6861, + "modifierName": { + "argumentTypes": null, + "id": 6860, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "2410:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2410:9:22" + } + ], + "name": "enableQuoteDeposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6857, + "nodeType": "ParameterList", + "parameters": [], + "src": "2388:2:22" + }, + "returnParameters": { + "id": 6862, + "nodeType": "ParameterList", + "parameters": [], + "src": "2420:0:22" + }, + "scope": 6963, + "src": "2361:106:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6877, + "nodeType": "Block", + "src": "2534:47:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6873, + "name": "_DEPOSIT_BASE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9429, + "src": "2544:22:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 6874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2569:5:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2544:30:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6876, + "nodeType": "ExpressionStatement", + "src": "2544:30:22" + } + ] + }, + "documentation": null, + "functionSelector": "13c57624", + "id": 6878, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6871, + "modifierName": { + "argumentTypes": null, + "id": 6870, + "name": "onlySupervisorOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "2512:21:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2512:21:22" + } + ], + "name": "disableBaseDeposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6869, + "nodeType": "ParameterList", + "parameters": [], + "src": "2500:2:22" + }, + "returnParameters": { + "id": 6872, + "nodeType": "ParameterList", + "parameters": [], + "src": "2534:0:22" + }, + "scope": 6963, + "src": "2473:108:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6889, + "nodeType": "Block", + "src": "2645:46:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6885, + "name": "_DEPOSIT_BASE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9429, + "src": "2655:22:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2680:4:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2655:29:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6888, + "nodeType": "ExpressionStatement", + "src": "2655:29:22" + } + ] + }, + "documentation": null, + "functionSelector": "1184d8be", + "id": 6890, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6881, + "modifierName": { + "argumentTypes": null, + "id": 6880, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "2625:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2625:9:22" + }, + { + "arguments": null, + "id": 6883, + "modifierName": { + "argumentTypes": null, + "id": 6882, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "2635:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2635:9:22" + } + ], + "name": "enableBaseDeposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6879, + "nodeType": "ParameterList", + "parameters": [], + "src": "2613:2:22" + }, + "returnParameters": { + "id": 6884, + "nodeType": "ParameterList", + "parameters": [], + "src": "2645:0:22" + }, + "scope": 6963, + "src": "2587:104:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6899, + "nodeType": "Block", + "src": "2814:41:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6895, + "name": "_BUYING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9435, + "src": "2824:16:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 6896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2843:5:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2824:24:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6898, + "nodeType": "ExpressionStatement", + "src": "2824:24:22" + } + ] + }, + "documentation": null, + "functionSelector": "247f993b", + "id": 6900, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6893, + "modifierName": { + "argumentTypes": null, + "id": 6892, + "name": "onlySupervisorOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "2792:21:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2792:21:22" + } + ], + "name": "disableBuying", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6891, + "nodeType": "ParameterList", + "parameters": [], + "src": "2780:2:22" + }, + "returnParameters": { + "id": 6894, + "nodeType": "ParameterList", + "parameters": [], + "src": "2814:0:22" + }, + "scope": 6963, + "src": "2758:97:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6911, + "nodeType": "Block", + "src": "2914:40:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6907, + "name": "_BUYING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9435, + "src": "2924:16:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2943:4:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2924:23:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6910, + "nodeType": "ExpressionStatement", + "src": "2924:23:22" + } + ] + }, + "documentation": null, + "functionSelector": "90cbf822", + "id": 6912, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6903, + "modifierName": { + "argumentTypes": null, + "id": 6902, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "2894:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2894:9:22" + }, + { + "arguments": null, + "id": 6905, + "modifierName": { + "argumentTypes": null, + "id": 6904, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "2904:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2904:9:22" + } + ], + "name": "enableBuying", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6901, + "nodeType": "ParameterList", + "parameters": [], + "src": "2882:2:22" + }, + "returnParameters": { + "id": 6906, + "nodeType": "ParameterList", + "parameters": [], + "src": "2914:0:22" + }, + "scope": 6963, + "src": "2861:93:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6921, + "nodeType": "Block", + "src": "3017:42:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6917, + "name": "_SELLING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9437, + "src": "3027:17:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 6918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3047:5:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3027:25:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6920, + "nodeType": "ExpressionStatement", + "src": "3027:25:22" + } + ] + }, + "documentation": null, + "functionSelector": "aceecbc8", + "id": 6922, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6915, + "modifierName": { + "argumentTypes": null, + "id": 6914, + "name": "onlySupervisorOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9496, + "src": "2995:21:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2995:21:22" + } + ], + "name": "disableSelling", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6913, + "nodeType": "ParameterList", + "parameters": [], + "src": "2983:2:22" + }, + "returnParameters": { + "id": 6916, + "nodeType": "ParameterList", + "parameters": [], + "src": "3017:0:22" + }, + "scope": 6963, + "src": "2960:99:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6933, + "nodeType": "Block", + "src": "3119:41:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6929, + "name": "_SELLING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9437, + "src": "3129:17:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3149:4:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3129:24:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6932, + "nodeType": "ExpressionStatement", + "src": "3129:24:22" + } + ] + }, + "documentation": null, + "functionSelector": "cc062b58", + "id": 6934, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6925, + "modifierName": { + "argumentTypes": null, + "id": 6924, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "3099:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3099:9:22" + }, + { + "arguments": null, + "id": 6927, + "modifierName": { + "argumentTypes": null, + "id": 6926, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "3109:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3109:9:22" + } + ], + "name": "enableSelling", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6923, + "nodeType": "ParameterList", + "parameters": [], + "src": "3087:2:22" + }, + "returnParameters": { + "id": 6928, + "nodeType": "ParameterList", + "parameters": [], + "src": "3119:0:22" + }, + "scope": 6963, + "src": "3065:95:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6947, + "nodeType": "Block", + "src": "3253:59:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6943, + "name": "_BASE_BALANCE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9439, + "src": "3263:20:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6944, + "name": "newBaseBalanceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "3286:19:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3263:42:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6946, + "nodeType": "ExpressionStatement", + "src": "3263:42:22" + } + ] + }, + "documentation": null, + "functionSelector": "892daf05", + "id": 6948, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6939, + "modifierName": { + "argumentTypes": null, + "id": 6938, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "3233:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3233:9:22" + }, + { + "arguments": null, + "id": 6941, + "modifierName": { + "argumentTypes": null, + "id": 6940, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "3243:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3243:9:22" + } + ], + "name": "setBaseBalanceLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6936, + "mutability": "mutable", + "name": "newBaseBalanceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6948, + "src": "3195:27:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3195:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3194:29:22" + }, + "returnParameters": { + "id": 6942, + "nodeType": "ParameterList", + "parameters": [], + "src": "3253:0:22" + }, + "scope": 6963, + "src": "3166:146:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6961, + "nodeType": "Block", + "src": "3407:61:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6957, + "name": "_QUOTE_BALANCE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9441, + "src": "3417:21:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6958, + "name": "newQuoteBalanceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6950, + "src": "3441:20:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3417:44:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6960, + "nodeType": "ExpressionStatement", + "src": "3417:44:22" + } + ] + }, + "documentation": null, + "functionSelector": "97316ad8", + "id": 6962, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6953, + "modifierName": { + "argumentTypes": null, + "id": 6952, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "3387:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3387:9:22" + }, + { + "arguments": null, + "id": 6955, + "modifierName": { + "argumentTypes": null, + "id": 6954, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "3397:9:22", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3397:9:22" + } + ], + "name": "setQuoteBalanceLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6950, + "mutability": "mutable", + "name": "newQuoteBalanceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6962, + "src": "3348:28:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6949, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3348:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3347:30:22" + }, + "returnParameters": { + "id": 6956, + "nodeType": "ParameterList", + "parameters": [], + "src": "3407:0:22" + }, + "scope": 6963, + "src": "3318:150:22", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6964, + "src": "270:3200:22" + } + ], + "src": "78:3393:22" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.678Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "Admin" + }, + "userdoc": { + "methods": {}, + "notice": "Functions for admin operations" + } +} \ No newline at end of file diff --git a/build-v1/contracts/BandBNBBUSDPriceOracleProxy.json b/build-v1/contracts/BandBNBBUSDPriceOracleProxy.json new file mode 100644 index 0000000..b0efd91 --- /dev/null +++ b/build-v1/contracts/BandBNBBUSDPriceOracleProxy.json @@ -0,0 +1,1047 @@ +{ + "contractName": "BandBNBBUSDPriceOracleProxy", + "abi": [ + { + "inputs": [ + { + "internalType": "contract IBandOracleAggregator", + "name": "_aggregator", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "aggregator", + "outputs": [ + { + "internalType": "contract IBandOracleAggregator", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IBandOracleAggregator\",\"name\":\"_aggregator\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"aggregator\",\"outputs\":[{\"internalType\":\"contract IBandOracleAggregator\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/BandBNBBUSDPriceOracleProxy.sol\":\"BandBNBBUSDPriceOracleProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/BandBNBBUSDPriceOracleProxy.sol\":{\"keccak256\":\"0x3fb4b23899bd5ce681ec2f80d5ba228c9a3a86c86ee877010280286ac0a4e650\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://426b50755f7de3b9ad1eccf29c8940c859a64d4b8092a0255d6c19456198f582\",\"dweb:/ipfs/Qmc5H2rEQLz92yvPJFtiYi9RdsJsCoxtu27udHEzk66kkc\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5060405161023438038061023483398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610082565b600060208284031215610065578081fd5b81516001600160a01b038116811461007b578182fd5b9392505050565b6101a3806100916000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063245a7bfc1461003b57806398d5fdca14610059575b600080fd5b61004361006e565b6040516100509190610119565b60405180910390f35b61006161007d565b6040516100509190610164565b6000546001600160a01b031681565b6000805460405163195556f360e21b81526001600160a01b03909116906365555bcc906100ac9060040161012d565b60206040518083038186803b1580156100c457600080fd5b505afa1580156100d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fc9190610101565b905090565b600060208284031215610112578081fd5b5051919050565b6001600160a01b0391909116815260200190565b604080825260039082018190526221272160e91b6060830152608060208301819052820152621554d160ea1b60a082015260c00190565b9081526020019056fea26469706673582212203679565ead7c9ba3798f21b1c8a9c7453826485a4329737309557af60365c16564736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063245a7bfc1461003b57806398d5fdca14610059575b600080fd5b61004361006e565b6040516100509190610119565b60405180910390f35b61006161007d565b6040516100509190610164565b6000546001600160a01b031681565b6000805460405163195556f360e21b81526001600160a01b03909116906365555bcc906100ac9060040161012d565b60206040518083038186803b1580156100c457600080fd5b505afa1580156100d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fc9190610101565b905090565b600060208284031215610112578081fd5b5051919050565b6001600160a01b0391909116815260200190565b604080825260039082018190526221272160e91b6060830152608060208301819052820152621554d160ea1b60a082015260c00190565b9081526020019056fea26469706673582212203679565ead7c9ba3798f21b1c8a9c7453826485a4329737309557af60365c16564736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "303:307:3:-:0;;;392:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;456:10;:24;;-1:-1:-1;;;;;;456:24:3;-1:-1:-1;;;;;456:24:3;;;;;;;;;;303:307;;206:323:-1;;351:2;339:9;330:7;326:23;322:32;319:2;;;-1:-1;;357:12;319:2;113:13;;-1:-1;;;;;824:54;;979:65;;969:2;;-1:-1;;1048:12;969:2;409:104;313:216;-1:-1;;;313:216;;303:307:3;;;;;;", + "deployedSourceMap": "303:307:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;346:39;;;:::i;:::-;;;;;;;;;;;;;;;;493:115;;;:::i;:::-;;;;;;;;346:39;;;-1:-1:-1;;;;;346:39:3;;:::o;493:115::-;534:7;560:10;;:41;;-1:-1:-1;;;560:41:3;;-1:-1:-1;;;;;560:10:3;;;;:27;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:48;;493:115;:::o;146:263:-1:-;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;-1:-1;83:13;;223:186;-1:-1;223:186;1351:282;-1:-1;;;;;2831:54;;;;517:80;;1508:2;1493:18;;1479:154;1640:721;1941:2;1955:47;;;834:1;1926:18;;;2701:19;;;-1:-1;;;2741:14;;;849:26;894:12;2750:4;2165:18;;2158:48;;;894:12;;2701:19;-1:-1;;;2741:14;;;1160:26;1205:12;;;1912:449;2368:222;1302:37;;;2495:2;2480:18;;2466:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IBandOracleAggregator {\n function getReferenceData(string memory base, string memory quote)\n external\n view\n returns (uint256);\n}\n\n\ncontract BandBNBBUSDPriceOracleProxy {\n IBandOracleAggregator public aggregator;\n\n constructor(IBandOracleAggregator _aggregator) public {\n aggregator = _aggregator;\n }\n\n function getPrice() public view returns (uint256) {\n return aggregator.getReferenceData(\"BNB\", \"USD\");\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/BandBNBBUSDPriceOracleProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/BandBNBBUSDPriceOracleProxy.sol", + "exportedSymbols": { + "BandBNBBUSDPriceOracleProxy": [ + 1728 + ], + "IBandOracleAggregator": [ + 1703 + ] + }, + "id": 1729, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1692, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:3" + }, + { + "id": 1693, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:3" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1703, + "linearizedBaseContracts": [ + 1703 + ], + "name": "IBandOracleAggregator", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "65555bcc", + "id": 1702, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReferenceData", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1695, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1702, + "src": "201:18:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1694, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "201:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1697, + "mutability": "mutable", + "name": "quote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1702, + "src": "221:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1696, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "221:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "200:41:3" + }, + "returnParameters": { + "id": 1701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1700, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1702, + "src": "289:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "289:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "288:9:3" + }, + "scope": 1703, + "src": "175:123:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1729, + "src": "137:163:3" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1728, + "linearizedBaseContracts": [ + 1728 + ], + "name": "BandBNBBUSDPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "245a7bfc", + "id": 1705, + "mutability": "mutable", + "name": "aggregator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1728, + "src": "346:39:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + }, + "typeName": { + "contractScope": null, + "id": 1704, + "name": "IBandOracleAggregator", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1703, + "src": "346:21:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1714, + "nodeType": "Block", + "src": "446:41:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1710, + "name": "aggregator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1705, + "src": "456:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1711, + "name": "_aggregator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "469:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "src": "456:24:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "id": 1713, + "nodeType": "ExpressionStatement", + "src": "456:24:3" + } + ] + }, + "documentation": null, + "id": 1715, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1707, + "mutability": "mutable", + "name": "_aggregator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1715, + "src": "404:33:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + }, + "typeName": { + "contractScope": null, + "id": 1706, + "name": "IBandOracleAggregator", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1703, + "src": "404:21:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "403:35:3" + }, + "returnParameters": { + "id": 1709, + "nodeType": "ParameterList", + "parameters": [], + "src": "446:0:3" + }, + "scope": 1728, + "src": "392:95:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1726, + "nodeType": "Block", + "src": "543:65:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "424e42", + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "588:5:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3ed03c38e59dc60c7b69c2a4bf68f9214acd953252b5a90e8f5f59583e9bc3ae", + "typeString": "literal_string \"BNB\"" + }, + "value": "BNB" + }, + { + "argumentTypes": null, + "hexValue": "555344", + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "595:5:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + }, + "value": "USD" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_3ed03c38e59dc60c7b69c2a4bf68f9214acd953252b5a90e8f5f59583e9bc3ae", + "typeString": "literal_string \"BNB\"" + }, + { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + } + ], + "expression": { + "argumentTypes": null, + "id": 1720, + "name": "aggregator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1705, + "src": "560:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getReferenceData", + "nodeType": "MemberAccess", + "referencedDeclaration": 1702, + "src": "560:27:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (string memory,string memory) view external returns (uint256)" + } + }, + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "560:41:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1719, + "id": 1725, + "nodeType": "Return", + "src": "553:48:3" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1727, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1716, + "nodeType": "ParameterList", + "parameters": [], + "src": "510:2:3" + }, + "returnParameters": { + "id": 1719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1718, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1727, + "src": "534:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "534:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "533:9:3" + }, + "scope": 1728, + "src": "493:115:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1729, + "src": "303:307:3" + } + ], + "src": "78:533:3" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/BandBNBBUSDPriceOracleProxy.sol", + "exportedSymbols": { + "BandBNBBUSDPriceOracleProxy": [ + 1728 + ], + "IBandOracleAggregator": [ + 1703 + ] + }, + "id": 1729, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1692, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:3" + }, + { + "id": 1693, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:3" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1703, + "linearizedBaseContracts": [ + 1703 + ], + "name": "IBandOracleAggregator", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "65555bcc", + "id": 1702, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReferenceData", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1695, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1702, + "src": "201:18:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1694, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "201:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1697, + "mutability": "mutable", + "name": "quote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1702, + "src": "221:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1696, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "221:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "200:41:3" + }, + "returnParameters": { + "id": 1701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1700, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1702, + "src": "289:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "289:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "288:9:3" + }, + "scope": 1703, + "src": "175:123:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1729, + "src": "137:163:3" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1728, + "linearizedBaseContracts": [ + 1728 + ], + "name": "BandBNBBUSDPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "245a7bfc", + "id": 1705, + "mutability": "mutable", + "name": "aggregator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1728, + "src": "346:39:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + }, + "typeName": { + "contractScope": null, + "id": 1704, + "name": "IBandOracleAggregator", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1703, + "src": "346:21:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1714, + "nodeType": "Block", + "src": "446:41:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1710, + "name": "aggregator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1705, + "src": "456:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1711, + "name": "_aggregator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "469:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "src": "456:24:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "id": 1713, + "nodeType": "ExpressionStatement", + "src": "456:24:3" + } + ] + }, + "documentation": null, + "id": 1715, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1707, + "mutability": "mutable", + "name": "_aggregator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1715, + "src": "404:33:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + }, + "typeName": { + "contractScope": null, + "id": 1706, + "name": "IBandOracleAggregator", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1703, + "src": "404:21:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "403:35:3" + }, + "returnParameters": { + "id": 1709, + "nodeType": "ParameterList", + "parameters": [], + "src": "446:0:3" + }, + "scope": 1728, + "src": "392:95:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1726, + "nodeType": "Block", + "src": "543:65:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "424e42", + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "588:5:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3ed03c38e59dc60c7b69c2a4bf68f9214acd953252b5a90e8f5f59583e9bc3ae", + "typeString": "literal_string \"BNB\"" + }, + "value": "BNB" + }, + { + "argumentTypes": null, + "hexValue": "555344", + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "595:5:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + }, + "value": "USD" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_3ed03c38e59dc60c7b69c2a4bf68f9214acd953252b5a90e8f5f59583e9bc3ae", + "typeString": "literal_string \"BNB\"" + }, + { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + } + ], + "expression": { + "argumentTypes": null, + "id": 1720, + "name": "aggregator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1705, + "src": "560:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getReferenceData", + "nodeType": "MemberAccess", + "referencedDeclaration": 1702, + "src": "560:27:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (string memory,string memory) view external returns (uint256)" + } + }, + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "560:41:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1719, + "id": 1725, + "nodeType": "Return", + "src": "553:48:3" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1727, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1716, + "nodeType": "ParameterList", + "parameters": [], + "src": "510:2:3" + }, + "returnParameters": { + "id": 1719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1718, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1727, + "src": "534:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "534:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "533:9:3" + }, + "scope": 1728, + "src": "493:115:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1729, + "src": "303:307:3" + } + ], + "src": "78:533:3" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.491Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/ChainlinkCOMPUSDCPriceOracleProxy.json b/build-v1/contracts/ChainlinkCOMPUSDCPriceOracleProxy.json new file mode 100644 index 0000000..5eb41d9 --- /dev/null +++ b/build-v1/contracts/ChainlinkCOMPUSDCPriceOracleProxy.json @@ -0,0 +1,788 @@ +{ + "contractName": "ChainlinkCOMPUSDCPriceOracleProxy", + "abi": [ + { + "inputs": [], + "name": "chainlink", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"chainlink\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkCOMPUSDCPriceOracleProxy.sol\":\"ChainlinkCOMPUSDCPriceOracleProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkCOMPUSDCPriceOracleProxy.sol\":{\"keccak256\":\"0x877cd3a97cdaa00539540a42f82bcc0f31052691f6b1b9d0ac1c95e17553bc7f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c7521a6fffeeda9c1dec37693b3feb632f15c33f403fee934c9cf9f823b5b099\",\"dweb:/ipfs/QmQMcqmV4u7wPwE4DZPWwckJhbQWcxz7Ds4nscGTGLCHKJ\"]}},\"version\":1}", + "bytecode": "0x6080604052600080546001600160a01b03191673dbd020caef83efd542f4de03e3cf0c28a4428bd517905534801561003657600080fd5b50610173806100466000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b6040516100509190610134565b60405180910390f35b6100616100f9565b6040516100509190610120565b60008054604080516350d25bcd60e01b815290516064926001600160a01b0316916350d25bcd916004808301926020929190829003018186803b1580156100b457600080fd5b505afa1580156100c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ec9190610108565b816100f357fe5b04905090565b6000546001600160a01b031681565b600060208284031215610119578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea264697066735822122086c588800adb33f879ded9ec8d3bcd8fdbd92571643d10bb8946fe873f76629b64736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b6040516100509190610134565b60405180910390f35b6100616100f9565b6040516100509190610120565b60008054604080516350d25bcd60e01b815290516064926001600160a01b0316916350d25bcd916004808301926020929190829003018186803b1580156100b457600080fd5b505afa1580156100c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ec9190610108565b816100f357fe5b04905090565b6000546001600160a01b031681565b600060208284031215610119578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea264697066735822122086c588800adb33f879ded9ec8d3bcd8fdbd92571643d10bb8946fe873f76629b64736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "269:245:4:-:0;;;318:69;;;-1:-1:-1;;;;;;318:69:4;345:42;318:69;;;269:245;;;;;;;;;;;;;;;;", + "deployedSourceMap": "269:245:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;394:118;;;:::i;:::-;;;;;;;;;;;;;;;;318:69;;;:::i;:::-;;;;;;;;394:118;437:7;474:9;;463:36;;;-1:-1:-1;;;463:36:4;;;;502:3;;-1:-1:-1;;;;;474:9:4;;463:34;;:36;;;;;;;;;;;;;;474:9;463:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;;;456:49;;394:118;:::o;318:69::-;;;-1:-1:-1;;;;;318:69:4;;:::o;146:263:-1:-;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;-1:-1;83:13;;223:186;-1:-1;223:186;656:222;-1:-1;;;;;1274:54;;;;487:37;;783:2;768:18;;754:124;885:222;607:37;;;1012:2;997:18;;983:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IChainlink {\n function latestAnswer() external view returns (uint256);\n}\n\n\n// for COMP-USDC(decimals=6) price convert\n\ncontract ChainlinkCOMPUSDCPriceOracleProxy {\n address public chainlink = 0xdbd020CAeF83eFd542f4De03e3cF0C28A4428bd5;\n\n function getPrice() external view returns (uint256) {\n return IChainlink(chainlink).latestAnswer() / 100;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkCOMPUSDCPriceOracleProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkCOMPUSDCPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkCOMPUSDCPriceOracleProxy": [ + 1755 + ], + "IChainlink": [ + 1737 + ] + }, + "id": 1756, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1730, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:4" + }, + { + "id": 1731, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:4" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1737, + "linearizedBaseContracts": [ + 1737 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1736, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1732, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:4" + }, + "returnParameters": { + "id": 1735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1736, + "src": "211:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:4" + }, + "scope": 1737, + "src": "164:56:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1756, + "src": "137:85:4" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1755, + "linearizedBaseContracts": [ + 1755 + ], + "name": "ChainlinkCOMPUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1740, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1755, + "src": "318:69:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1738, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "318:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307864626430323043416546383365466435343266344465303365336346304332384134343238626435", + "id": 1739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "345:42:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0xdbd020CAeF83eFd542f4De03e3cF0C28A4428bd5" + }, + "visibility": "public" + }, + { + "body": { + "id": 1753, + "nodeType": "Block", + "src": "446:66:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1746, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1740, + "src": "474:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1745, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "463:10:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1737_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "463:21:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1737", + "typeString": "contract IChainlink" + } + }, + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1736, + "src": "463:34:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "463:36:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "502:3:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "463:42:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1744, + "id": 1752, + "nodeType": "Return", + "src": "456:49:4" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1754, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1741, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:4" + }, + "returnParameters": { + "id": 1744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1743, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1754, + "src": "437:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1742, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "437:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:9:4" + }, + "scope": 1755, + "src": "394:118:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1756, + "src": "269:245:4" + } + ], + "src": "78:437:4" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkCOMPUSDCPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkCOMPUSDCPriceOracleProxy": [ + 1755 + ], + "IChainlink": [ + 1737 + ] + }, + "id": 1756, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1730, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:4" + }, + { + "id": 1731, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:4" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1737, + "linearizedBaseContracts": [ + 1737 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1736, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1732, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:4" + }, + "returnParameters": { + "id": 1735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1736, + "src": "211:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:4" + }, + "scope": 1737, + "src": "164:56:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1756, + "src": "137:85:4" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1755, + "linearizedBaseContracts": [ + 1755 + ], + "name": "ChainlinkCOMPUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1740, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1755, + "src": "318:69:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1738, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "318:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307864626430323043416546383365466435343266344465303365336346304332384134343238626435", + "id": 1739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "345:42:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0xdbd020CAeF83eFd542f4De03e3cF0C28A4428bd5" + }, + "visibility": "public" + }, + { + "body": { + "id": 1753, + "nodeType": "Block", + "src": "446:66:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1746, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1740, + "src": "474:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1745, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "463:10:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1737_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "463:21:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1737", + "typeString": "contract IChainlink" + } + }, + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1736, + "src": "463:34:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "463:36:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "502:3:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "463:42:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1744, + "id": 1752, + "nodeType": "Return", + "src": "456:49:4" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1754, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1741, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:4" + }, + "returnParameters": { + "id": 1744, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1743, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1754, + "src": "437:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1742, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "437:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:9:4" + }, + "scope": 1755, + "src": "394:118:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1756, + "src": "269:245:4" + } + ], + "src": "78:437:4" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.492Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/ChainlinkETHPriceOracleProxy.json b/build-v1/contracts/ChainlinkETHPriceOracleProxy.json new file mode 100644 index 0000000..bbeedb3 --- /dev/null +++ b/build-v1/contracts/ChainlinkETHPriceOracleProxy.json @@ -0,0 +1,788 @@ +{ + "contractName": "ChainlinkETHPriceOracleProxy", + "abi": [ + { + "inputs": [], + "name": "chainlink", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"chainlink\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkEthUSDCPriceOracleProxy.sol\":\"ChainlinkETHPriceOracleProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkEthUSDCPriceOracleProxy.sol\":{\"keccak256\":\"0xa3d5f252b03f5a5140c36a6815612e6484ad60cf6e88846dfafc14de7c76ee05\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://92ab3dcca573ab8f5ce280c2b26e1ddd692bc20f51515e129844b4143437bbb4\",\"dweb:/ipfs/QmWShayRc3PFHWAkzyW9mMVRjEGcGRP6t2CEpHxVibpRGw\"]}},\"version\":1}", + "bytecode": "0x6080604052600080546001600160a01b031916735f4ec3df9cbd43714fe2740f5e3616155c5b841917905534801561003657600080fd5b50610173806100466000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b6040516100509190610134565b60405180910390f35b6100616100f9565b6040516100509190610120565b60008054604080516350d25bcd60e01b815290516064926001600160a01b0316916350d25bcd916004808301926020929190829003018186803b1580156100b457600080fd5b505afa1580156100c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ec9190610108565b816100f357fe5b04905090565b6000546001600160a01b031681565b600060208284031215610119578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea26469706673582212205555b0b7c9d5fd397dcfc32dc4ba242ea35e2b5c33b9133350713a49ea552d0064736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b6040516100509190610134565b60405180910390f35b6100616100f9565b6040516100509190610120565b60008054604080516350d25bcd60e01b815290516064926001600160a01b0316916350d25bcd916004808301926020929190829003018186803b1580156100b457600080fd5b505afa1580156100c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ec9190610108565b816100f357fe5b04905090565b6000546001600160a01b031681565b600060208284031215610119578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea26469706673582212205555b0b7c9d5fd397dcfc32dc4ba242ea35e2b5c33b9133350713a49ea552d0064736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "269:240:5:-:0;;;313:69;;;-1:-1:-1;;;;;;313:69:5;340:42;313:69;;;269:240;;;;;;;;;;;;;;;;", + "deployedSourceMap": "269:240:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;389:118;;;:::i;:::-;;;;;;;;;;;;;;;;313:69;;;:::i;:::-;;;;;;;;389:118;432:7;469:9;;458:36;;;-1:-1:-1;;;458:36:5;;;;497:3;;-1:-1:-1;;;;;469:9:5;;458:34;;:36;;;;;;;;;;;;;;469:9;458:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;;;451:49;;389:118;:::o;313:69::-;;;-1:-1:-1;;;;;313:69:5;;:::o;146:263:-1:-;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;-1:-1;83:13;;223:186;-1:-1;223:186;656:222;-1:-1;;;;;1274:54;;;;487:37;;783:2;768:18;;754:124;885:222;607:37;;;1012:2;997:18;;983:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IChainlink {\n function latestAnswer() external view returns (uint256);\n}\n\n\n// for WETH-USDC(decimals=6) price convert\n\ncontract ChainlinkETHPriceOracleProxy {\n address public chainlink = 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419;\n\n function getPrice() external view returns (uint256) {\n return IChainlink(chainlink).latestAnswer() / 100;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkEthUSDCPriceOracleProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkEthUSDCPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkETHPriceOracleProxy": [ + 1782 + ], + "IChainlink": [ + 1764 + ] + }, + "id": 1783, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1757, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:5" + }, + { + "id": 1758, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:5" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1764, + "linearizedBaseContracts": [ + 1764 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1763, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1759, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:5" + }, + "returnParameters": { + "id": 1762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1761, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1763, + "src": "211:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:5" + }, + "scope": 1764, + "src": "164:56:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1783, + "src": "137:85:5" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1782, + "linearizedBaseContracts": [ + 1782 + ], + "name": "ChainlinkETHPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1767, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1782, + "src": "313:69:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "313:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307835663465433344663963626434333731344645323734306635453336313631353563356238343139", + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "340:42:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" + }, + "visibility": "public" + }, + { + "body": { + "id": 1780, + "nodeType": "Block", + "src": "441:66:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1773, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1767, + "src": "469:9:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1772, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1764, + "src": "458:10:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1764_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "458:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1764", + "typeString": "contract IChainlink" + } + }, + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1763, + "src": "458:34:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "458:36:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "497:3:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "458:42:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1771, + "id": 1779, + "nodeType": "Return", + "src": "451:49:5" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1768, + "nodeType": "ParameterList", + "parameters": [], + "src": "406:2:5" + }, + "returnParameters": { + "id": 1771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1770, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1781, + "src": "432:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "432:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "431:9:5" + }, + "scope": 1782, + "src": "389:118:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1783, + "src": "269:240:5" + } + ], + "src": "78:432:5" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkEthUSDCPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkETHPriceOracleProxy": [ + 1782 + ], + "IChainlink": [ + 1764 + ] + }, + "id": 1783, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1757, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:5" + }, + { + "id": 1758, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:5" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1764, + "linearizedBaseContracts": [ + 1764 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1763, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1759, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:5" + }, + "returnParameters": { + "id": 1762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1761, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1763, + "src": "211:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:5" + }, + "scope": 1764, + "src": "164:56:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1783, + "src": "137:85:5" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1782, + "linearizedBaseContracts": [ + 1782 + ], + "name": "ChainlinkETHPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1767, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1782, + "src": "313:69:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "313:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307835663465433344663963626434333731344645323734306635453336313631353563356238343139", + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "340:42:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" + }, + "visibility": "public" + }, + { + "body": { + "id": 1780, + "nodeType": "Block", + "src": "441:66:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1773, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1767, + "src": "469:9:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1772, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1764, + "src": "458:10:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1764_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "458:21:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1764", + "typeString": "contract IChainlink" + } + }, + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1763, + "src": "458:34:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "458:36:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "497:3:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "458:42:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1771, + "id": 1779, + "nodeType": "Return", + "src": "451:49:5" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1768, + "nodeType": "ParameterList", + "parameters": [], + "src": "406:2:5" + }, + "returnParameters": { + "id": 1771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1770, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1781, + "src": "432:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "432:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "431:9:5" + }, + "scope": 1782, + "src": "389:118:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1783, + "src": "269:240:5" + } + ], + "src": "78:432:5" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.504Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/ChainlinkETHUSDTPriceOracleProxy.json b/build-v1/contracts/ChainlinkETHUSDTPriceOracleProxy.json new file mode 100644 index 0000000..d45d7f4 --- /dev/null +++ b/build-v1/contracts/ChainlinkETHUSDTPriceOracleProxy.json @@ -0,0 +1,862 @@ +{ + "contractName": "ChainlinkETHUSDTPriceOracleProxy", + "abi": [ + { + "inputs": [], + "name": "chainlink", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"chainlink\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkEthUSDTPriceOracleProxy.sol\":\"ChainlinkETHUSDTPriceOracleProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkEthUSDTPriceOracleProxy.sol\":{\"keccak256\":\"0x31064e788bd9a65876a82a982aa8c9217fa2b9b4398fc86310479c66774a0696\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b1f319120cf0071d800b5273d5ecfb514986e81abe90aa60d711980e6ba85ce9\",\"dweb:/ipfs/QmYPmRFHtEcto2XWX6KRiyWEdrLZeA7b5gEJk7N5d9pxQk\"]}},\"version\":1}", + "bytecode": "0x6080604052600080546001600160a01b03191673ee9f2375b4bdf6387aa8265dd4fb8f16512a1d4617905534801561003657600080fd5b50610187806100466000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b6040516100509190610148565b60405180910390f35b61006161010d565b6040516100509190610134565b60008060009054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156100bd57600080fd5b505afa1580156100d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100f5919061011c565b69d3c21bcecceda10000008161010757fe5b04905090565b6000546001600160a01b031681565b60006020828403121561012d578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea2646970667358221220428095be92520b1539541bd81554548f3a314c244d6918196329713135ba236164736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b6040516100509190610148565b60405180910390f35b61006161010d565b6040516100509190610134565b60008060009054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156100bd57600080fd5b505afa1580156100d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100f5919061011c565b69d3c21bcecceda10000008161010757fe5b04905090565b6000546001600160a01b031681565b60006020828403121561012d578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea2646970667358221220428095be92520b1539541bd81554548f3a314c244d6918196329713135ba236164736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "269:247:6:-:0;;;317:69;;;-1:-1:-1;;;;;;317:69:6;344:42;317:69;;;269:247;;;;;;;;;;;;;;;;", + "deployedSourceMap": "269:247:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;393:121;;;:::i;:::-;;;;;;;;;;;;;;;;317:69;;;:::i;:::-;;;;;;;;393:121;436:7;482:9;;;;;;;;;-1:-1:-1;;;;;482:9:6;-1:-1:-1;;;;;471:34:6;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;462:6;:45;;;;;;455:52;;393:121;:::o;317:69::-;;;-1:-1:-1;;;;;317:69:6;;:::o;146:263:-1:-;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;-1:-1;83:13;;223:186;-1:-1;223:186;656:222;-1:-1;;;;;1274:54;;;;487:37;;783:2;768:18;;754:124;885:222;607:37;;;1012:2;997:18;;983:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IChainlink {\n function latestAnswer() external view returns (uint256);\n}\n\n\n// for WETH-USDT(decimals=6) price convert\n\ncontract ChainlinkETHUSDTPriceOracleProxy {\n address public chainlink = 0xEe9F2375b4bdF6387aa8265dD4FB8F16512A1d46;\n\n function getPrice() external view returns (uint256) {\n return 10**24 / IChainlink(chainlink).latestAnswer();\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkEthUSDTPriceOracleProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkEthUSDTPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkETHUSDTPriceOracleProxy": [ + 1811 + ], + "IChainlink": [ + 1791 + ] + }, + "id": 1812, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1784, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:6" + }, + { + "id": 1785, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:6" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1791, + "linearizedBaseContracts": [ + 1791 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1790, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1786, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:6" + }, + "returnParameters": { + "id": 1789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1788, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1790, + "src": "211:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:6" + }, + "scope": 1791, + "src": "164:56:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1812, + "src": "137:85:6" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1811, + "linearizedBaseContracts": [ + 1811 + ], + "name": "ChainlinkETHUSDTPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1794, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1811, + "src": "317:69:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1792, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "317:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307845653946323337356234626446363338376161383236356444344642384631363531324131643436", + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "344:42:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0xEe9F2375b4bdF6387aa8265dD4FB8F16512A1d46" + }, + "visibility": "public" + }, + { + "body": { + "id": 1809, + "nodeType": "Block", + "src": "445:69:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + }, + "id": 1801, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "462:2:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3234", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "466:2:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + "src": "462:6:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1803, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "482:9:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1802, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1791, + "src": "471:10:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1791_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "471:21:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1791", + "typeString": "contract IChainlink" + } + }, + "id": 1805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1790, + "src": "471:34:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "471:36:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "462:45:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1798, + "id": 1808, + "nodeType": "Return", + "src": "455:52:6" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1810, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1795, + "nodeType": "ParameterList", + "parameters": [], + "src": "410:2:6" + }, + "returnParameters": { + "id": 1798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1797, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1810, + "src": "436:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "436:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "435:9:6" + }, + "scope": 1811, + "src": "393:121:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1812, + "src": "269:247:6" + } + ], + "src": "78:439:6" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkEthUSDTPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkETHUSDTPriceOracleProxy": [ + 1811 + ], + "IChainlink": [ + 1791 + ] + }, + "id": 1812, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1784, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:6" + }, + { + "id": 1785, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:6" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1791, + "linearizedBaseContracts": [ + 1791 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1790, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1786, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:6" + }, + "returnParameters": { + "id": 1789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1788, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1790, + "src": "211:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:6" + }, + "scope": 1791, + "src": "164:56:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1812, + "src": "137:85:6" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1811, + "linearizedBaseContracts": [ + 1811 + ], + "name": "ChainlinkETHUSDTPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1794, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1811, + "src": "317:69:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1792, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "317:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307845653946323337356234626446363338376161383236356444344642384631363531324131643436", + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "344:42:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0xEe9F2375b4bdF6387aa8265dD4FB8F16512A1d46" + }, + "visibility": "public" + }, + { + "body": { + "id": 1809, + "nodeType": "Block", + "src": "445:69:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + }, + "id": 1801, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "462:2:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3234", + "id": 1800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "466:2:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + "src": "462:6:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1803, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "482:9:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1802, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1791, + "src": "471:10:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1791_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "471:21:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1791", + "typeString": "contract IChainlink" + } + }, + "id": 1805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1790, + "src": "471:34:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "471:36:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "462:45:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1798, + "id": 1808, + "nodeType": "Return", + "src": "455:52:6" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1810, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1795, + "nodeType": "ParameterList", + "parameters": [], + "src": "410:2:6" + }, + "returnParameters": { + "id": 1798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1797, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1810, + "src": "436:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "436:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "435:9:6" + }, + "scope": 1811, + "src": "393:121:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1812, + "src": "269:247:6" + } + ], + "src": "78:439:6" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.504Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/ChainlinkLENDUSDCPriceOracleProxy.json b/build-v1/contracts/ChainlinkLENDUSDCPriceOracleProxy.json new file mode 100644 index 0000000..c36cb25 --- /dev/null +++ b/build-v1/contracts/ChainlinkLENDUSDCPriceOracleProxy.json @@ -0,0 +1,788 @@ +{ + "contractName": "ChainlinkLENDUSDCPriceOracleProxy", + "abi": [ + { + "inputs": [], + "name": "chainlink", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"chainlink\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkLENDUSDCPriceOracleProxy.sol\":\"ChainlinkLENDUSDCPriceOracleProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkLENDUSDCPriceOracleProxy.sol\":{\"keccak256\":\"0xb622fdacf388c49e0ed152771f75ddc20075490003a74b8e6b57ee29e7cea681\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://43883ff1827f5dc0b05f74eabd023f792e2dc9fb6eea0e8b01b0e737fc9a243b\",\"dweb:/ipfs/QmeF8Q9hpkbA31ahu2WeT87otTfpVofGQgsc5jvi4gPx63\"]}},\"version\":1}", + "bytecode": "0x6080604052600080546001600160a01b031916734ab81192bb75474cf203b56c36d6a13623270a6717905534801561003657600080fd5b50610173806100466000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b6040516100509190610134565b60405180910390f35b6100616100f9565b6040516100509190610120565b60008054604080516350d25bcd60e01b815290516064926001600160a01b0316916350d25bcd916004808301926020929190829003018186803b1580156100b457600080fd5b505afa1580156100c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ec9190610108565b816100f357fe5b04905090565b6000546001600160a01b031681565b600060208284031215610119578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea2646970667358221220e221107c0377e83c97f4957d4a167c2f3da11d089d46466b800fd1f2b7e5436564736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b6040516100509190610134565b60405180910390f35b6100616100f9565b6040516100509190610120565b60008054604080516350d25bcd60e01b815290516064926001600160a01b0316916350d25bcd916004808301926020929190829003018186803b1580156100b457600080fd5b505afa1580156100c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ec9190610108565b816100f357fe5b04905090565b6000546001600160a01b031681565b600060208284031215610119578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea2646970667358221220e221107c0377e83c97f4957d4a167c2f3da11d089d46466b800fd1f2b7e5436564736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "269:245:7:-:0;;;318:69;;;-1:-1:-1;;;;;;318:69:7;345:42;318:69;;;269:245;;;;;;;;;;;;;;;;", + "deployedSourceMap": "269:245:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;394:118;;;:::i;:::-;;;;;;;;;;;;;;;;318:69;;;:::i;:::-;;;;;;;;394:118;437:7;474:9;;463:36;;;-1:-1:-1;;;463:36:7;;;;502:3;;-1:-1:-1;;;;;474:9:7;;463:34;;:36;;;;;;;;;;;;;;474:9;463:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;;;456:49;;394:118;:::o;318:69::-;;;-1:-1:-1;;;;;318:69:7;;:::o;146:263:-1:-;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;-1:-1;83:13;;223:186;-1:-1;223:186;656:222;-1:-1;;;;;1274:54;;;;487:37;;783:2;768:18;;754:124;885:222;607:37;;;1012:2;997:18;;983:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IChainlink {\n function latestAnswer() external view returns (uint256);\n}\n\n\n// for LEND-USDC(decimals=6) price convert\n\ncontract ChainlinkLENDUSDCPriceOracleProxy {\n address public chainlink = 0x4aB81192BB75474Cf203B56c36D6a13623270A67;\n\n function getPrice() external view returns (uint256) {\n return IChainlink(chainlink).latestAnswer() / 100;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkLENDUSDCPriceOracleProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkLENDUSDCPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkLENDUSDCPriceOracleProxy": [ + 1838 + ], + "IChainlink": [ + 1820 + ] + }, + "id": 1839, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1813, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:7" + }, + { + "id": 1814, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:7" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1820, + "linearizedBaseContracts": [ + 1820 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1819, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1815, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:7" + }, + "returnParameters": { + "id": 1818, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1817, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1819, + "src": "211:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:7" + }, + "scope": 1820, + "src": "164:56:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1839, + "src": "137:85:7" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1838, + "linearizedBaseContracts": [ + 1838 + ], + "name": "ChainlinkLENDUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1823, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1838, + "src": "318:69:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "318:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307834614238313139324242373534373443663230334235366333364436613133363233323730413637", + "id": 1822, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "345:42:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x4aB81192BB75474Cf203B56c36D6a13623270A67" + }, + "visibility": "public" + }, + { + "body": { + "id": 1836, + "nodeType": "Block", + "src": "446:66:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1829, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "474:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1828, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1820, + "src": "463:10:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1820_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "463:21:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1820", + "typeString": "contract IChainlink" + } + }, + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1819, + "src": "463:34:7", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "463:36:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 1833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "502:3:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "463:42:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1827, + "id": 1835, + "nodeType": "Return", + "src": "456:49:7" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1837, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1824, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:7" + }, + "returnParameters": { + "id": 1827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1837, + "src": "437:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "437:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:9:7" + }, + "scope": 1838, + "src": "394:118:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1839, + "src": "269:245:7" + } + ], + "src": "78:437:7" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkLENDUSDCPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkLENDUSDCPriceOracleProxy": [ + 1838 + ], + "IChainlink": [ + 1820 + ] + }, + "id": 1839, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1813, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:7" + }, + { + "id": 1814, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:7" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1820, + "linearizedBaseContracts": [ + 1820 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1819, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1815, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:7" + }, + "returnParameters": { + "id": 1818, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1817, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1819, + "src": "211:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:7" + }, + "scope": 1820, + "src": "164:56:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1839, + "src": "137:85:7" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1838, + "linearizedBaseContracts": [ + 1838 + ], + "name": "ChainlinkLENDUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1823, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1838, + "src": "318:69:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1821, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "318:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307834614238313139324242373534373443663230334235366333364436613133363233323730413637", + "id": 1822, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "345:42:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x4aB81192BB75474Cf203B56c36D6a13623270A67" + }, + "visibility": "public" + }, + { + "body": { + "id": 1836, + "nodeType": "Block", + "src": "446:66:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1829, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1823, + "src": "474:9:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1828, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1820, + "src": "463:10:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1820_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "463:21:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1820", + "typeString": "contract IChainlink" + } + }, + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1819, + "src": "463:34:7", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "463:36:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 1833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "502:3:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "463:42:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1827, + "id": 1835, + "nodeType": "Return", + "src": "456:49:7" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1837, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1824, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:7" + }, + "returnParameters": { + "id": 1827, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1826, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1837, + "src": "437:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "437:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:9:7" + }, + "scope": 1838, + "src": "394:118:7", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1839, + "src": "269:245:7" + } + ], + "src": "78:437:7" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.505Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/ChainlinkLINKUSDCPriceOracleProxy.json b/build-v1/contracts/ChainlinkLINKUSDCPriceOracleProxy.json new file mode 100644 index 0000000..80c77d7 --- /dev/null +++ b/build-v1/contracts/ChainlinkLINKUSDCPriceOracleProxy.json @@ -0,0 +1,788 @@ +{ + "contractName": "ChainlinkLINKUSDCPriceOracleProxy", + "abi": [ + { + "inputs": [], + "name": "chainlink", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"chainlink\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkLINKUSDPriceOracleProxy.sol\":\"ChainlinkLINKUSDCPriceOracleProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkLINKUSDPriceOracleProxy.sol\":{\"keccak256\":\"0x3ebaa2e0e58be89c2f58b1c2c602b93f5481a9ddb6ab3a127f8b4dec90242131\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c10dff19155faacb4b4d13d5b35cf1d342450681e1d00f17e1ec2f85da7a9227\",\"dweb:/ipfs/QmTFtLyQ6MzEMxmbChMBu9mA41RLJdgEkN9i1i881atDa2\"]}},\"version\":1}", + "bytecode": "0x6080604052600080546001600160a01b031916732c1d072e956affc0d435cb7ac38ef18d24d9127c17905534801561003657600080fd5b50610173806100466000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b6040516100509190610134565b60405180910390f35b6100616100f9565b6040516100509190610120565b60008054604080516350d25bcd60e01b815290516064926001600160a01b0316916350d25bcd916004808301926020929190829003018186803b1580156100b457600080fd5b505afa1580156100c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ec9190610108565b816100f357fe5b04905090565b6000546001600160a01b031681565b600060208284031215610119578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea26469706673582212206339132c62e384e50511e1d1958837d962ba2f726d20b05adaffad0b5717b33064736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b6040516100509190610134565b60405180910390f35b6100616100f9565b6040516100509190610120565b60008054604080516350d25bcd60e01b815290516064926001600160a01b0316916350d25bcd916004808301926020929190829003018186803b1580156100b457600080fd5b505afa1580156100c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ec9190610108565b816100f357fe5b04905090565b6000546001600160a01b031681565b600060208284031215610119578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea26469706673582212206339132c62e384e50511e1d1958837d962ba2f726d20b05adaffad0b5717b33064736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "269:245:8:-:0;;;318:69;;;-1:-1:-1;;;;;;318:69:8;345:42;318:69;;;269:245;;;;;;;;;;;;;;;;", + "deployedSourceMap": "269:245:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;394:118;;;:::i;:::-;;;;;;;;;;;;;;;;318:69;;;:::i;:::-;;;;;;;;394:118;437:7;474:9;;463:36;;;-1:-1:-1;;;463:36:8;;;;502:3;;-1:-1:-1;;;;;474:9:8;;463:34;;:36;;;;;;;;;;;;;;474:9;463:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;;;456:49;;394:118;:::o;318:69::-;;;-1:-1:-1;;;;;318:69:8;;:::o;146:263:-1:-;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;-1:-1;83:13;;223:186;-1:-1;223:186;656:222;-1:-1;;;;;1274:54;;;;487:37;;783:2;768:18;;754:124;885:222;607:37;;;1012:2;997:18;;983:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IChainlink {\n function latestAnswer() external view returns (uint256);\n}\n\n\n// for LINK-USDC(decimals=6) price convert\n\ncontract ChainlinkLINKUSDCPriceOracleProxy {\n address public chainlink = 0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c;\n\n function getPrice() external view returns (uint256) {\n return IChainlink(chainlink).latestAnswer() / 100;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkLINKUSDPriceOracleProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkLINKUSDPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkLINKUSDCPriceOracleProxy": [ + 1865 + ], + "IChainlink": [ + 1847 + ] + }, + "id": 1866, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1840, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:8" + }, + { + "id": 1841, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:8" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1847, + "linearizedBaseContracts": [ + 1847 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1846, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1842, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:8" + }, + "returnParameters": { + "id": 1845, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1844, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1846, + "src": "211:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:8" + }, + "scope": 1847, + "src": "164:56:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1866, + "src": "137:85:8" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1865, + "linearizedBaseContracts": [ + 1865 + ], + "name": "ChainlinkLINKUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1850, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1865, + "src": "318:69:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1848, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "318:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307832633164303732653935364146464330443433354362374143333845463138643234643931323763", + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "345:42:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c" + }, + "visibility": "public" + }, + { + "body": { + "id": 1863, + "nodeType": "Block", + "src": "446:66:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1856, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1850, + "src": "474:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1855, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "463:10:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1847_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "463:21:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1847", + "typeString": "contract IChainlink" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "463:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "463:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "502:3:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "463:42:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1854, + "id": 1862, + "nodeType": "Return", + "src": "456:49:8" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1864, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1851, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:8" + }, + "returnParameters": { + "id": 1854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1853, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1864, + "src": "437:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "437:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:9:8" + }, + "scope": 1865, + "src": "394:118:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1866, + "src": "269:245:8" + } + ], + "src": "78:437:8" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkLINKUSDPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkLINKUSDCPriceOracleProxy": [ + 1865 + ], + "IChainlink": [ + 1847 + ] + }, + "id": 1866, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1840, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:8" + }, + { + "id": 1841, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:8" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1847, + "linearizedBaseContracts": [ + 1847 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1846, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1842, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:8" + }, + "returnParameters": { + "id": 1845, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1844, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1846, + "src": "211:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:8" + }, + "scope": 1847, + "src": "164:56:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1866, + "src": "137:85:8" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1865, + "linearizedBaseContracts": [ + 1865 + ], + "name": "ChainlinkLINKUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1850, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1865, + "src": "318:69:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1848, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "318:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307832633164303732653935364146464330443433354362374143333845463138643234643931323763", + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "345:42:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c" + }, + "visibility": "public" + }, + { + "body": { + "id": 1863, + "nodeType": "Block", + "src": "446:66:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1856, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1850, + "src": "474:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1855, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "463:10:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1847_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "463:21:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1847", + "typeString": "contract IChainlink" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "463:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "463:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "502:3:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "463:42:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1854, + "id": 1862, + "nodeType": "Return", + "src": "456:49:8" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1864, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1851, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:8" + }, + "returnParameters": { + "id": 1854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1853, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1864, + "src": "437:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "437:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:9:8" + }, + "scope": 1865, + "src": "394:118:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1866, + "src": "269:245:8" + } + ], + "src": "78:437:8" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.505Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/ChainlinkSNXUSDCPriceOracleProxy.json b/build-v1/contracts/ChainlinkSNXUSDCPriceOracleProxy.json new file mode 100644 index 0000000..d83063a --- /dev/null +++ b/build-v1/contracts/ChainlinkSNXUSDCPriceOracleProxy.json @@ -0,0 +1,788 @@ +{ + "contractName": "ChainlinkSNXUSDCPriceOracleProxy", + "abi": [ + { + "inputs": [], + "name": "chainlink", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"chainlink\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkSNXUSDPriceOracleProxy.sol\":\"ChainlinkSNXUSDCPriceOracleProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkSNXUSDPriceOracleProxy.sol\":{\"keccak256\":\"0x1cbd26db6ab1f8ad316681662704aedb54caaf3ce26031ef558ee3db6362ffee\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b8baf436ad553f5fb53537279c279e3de774fe134497d08a989313f6d0aec772\",\"dweb:/ipfs/QmSSrR1PfVDmsMZPYU7azYusiFc45L9DHub73PZWGtoTGd\"]}},\"version\":1}", + "bytecode": "0x6080604052600080546001600160a01b03191673dc3ea94cd0ac27d9a86c180091e7f78c683d369917905534801561003657600080fd5b50610173806100466000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b6040516100509190610134565b60405180910390f35b6100616100f9565b6040516100509190610120565b60008054604080516350d25bcd60e01b815290516064926001600160a01b0316916350d25bcd916004808301926020929190829003018186803b1580156100b457600080fd5b505afa1580156100c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ec9190610108565b816100f357fe5b04905090565b6000546001600160a01b031681565b600060208284031215610119578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea2646970667358221220a43884883f019b4a79923b7b2d333ad3677db886931fbbe976b55732e82c7c0964736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b6040516100509190610134565b60405180910390f35b6100616100f9565b6040516100509190610120565b60008054604080516350d25bcd60e01b815290516064926001600160a01b0316916350d25bcd916004808301926020929190829003018186803b1580156100b457600080fd5b505afa1580156100c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ec9190610108565b816100f357fe5b04905090565b6000546001600160a01b031681565b600060208284031215610119578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea2646970667358221220a43884883f019b4a79923b7b2d333ad3677db886931fbbe976b55732e82c7c0964736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "268:244:9:-:0;;;316:69;;;-1:-1:-1;;;;;;316:69:9;343:42;316:69;;;268:244;;;;;;;;;;;;;;;;", + "deployedSourceMap": "268:244:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;392:118;;;:::i;:::-;;;;;;;;;;;;;;;;316:69;;;:::i;:::-;;;;;;;;392:118;435:7;472:9;;461:36;;;-1:-1:-1;;;461:36:9;;;;500:3;;-1:-1:-1;;;;;472:9:9;;461:34;;:36;;;;;;;;;;;;;;472:9;461:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;;;454:49;;392:118;:::o;316:69::-;;;-1:-1:-1;;;;;316:69:9;;:::o;146:263:-1:-;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;-1:-1;83:13;;223:186;-1:-1;223:186;656:222;-1:-1;;;;;1274:54;;;;487:37;;783:2;768:18;;754:124;885:222;607:37;;;1012:2;997:18;;983:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IChainlink {\n function latestAnswer() external view returns (uint256);\n}\n\n\n// for SNX-USDC(decimals=6) price convert\n\ncontract ChainlinkSNXUSDCPriceOracleProxy {\n address public chainlink = 0xDC3EA94CD0AC27d9A86C180091e7f78C683d3699;\n\n function getPrice() external view returns (uint256) {\n return IChainlink(chainlink).latestAnswer() / 100;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkSNXUSDPriceOracleProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkSNXUSDPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkSNXUSDCPriceOracleProxy": [ + 1892 + ], + "IChainlink": [ + 1874 + ] + }, + "id": 1893, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1867, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:9" + }, + { + "id": 1868, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:9" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1874, + "linearizedBaseContracts": [ + 1874 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1873, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1869, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:9" + }, + "returnParameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1873, + "src": "211:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:9" + }, + "scope": 1874, + "src": "164:56:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1893, + "src": "137:85:9" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1892, + "linearizedBaseContracts": [ + 1892 + ], + "name": "ChainlinkSNXUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1877, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1892, + "src": "316:69:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "316:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307844433345413934434430414332376439413836433138303039316537663738433638336433363939", + "id": 1876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "343:42:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0xDC3EA94CD0AC27d9A86C180091e7f78C683d3699" + }, + "visibility": "public" + }, + { + "body": { + "id": 1890, + "nodeType": "Block", + "src": "444:66:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1883, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "472:9:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1882, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1874, + "src": "461:10:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1874_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "461:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1874", + "typeString": "contract IChainlink" + } + }, + "id": 1885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1873, + "src": "461:34:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "461:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "500:3:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "461:42:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1881, + "id": 1889, + "nodeType": "Return", + "src": "454:49:9" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1891, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1878, + "nodeType": "ParameterList", + "parameters": [], + "src": "409:2:9" + }, + "returnParameters": { + "id": 1881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1891, + "src": "435:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "435:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "434:9:9" + }, + "scope": 1892, + "src": "392:118:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1893, + "src": "268:244:9" + } + ], + "src": "78:435:9" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkSNXUSDPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkSNXUSDCPriceOracleProxy": [ + 1892 + ], + "IChainlink": [ + 1874 + ] + }, + "id": 1893, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1867, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:9" + }, + { + "id": 1868, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:9" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1874, + "linearizedBaseContracts": [ + 1874 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1873, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1869, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:9" + }, + "returnParameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1873, + "src": "211:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:9" + }, + "scope": 1874, + "src": "164:56:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1893, + "src": "137:85:9" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1892, + "linearizedBaseContracts": [ + 1892 + ], + "name": "ChainlinkSNXUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1877, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1892, + "src": "316:69:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "316:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307844433345413934434430414332376439413836433138303039316537663738433638336433363939", + "id": 1876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "343:42:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0xDC3EA94CD0AC27d9A86C180091e7f78C683d3699" + }, + "visibility": "public" + }, + { + "body": { + "id": 1890, + "nodeType": "Block", + "src": "444:66:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1883, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "472:9:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1882, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1874, + "src": "461:10:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1874_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "461:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1874", + "typeString": "contract IChainlink" + } + }, + "id": 1885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1873, + "src": "461:34:9", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "461:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313030", + "id": 1887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "500:3:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "461:42:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1881, + "id": 1889, + "nodeType": "Return", + "src": "454:49:9" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1891, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1878, + "nodeType": "ParameterList", + "parameters": [], + "src": "409:2:9" + }, + "returnParameters": { + "id": 1881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1891, + "src": "435:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "435:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "434:9:9" + }, + "scope": 1892, + "src": "392:118:9", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1893, + "src": "268:244:9" + } + ], + "src": "78:435:9" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.506Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/ChainlinkWBTCUSDCPriceOracleProxy.json b/build-v1/contracts/ChainlinkWBTCUSDCPriceOracleProxy.json new file mode 100644 index 0000000..4668d37 --- /dev/null +++ b/build-v1/contracts/ChainlinkWBTCUSDCPriceOracleProxy.json @@ -0,0 +1,896 @@ +{ + "contractName": "ChainlinkWBTCUSDCPriceOracleProxy", + "abi": [ + { + "inputs": [], + "name": "chainlink", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"chainlink\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkWBTCUSDCPriceOracleProxy.sol\":\"ChainlinkWBTCUSDCPriceOracleProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkWBTCUSDCPriceOracleProxy.sol\":{\"keccak256\":\"0x4cf5f2c16709da7d57fd12d78905b2d05fb5214435f457775f7995dfad5b4b4b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://94e2acb2295b9c87c61334eb2ea3047661deca6832a3607478222a5dcac23f02\",\"dweb:/ipfs/QmQcFeei8XdiVPHCHRhQLRpBr5zVYRT8ZyhMJtgVKUHitw\"]}},\"version\":1}", + "bytecode": "0x6080604052600080546001600160a01b03191673f4030086522a5beea4988f8ca5b36dbc97bee88c17905534801561003657600080fd5b5061017a806100466000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b604051610050919061013b565b60405180910390f35b610061610100565b6040516100509190610127565b60008060009054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156100bd57600080fd5b505afa1580156100d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100f5919061010f565b6305f5e10002905090565b6000546001600160a01b031681565b600060208284031215610120578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea2646970667358221220d469809a49a9725cd835c28c7285647482061285333dd44129abfdfd87f51d7b64736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806398d5fdca1461003b5780639c3feeb714610059575b600080fd5b61004361006e565b604051610050919061013b565b60405180910390f35b610061610100565b6040516100509190610127565b60008060009054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156100bd57600080fd5b505afa1580156100d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100f5919061010f565b6305f5e10002905090565b6000546001600160a01b031681565b600060208284031215610120578081fd5b5051919050565b6001600160a01b0391909116815260200190565b9081526020019056fea2646970667358221220d469809a49a9725cd835c28c7285647482061285333dd44129abfdfd87f51d7b64736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "281:249:10:-:0;;;330:69;;;-1:-1:-1;;;;;;330:69:10;357:42;330:69;;;281:249;;;;;;;;;;;;;;;;", + "deployedSourceMap": "281:249:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;406:122;;;:::i;:::-;;;;;;;;;;;;;;;;330:69;;;:::i;:::-;;;;;;;;406:122;449:7;486:9;;;;;;;;;-1:-1:-1;;;;;486:9:10;-1:-1:-1;;;;;475:34:10;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;515:5;475:46;468:53;;406:122;:::o;330:69::-;;;-1:-1:-1;;;;;330:69:10;;:::o;146:263:-1:-;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;-1:-1;83:13;;223:186;-1:-1;223:186;656:222;-1:-1;;;;;1274:54;;;;487:37;;783:2;768:18;;754:124;885:222;607:37;;;1012:2;997:18;;983:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IChainlink {\n function latestAnswer() external view returns (uint256);\n}\n\n\n// for WBTC(decimals=8)-USDC(decimals=6) price convert\n\ncontract ChainlinkWBTCUSDCPriceOracleProxy {\n address public chainlink = 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c;\n\n function getPrice() external view returns (uint256) {\n return IChainlink(chainlink).latestAnswer() * (10**8);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkWBTCUSDCPriceOracleProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkWBTCUSDCPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkWBTCUSDCPriceOracleProxy": [ + 1922 + ], + "IChainlink": [ + 1901 + ] + }, + "id": 1923, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1894, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:10" + }, + { + "id": 1895, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:10" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1901, + "linearizedBaseContracts": [ + 1901 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1900, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1896, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:10" + }, + "returnParameters": { + "id": 1899, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1898, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1900, + "src": "211:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1897, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:10" + }, + "scope": 1901, + "src": "164:56:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1923, + "src": "137:85:10" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1922, + "linearizedBaseContracts": [ + 1922 + ], + "name": "ChainlinkWBTCUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1904, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1922, + "src": "330:69:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "330:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307846343033303038363532326135624545613439383846386341354233366462433937426545383863", + "id": 1903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "357:42:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c" + }, + "visibility": "public" + }, + { + "body": { + "id": 1920, + "nodeType": "Block", + "src": "458:70:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1910, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1904, + "src": "486:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1909, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "475:10:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1901_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "475:21:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1901", + "typeString": "contract IChainlink" + } + }, + "id": 1912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "475:34:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "475:36:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "515:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "38", + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "519:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "515:5:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + } + ], + "id": 1917, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "514:7:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "475:46:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1908, + "id": 1919, + "nodeType": "Return", + "src": "468:53:10" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1921, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1905, + "nodeType": "ParameterList", + "parameters": [], + "src": "423:2:10" + }, + "returnParameters": { + "id": 1908, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1907, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1921, + "src": "449:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "449:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "448:9:10" + }, + "scope": 1922, + "src": "406:122:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1923, + "src": "281:249:10" + } + ], + "src": "78:453:10" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkWBTCUSDCPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkWBTCUSDCPriceOracleProxy": [ + 1922 + ], + "IChainlink": [ + 1901 + ] + }, + "id": 1923, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1894, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:10" + }, + { + "id": 1895, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:10" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1901, + "linearizedBaseContracts": [ + 1901 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1900, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1896, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:10" + }, + "returnParameters": { + "id": 1899, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1898, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1900, + "src": "211:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1897, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:10" + }, + "scope": 1901, + "src": "164:56:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1923, + "src": "137:85:10" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1922, + "linearizedBaseContracts": [ + 1922 + ], + "name": "ChainlinkWBTCUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9c3feeb7", + "id": 1904, + "mutability": "mutable", + "name": "chainlink", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1922, + "src": "330:69:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "330:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307846343033303038363532326135624545613439383846386341354233366462433937426545383863", + "id": 1903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "357:42:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c" + }, + "visibility": "public" + }, + { + "body": { + "id": 1920, + "nodeType": "Block", + "src": "458:70:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1910, + "name": "chainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1904, + "src": "486:9:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1909, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1901, + "src": "475:10:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1901_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "475:21:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1901", + "typeString": "contract IChainlink" + } + }, + "id": 1912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "475:34:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "475:36:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "515:2:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "38", + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "519:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "515:5:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + } + ], + "id": 1917, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "514:7:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "475:46:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1908, + "id": 1919, + "nodeType": "Return", + "src": "468:53:10" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1921, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1905, + "nodeType": "ParameterList", + "parameters": [], + "src": "423:2:10" + }, + "returnParameters": { + "id": 1908, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1907, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1921, + "src": "449:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "449:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "448:9:10" + }, + "scope": 1922, + "src": "406:122:10", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1923, + "src": "281:249:10" + } + ], + "src": "78:453:10" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.506Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/ChainlinkYFIUSDCPriceOracleProxy.json b/build-v1/contracts/ChainlinkYFIUSDCPriceOracleProxy.json new file mode 100644 index 0000000..b0c8884 --- /dev/null +++ b/build-v1/contracts/ChainlinkYFIUSDCPriceOracleProxy.json @@ -0,0 +1,1573 @@ +{ + "contractName": "ChainlinkYFIUSDCPriceOracleProxy", + "abi": [ + { + "inputs": [], + "name": "EthUsd", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "yfiEth", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EthUsd\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"yfiEth\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkYFIUSDCPriceOracleProxy.sol\":\"ChainlinkYFIUSDCPriceOracleProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkYFIUSDCPriceOracleProxy.sol\":{\"keccak256\":\"0x968af1e723a96686c3835fe68dbdbe21684935743b1639a9342aa5021c2e0c88\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e358426ab8ef57cc2647d8a7d40a876e9e8f81fc69b16b5a298659024894a808\",\"dweb:/ipfs/QmQQkhg9rajRi9Xg6rwbMV8swyC8kjT2ukb34EL2tMr3EG\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]}},\"version\":1}", + "bytecode": "0x6080604052600080546001600160a01b0319908116737c5d4f8345e66f68099581db340cd65b078c41f41790915560018054909116735f4ec3df9cbd43714fe2740f5e3616155c5b841917905534801561005857600080fd5b5061030c806100686000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806328737ae51461004657806398d5fdca14610064578063f57689d514610079575b600080fd5b61004e610081565b60405161005b919061026e565b60405180910390f35b61006c610090565b60405161005b91906102cd565b61004e6101c9565b6000546001600160a01b031681565b60008054604080516350d25bcd60e01b8152905183926001600160a01b0316916350d25bcd916004808301926020929190829003018186803b1580156100d557600080fd5b505afa1580156100e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061010d9190610256565b90506000600160009054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561015f57600080fd5b505afa158015610173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101979190610256565b90506101c268056bc75e2d631000006101b6848463ffffffff6101d816565b9063ffffffff61022416565b9250505090565b6001546001600160a01b031681565b6000826101e75750600061021e565b828202828482816101f457fe5b041461021b5760405162461bcd60e51b8152600401610212906102aa565b60405180910390fd5b90505b92915050565b60008082116102455760405162461bcd60e51b815260040161021290610282565b81838161024e57fe5b049392505050565b600060208284031215610267578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b9081526020019056fea2646970667358221220ba7fbf63c00d658b8e32971f1efb1a92bbde656ec5df1ec5e928c1fe6330c26f64736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806328737ae51461004657806398d5fdca14610064578063f57689d514610079575b600080fd5b61004e610081565b60405161005b919061026e565b60405180910390f35b61006c610090565b60405161005b91906102cd565b61004e6101c9565b6000546001600160a01b031681565b60008054604080516350d25bcd60e01b8152905183926001600160a01b0316916350d25bcd916004808301926020929190829003018186803b1580156100d557600080fd5b505afa1580156100e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061010d9190610256565b90506000600160009054906101000a90046001600160a01b03166001600160a01b03166350d25bcd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561015f57600080fd5b505afa158015610173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101979190610256565b90506101c268056bc75e2d631000006101b6848463ffffffff6101d816565b9063ffffffff61022416565b9250505090565b6001546001600160a01b031681565b6000826101e75750600061021e565b828202828482816101f457fe5b041461021b5760405162461bcd60e51b8152600401610212906102aa565b60405180910390fd5b90505b92915050565b60008082116102455760405162461bcd60e51b815260040161021290610282565b81838161024e57fe5b049392505050565b600060208284031215610267578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b9081526020019056fea2646970667358221220ba7fbf63c00d658b8e32971f1efb1a92bbde656ec5df1ec5e928c1fe6330c26f64736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "315:474:11:-:0;;;396:66;;;-1:-1:-1;;;;;;396:66:11;;;420:42;396:66;;;;;468;;;;;492:42;468:66;;;315:474;;;;;;;;;;;;;;;;", + "deployedSourceMap": "315:474:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;396:66;;;:::i;:::-;;;;;;;;;;;;;;;;541:246;;;:::i;:::-;;;;;;;;468:66;;;:::i;396:::-;;;-1:-1:-1;;;;;396:66:11;;:::o;541:246::-;584:7;636:6;;625:33;;;-1:-1:-1;;;625:33:11;;;;584:7;;-1:-1:-1;;;;;636:6:11;;625:31;;:33;;;;;;;;;;;;;;636:6;625:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;603:55;;668:19;701:6;;;;;;;;;-1:-1:-1;;;;;701:6:11;-1:-1:-1;;;;;690:31:11;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:55;-1:-1:-1;740:40:11;773:6;740:28;:11;668:55;740:28;:15;:28;:::i;:::-;:32;:40;:32;:40;:::i;:::-;733:47;;;;541:246;:::o;468:66::-;;;-1:-1:-1;;;;;468:66:11;;:::o;281:217:41:-;339:7;362:6;358:45;;-1:-1:-1;391:1:41;384:8;;358:45;425:5;;;429:1;425;:5;:1;448:5;;;;;:10;440:32;;;;-1:-1:-1;;;440:32:41;;;;;;;;;;;;;;;;;490:1;-1:-1:-1;281:217:41;;;;;:::o;504:138::-;562:7;593:1;589;:5;581:32;;;;-1:-1:-1;;;581:32:41;;;;;;;;;634:1;630;:5;;;;;;;504:138;-1:-1:-1;;;504:138:41:o;146:263:-1:-;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;-1:-1;83:13;;223:186;-1:-1;223:186;1296:222;-1:-1;;;;;2932:54;;;;487:37;;1423:2;1408:18;;1394:124;1525:416;1725:2;1739:47;;;761:2;1710:18;;;2704:19;-1:-1;;;2744:14;;;777:37;833:12;;;1696:245;1948:416;2148:2;2162:47;;;1084:1;2133:18;;;2704:19;-1:-1;;;2744:14;;;1099:32;1150:12;;;2119:245;2371:222;1247:37;;;2498:2;2483:18;;2469:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {SafeMath} from \"../lib/SafeMath.sol\";\n\n\ninterface IChainlink {\n function latestAnswer() external view returns (uint256);\n}\n\n\n// for YFI-USDC(decimals=6) price convert\n\ncontract ChainlinkYFIUSDCPriceOracleProxy {\n using SafeMath for uint256;\n\n address public yfiEth = 0x7c5d4F8345e66f68099581Db340cd65B078C41f4;\n address public EthUsd = 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419;\n\n function getPrice() external view returns (uint256) {\n uint256 yfiEthPrice = IChainlink(yfiEth).latestAnswer();\n uint256 EthUsdPrice = IChainlink(EthUsd).latestAnswer();\n return yfiEthPrice.mul(EthUsdPrice).div(10**20);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkYFIUSDCPriceOracleProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkYFIUSDCPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkYFIUSDCPriceOracleProxy": [ + 1975 + ], + "IChainlink": [ + 1933 + ] + }, + "id": 1976, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1924, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:11" + }, + { + "id": 1925, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:11" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 1927, + "nodeType": "ImportDirective", + "scope": 1976, + "sourceUnit": 11624, + "src": "136:45:11", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1926, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:11", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1933, + "linearizedBaseContracts": [ + 1933 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1932, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1928, + "nodeType": "ParameterList", + "parameters": [], + "src": "232:2:11" + }, + "returnParameters": { + "id": 1931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1930, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1932, + "src": "258:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1929, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "258:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "257:9:11" + }, + "scope": 1933, + "src": "211:56:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1976, + "src": "184:85:11" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1975, + "linearizedBaseContracts": [ + 1975 + ], + "name": "ChainlinkYFIUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1936, + "libraryName": { + "contractScope": null, + "id": 1934, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "369:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "363:27:11", + "typeName": { + "id": 1935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "382:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "28737ae5", + "id": 1939, + "mutability": "mutable", + "name": "yfiEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1975, + "src": "396:66:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1937, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "396:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307837633564344638333435653636663638303939353831446233343063643635423037384334316634", + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "420:42:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x7c5d4F8345e66f68099581Db340cd65B078C41f4" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f57689d5", + "id": 1942, + "mutability": "mutable", + "name": "EthUsd", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1975, + "src": "468:66:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1940, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "468:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307835663465433344663963626434333731344645323734306635453336313631353563356238343139", + "id": 1941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "492:42:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" + }, + "visibility": "public" + }, + { + "body": { + "id": 1973, + "nodeType": "Block", + "src": "593:194:11", + "statements": [ + { + "assignments": [ + 1948 + ], + "declarations": [ + { + "constant": false, + "id": 1948, + "mutability": "mutable", + "name": "yfiEthPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1973, + "src": "603:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "603:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1950, + "name": "yfiEth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "636:6:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1949, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1933, + "src": "625:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1933_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "625:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1933", + "typeString": "contract IChainlink" + } + }, + "id": 1952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1932, + "src": "625:31:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "625:33:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "603:55:11" + }, + { + "assignments": [ + 1956 + ], + "declarations": [ + { + "constant": false, + "id": 1956, + "mutability": "mutable", + "name": "EthUsdPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1973, + "src": "668:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "668:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1962, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1958, + "name": "EthUsd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "701:6:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1957, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1933, + "src": "690:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1933_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "690:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1933", + "typeString": "contract IChainlink" + } + }, + "id": 1960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1932, + "src": "690:31:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "690:33:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "668:55:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000_by_1", + "typeString": "int_const 100000000000000000000" + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "773:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "777:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "773:6:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000_by_1", + "typeString": "int_const 100000000000000000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_100000000000000000000_by_1", + "typeString": "int_const 100000000000000000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1965, + "name": "EthUsdPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "756:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1963, + "name": "yfiEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1948, + "src": "740:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "740:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "740:28:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "740:32:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "740:40:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1946, + "id": 1972, + "nodeType": "Return", + "src": "733:47:11" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1974, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1943, + "nodeType": "ParameterList", + "parameters": [], + "src": "558:2:11" + }, + "returnParameters": { + "id": 1946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1945, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1974, + "src": "584:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1944, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "584:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "583:9:11" + }, + "scope": 1975, + "src": "541:246:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1976, + "src": "315:474:11" + } + ], + "src": "78:712:11" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkYFIUSDCPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkYFIUSDCPriceOracleProxy": [ + 1975 + ], + "IChainlink": [ + 1933 + ] + }, + "id": 1976, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1924, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:11" + }, + { + "id": 1925, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:11" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 1927, + "nodeType": "ImportDirective", + "scope": 1976, + "sourceUnit": 11624, + "src": "136:45:11", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1926, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:11", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1933, + "linearizedBaseContracts": [ + 1933 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1932, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1928, + "nodeType": "ParameterList", + "parameters": [], + "src": "232:2:11" + }, + "returnParameters": { + "id": 1931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1930, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1932, + "src": "258:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1929, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "258:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "257:9:11" + }, + "scope": 1933, + "src": "211:56:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1976, + "src": "184:85:11" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1975, + "linearizedBaseContracts": [ + 1975 + ], + "name": "ChainlinkYFIUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1936, + "libraryName": { + "contractScope": null, + "id": 1934, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "369:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "363:27:11", + "typeName": { + "id": 1935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "382:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "28737ae5", + "id": 1939, + "mutability": "mutable", + "name": "yfiEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1975, + "src": "396:66:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1937, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "396:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307837633564344638333435653636663638303939353831446233343063643635423037384334316634", + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "420:42:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x7c5d4F8345e66f68099581Db340cd65B078C41f4" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f57689d5", + "id": 1942, + "mutability": "mutable", + "name": "EthUsd", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1975, + "src": "468:66:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1940, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "468:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307835663465433344663963626434333731344645323734306635453336313631353563356238343139", + "id": 1941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "492:42:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" + }, + "visibility": "public" + }, + { + "body": { + "id": 1973, + "nodeType": "Block", + "src": "593:194:11", + "statements": [ + { + "assignments": [ + 1948 + ], + "declarations": [ + { + "constant": false, + "id": 1948, + "mutability": "mutable", + "name": "yfiEthPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1973, + "src": "603:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "603:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1950, + "name": "yfiEth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "636:6:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1949, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1933, + "src": "625:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1933_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "625:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1933", + "typeString": "contract IChainlink" + } + }, + "id": 1952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1932, + "src": "625:31:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "625:33:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "603:55:11" + }, + { + "assignments": [ + 1956 + ], + "declarations": [ + { + "constant": false, + "id": 1956, + "mutability": "mutable", + "name": "EthUsdPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1973, + "src": "668:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "668:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1962, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1958, + "name": "EthUsd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "701:6:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1957, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1933, + "src": "690:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1933_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "690:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1933", + "typeString": "contract IChainlink" + } + }, + "id": 1960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1932, + "src": "690:31:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "690:33:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "668:55:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000_by_1", + "typeString": "int_const 100000000000000000000" + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "773:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "777:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "773:6:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000_by_1", + "typeString": "int_const 100000000000000000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_100000000000000000000_by_1", + "typeString": "int_const 100000000000000000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1965, + "name": "EthUsdPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "756:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1963, + "name": "yfiEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1948, + "src": "740:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "740:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "740:28:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "740:32:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "740:40:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1946, + "id": 1972, + "nodeType": "Return", + "src": "733:47:11" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1974, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1943, + "nodeType": "ParameterList", + "parameters": [], + "src": "558:2:11" + }, + "returnParameters": { + "id": 1946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1945, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1974, + "src": "584:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1944, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "584:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "583:9:11" + }, + "scope": 1975, + "src": "541:246:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1976, + "src": "315:474:11" + } + ], + "src": "78:712:11" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.507Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/CloneFactory.json b/build-v1/contracts/CloneFactory.json new file mode 100644 index 0000000..5d37b04 --- /dev/null +++ b/build-v1/contracts/CloneFactory.json @@ -0,0 +1,1281 @@ +{ + "contractName": "CloneFactory", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "prototype", + "type": "address" + } + ], + "name": "clone", + "outputs": [ + { + "internalType": "address", + "name": "proxy", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"prototype\",\"type\":\"address\"}],\"name\":\"clone\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"proxy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol\":\"CloneFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol\":{\"keccak256\":\"0x343dc91fe46604d9dc7583e4b969d7dbd2bcba68166bef4e608a85145e7735cc\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2751f30bf5bc54890d68fd6e609dea0cc5ddc08aaa928829bffda71065e66715\",\"dweb:/ipfs/QmdtAmwxpdx8VAHFKkrEPazLJmpWj1dSv2Krdd7F3uauH9\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610118806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80638124b78e14602d575b600080fd5b603c603836600460a2565b6050565b6040516047919060ce565b60405180910390f35b6000808260601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f0949350505050565b60006020828403121560b2578081fd5b81356001600160a01b038116811460c7578182fd5b9392505050565b6001600160a01b039190911681526020019056fea264697066735822122083d2cc9c947b08921b671bd416b961f22b420b13338e99f5519208d7388580a564736f6c63430006090033", + "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c80638124b78e14602d575b600080fd5b603c603836600460a2565b6050565b6040516047919060ce565b60405180910390f35b6000808260601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f0949350505050565b60006020828403121560b2578081fd5b81356001600160a01b038116811460c7578182fd5b9392505050565b6001600160a01b039190911681526020019056fea264697066735822122083d2cc9c947b08921b671bd416b961f22b420b13338e99f5519208d7388580a564736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "408:607:12:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "408:607:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;453:560;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;514:13;539:19;569:9;561:18;;539:40;;631:4;625:11;-1:-1:-1;;;656:5:12;649:81;768:11;761:4;754:5;750:16;743:37;-1:-1:-1;;;828:4:12;821:5;817:16;793:138;970:4;963:5;960:1;953:22;944:31;453:560;-1:-1:-1;;;;453:560:12:o;142:241:-1:-;;246:2;234:9;225:7;221:23;217:32;214:2;;;-1:-1;;252:12;214:2;72:20;;-1:-1;;;;;899:54;;1024:35;;1014:2;;-1:-1;;1063:12;1014:2;304:63;208:175;-1:-1;;;208:175;510:222;-1:-1;;;;;899:54;;;;461:37;;637:2;622:18;;608:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\ninterface ICloneFactory {\n function clone(address prototype) external returns (address proxy);\n}\n\n// introduction of proxy mode design: https://docs.openzeppelin.com/upgrades/2.8/\n// minimum implementation of transparent proxy: https://eips.ethereum.org/EIPS/eip-1167\n\ncontract CloneFactory is ICloneFactory {\n function clone(address prototype) external override returns (address proxy) {\n bytes20 targetBytes = bytes20(prototype);\n assembly {\n let clone := mload(0x40)\n mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)\n mstore(add(clone, 0x14), targetBytes)\n mstore(\n add(clone, 0x28),\n 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000\n )\n proxy := create(0, clone, 0x37)\n }\n return proxy;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol", + "exportedSymbols": { + "CloneFactory": [ + 2008 + ], + "ICloneFactory": [ + 1986 + ] + }, + "id": 2009, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1977, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:12" + }, + { + "id": 1978, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:12" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1986, + "linearizedBaseContracts": [ + 1986 + ], + "name": "ICloneFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "8124b78e", + "id": 1985, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "clone", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1980, + "mutability": "mutable", + "name": "prototype", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1985, + "src": "181:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1979, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "181:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "180:19:12" + }, + "returnParameters": { + "id": 1984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1983, + "mutability": "mutable", + "name": "proxy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1985, + "src": "218:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "218:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "217:15:12" + }, + "scope": 1986, + "src": "166:67:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2009, + "src": "136:99:12" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1987, + "name": "ICloneFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1986, + "src": "433:13:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICloneFactory_$1986", + "typeString": "contract ICloneFactory" + } + }, + "id": 1988, + "nodeType": "InheritanceSpecifier", + "src": "433:13:12" + } + ], + "contractDependencies": [ + 1986 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2008, + "linearizedBaseContracts": [ + 2008, + 1986 + ], + "name": "CloneFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 1985 + ], + "body": { + "id": 2006, + "nodeType": "Block", + "src": "529:484:12", + "statements": [ + { + "assignments": [ + 1997 + ], + "declarations": [ + { + "constant": false, + "id": 1997, + "mutability": "mutable", + "name": "targetBytes", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2006, + "src": "539:19:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + }, + "typeName": { + "id": 1996, + "name": "bytes20", + "nodeType": "ElementaryTypeName", + "src": "539:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2002, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2000, + "name": "prototype", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1990, + "src": "569:9:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "561:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes20_$", + "typeString": "type(bytes20)" + }, + "typeName": { + "id": 1998, + "name": "bytes20", + "nodeType": "ElementaryTypeName", + "src": "561:7:12", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "561:18:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "539:40:12" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "598:387:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "612:24:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:4:12", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "625:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "625:11:12" + }, + "variables": [ + { + "name": "clone", + "nodeType": "YulTypedName", + "src": "616:5:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "656:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:66:12", + "type": "", + "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "649:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "649:81:12" + }, + "nodeType": "YulExpressionStatement", + "src": "649:81:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "754:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "761:4:12", + "type": "", + "value": "0x14" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "750:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "750:16:12" + }, + { + "name": "targetBytes", + "nodeType": "YulIdentifier", + "src": "768:11:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "743:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "743:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "743:37:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "821:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "828:4:12", + "type": "", + "value": "0x28" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "817:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "817:16:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "851:66:12", + "type": "", + "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "793:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "793:138:12" + }, + "nodeType": "YulExpressionStatement", + "src": "793:138:12" + }, + { + "nodeType": "YulAssignment", + "src": "944:31:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "960:1:12", + "type": "", + "value": "0" + }, + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "963:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "970:4:12", + "type": "", + "value": "0x37" + } + ], + "functionName": { + "name": "create", + "nodeType": "YulIdentifier", + "src": "953:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "953:22:12" + }, + "variableNames": [ + { + "name": "proxy", + "nodeType": "YulIdentifier", + "src": "944:5:12" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1994, + "isOffset": false, + "isSlot": false, + "src": "944:5:12", + "valueSize": 1 + }, + { + "declaration": 1997, + "isOffset": false, + "isSlot": false, + "src": "768:11:12", + "valueSize": 1 + } + ], + "id": 2003, + "nodeType": "InlineAssembly", + "src": "589:396:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 2004, + "name": "proxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1994, + "src": "1001:5:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1995, + "id": 2005, + "nodeType": "Return", + "src": "994:12:12" + } + ] + }, + "documentation": null, + "functionSelector": "8124b78e", + "id": 2007, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clone", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1992, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "496:8:12" + }, + "parameters": { + "id": 1991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1990, + "mutability": "mutable", + "name": "prototype", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2007, + "src": "468:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1989, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "468:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "467:19:12" + }, + "returnParameters": { + "id": 1995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1994, + "mutability": "mutable", + "name": "proxy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2007, + "src": "514:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "514:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "513:15:12" + }, + "scope": 2008, + "src": "453:560:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2009, + "src": "408:607:12" + } + ], + "src": "78:938:12" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol", + "exportedSymbols": { + "CloneFactory": [ + 2008 + ], + "ICloneFactory": [ + 1986 + ] + }, + "id": 2009, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1977, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:12" + }, + { + "id": 1978, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:12" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1986, + "linearizedBaseContracts": [ + 1986 + ], + "name": "ICloneFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "8124b78e", + "id": 1985, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "clone", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1980, + "mutability": "mutable", + "name": "prototype", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1985, + "src": "181:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1979, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "181:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "180:19:12" + }, + "returnParameters": { + "id": 1984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1983, + "mutability": "mutable", + "name": "proxy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1985, + "src": "218:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "218:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "217:15:12" + }, + "scope": 1986, + "src": "166:67:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2009, + "src": "136:99:12" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1987, + "name": "ICloneFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1986, + "src": "433:13:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICloneFactory_$1986", + "typeString": "contract ICloneFactory" + } + }, + "id": 1988, + "nodeType": "InheritanceSpecifier", + "src": "433:13:12" + } + ], + "contractDependencies": [ + 1986 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2008, + "linearizedBaseContracts": [ + 2008, + 1986 + ], + "name": "CloneFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 1985 + ], + "body": { + "id": 2006, + "nodeType": "Block", + "src": "529:484:12", + "statements": [ + { + "assignments": [ + 1997 + ], + "declarations": [ + { + "constant": false, + "id": 1997, + "mutability": "mutable", + "name": "targetBytes", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2006, + "src": "539:19:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + }, + "typeName": { + "id": 1996, + "name": "bytes20", + "nodeType": "ElementaryTypeName", + "src": "539:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2002, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2000, + "name": "prototype", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1990, + "src": "569:9:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "561:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes20_$", + "typeString": "type(bytes20)" + }, + "typeName": { + "id": 1998, + "name": "bytes20", + "nodeType": "ElementaryTypeName", + "src": "561:7:12", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "561:18:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "539:40:12" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "598:387:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "612:24:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:4:12", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "625:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "625:11:12" + }, + "variables": [ + { + "name": "clone", + "nodeType": "YulTypedName", + "src": "616:5:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "656:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:66:12", + "type": "", + "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "649:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "649:81:12" + }, + "nodeType": "YulExpressionStatement", + "src": "649:81:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "754:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "761:4:12", + "type": "", + "value": "0x14" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "750:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "750:16:12" + }, + { + "name": "targetBytes", + "nodeType": "YulIdentifier", + "src": "768:11:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "743:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "743:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "743:37:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "821:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "828:4:12", + "type": "", + "value": "0x28" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "817:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "817:16:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "851:66:12", + "type": "", + "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "793:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "793:138:12" + }, + "nodeType": "YulExpressionStatement", + "src": "793:138:12" + }, + { + "nodeType": "YulAssignment", + "src": "944:31:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "960:1:12", + "type": "", + "value": "0" + }, + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "963:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "970:4:12", + "type": "", + "value": "0x37" + } + ], + "functionName": { + "name": "create", + "nodeType": "YulIdentifier", + "src": "953:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "953:22:12" + }, + "variableNames": [ + { + "name": "proxy", + "nodeType": "YulIdentifier", + "src": "944:5:12" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1994, + "isOffset": false, + "isSlot": false, + "src": "944:5:12", + "valueSize": 1 + }, + { + "declaration": 1997, + "isOffset": false, + "isSlot": false, + "src": "768:11:12", + "valueSize": 1 + } + ], + "id": 2003, + "nodeType": "InlineAssembly", + "src": "589:396:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 2004, + "name": "proxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1994, + "src": "1001:5:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1995, + "id": 2005, + "nodeType": "Return", + "src": "994:12:12" + } + ] + }, + "documentation": null, + "functionSelector": "8124b78e", + "id": 2007, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clone", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1992, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "496:8:12" + }, + "parameters": { + "id": 1991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1990, + "mutability": "mutable", + "name": "prototype", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2007, + "src": "468:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1989, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "468:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "467:19:12" + }, + "returnParameters": { + "id": 1995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1994, + "mutability": "mutable", + "name": "proxy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2007, + "src": "514:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "514:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "513:15:12" + }, + "scope": 2008, + "src": "453:560:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2009, + "src": "408:607:12" + } + ], + "src": "78:938:12" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.508Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/ConstOracle.json b/build-v1/contracts/ConstOracle.json new file mode 100644 index 0000000..d49e38a --- /dev/null +++ b/build-v1/contracts/ConstOracle.json @@ -0,0 +1,607 @@ +{ + "contractName": "ConstOracle", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "_price", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "tokenPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_price\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ConstOracle.sol\":\"ConstOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ConstOracle.sol\":{\"keccak256\":\"0x135f4a8c2768de7c0889f1ec0040ccef60cc9366c7174adb28ce23f1105d0b84\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d584bbc06b0b4b06d139ca5169ce0a11e137f89606aa76c0dd6f7ef0c2b7a809\",\"dweb:/ipfs/QmfEvU1dvU6j7brDDEVLXBwoP5gwxjr6kfazGvXocBTXTR\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506040516100ff3803806100ff83398101604081905261002f91610037565b60005561004f565b600060208284031215610048578081fd5b5051919050565b60a28061005d6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80637ff9b59614603757806398d5fdca146051575b600080fd5b603d6057565b604051604891906063565b60405180910390f35b603d605d565b60005481565b60005490565b9081526020019056fea2646970667358221220983b3926be425c261897fcc5f62f15dd5763108fb7819b19ba891e32c578a13464736f6c63430006090033", + "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c80637ff9b59614603757806398d5fdca146051575b600080fd5b603d6057565b604051604891906063565b60405180910390f35b603d605d565b60005481565b60005490565b9081526020019056fea2646970667358221220983b3926be425c261897fcc5f62f15dd5763108fb7819b19ba891e32c578a13464736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "137:224:13:-:0;;;196:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;241:10;:19;137:224;;146:263:-1;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;-1:-1;83:13;;223:186;-1:-1;223:186;;137:224:13;;;;;;", + "deployedSourceMap": "137:224:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;164:25;;;:::i;:::-;;;;;;;;;;;;;;;;273:86;;;:::i;164:25::-;;;;:::o;273:86::-;316:7;342:10;273:86;:::o;125:222:-1:-;76:37;;;252:2;237:18;;223:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ncontract ConstOracle {\n uint256 public tokenPrice;\n\n constructor(uint256 _price) public {\n tokenPrice = _price;\n }\n\n function getPrice() external view returns (uint256) {\n return tokenPrice;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ConstOracle.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ConstOracle.sol", + "exportedSymbols": { + "ConstOracle": [ + 2032 + ] + }, + "id": 2033, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2010, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:13" + }, + { + "id": 2011, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:13" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2032, + "linearizedBaseContracts": [ + 2032 + ], + "name": "ConstOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "7ff9b596", + "id": 2013, + "mutability": "mutable", + "name": "tokenPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2032, + "src": "164:25:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2012, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "164:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2022, + "nodeType": "Block", + "src": "231:36:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2018, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2013, + "src": "241:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2019, + "name": "_price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2015, + "src": "254:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "241:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2021, + "nodeType": "ExpressionStatement", + "src": "241:19:13" + } + ] + }, + "documentation": null, + "id": 2023, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2016, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2015, + "mutability": "mutable", + "name": "_price", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2023, + "src": "208:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2014, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "208:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "207:16:13" + }, + "returnParameters": { + "id": 2017, + "nodeType": "ParameterList", + "parameters": [], + "src": "231:0:13" + }, + "scope": 2032, + "src": "196:71:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2030, + "nodeType": "Block", + "src": "325:34:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2028, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2013, + "src": "342:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2027, + "id": 2029, + "nodeType": "Return", + "src": "335:17:13" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 2031, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2024, + "nodeType": "ParameterList", + "parameters": [], + "src": "290:2:13" + }, + "returnParameters": { + "id": 2027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2031, + "src": "316:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "316:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "315:9:13" + }, + "scope": 2032, + "src": "273:86:13", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2033, + "src": "137:224:13" + } + ], + "src": "78:284:13" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ConstOracle.sol", + "exportedSymbols": { + "ConstOracle": [ + 2032 + ] + }, + "id": 2033, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2010, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:13" + }, + { + "id": 2011, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:13" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2032, + "linearizedBaseContracts": [ + 2032 + ], + "name": "ConstOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "7ff9b596", + "id": 2013, + "mutability": "mutable", + "name": "tokenPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2032, + "src": "164:25:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2012, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "164:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2022, + "nodeType": "Block", + "src": "231:36:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2018, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2013, + "src": "241:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2019, + "name": "_price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2015, + "src": "254:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "241:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2021, + "nodeType": "ExpressionStatement", + "src": "241:19:13" + } + ] + }, + "documentation": null, + "id": 2023, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2016, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2015, + "mutability": "mutable", + "name": "_price", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2023, + "src": "208:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2014, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "208:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "207:16:13" + }, + "returnParameters": { + "id": 2017, + "nodeType": "ParameterList", + "parameters": [], + "src": "231:0:13" + }, + "scope": 2032, + "src": "196:71:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2030, + "nodeType": "Block", + "src": "325:34:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2028, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2013, + "src": "342:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2027, + "id": 2029, + "nodeType": "Return", + "src": "335:17:13" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 2031, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2024, + "nodeType": "ParameterList", + "parameters": [], + "src": "290:2:13" + }, + "returnParameters": { + "id": 2027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2031, + "src": "316:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "316:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "315:9:13" + }, + "scope": 2032, + "src": "273:86:13", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2033, + "src": "137:224:13" + } + ], + "src": "78:284:13" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.509Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/DODO.json b/build-v1/contracts/DODO.json new file mode 100644 index 0000000..839079b --- /dev/null +++ b/build-v1/contracts/DODO.json @@ -0,0 +1,5964 @@ +{ + "contractName": "DODO", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "receiveBase", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payQuote", + "type": "uint256" + } + ], + "name": "BuyBaseToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "maintainer", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isBaseToken", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "ChargeMaintainerFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isBaseToken", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "ChargePenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "baseTokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "quoteTokenAmount", + "type": "uint256" + } + ], + "name": "ClaimAssets", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isBaseToken", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "lpTokenAmount", + "type": "uint256" + } + ], + "name": "Deposit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isBaseToken", + "type": "bool" + } + ], + "name": "Donate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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": true, + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payBase", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "receiveQuote", + "type": "uint256" + } + ], + "name": "SellBaseToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldGasPriceLimit", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newGasPriceLimit", + "type": "uint256" + } + ], + "name": "UpdateGasPriceLimit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldK", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newK", + "type": "uint256" + } + ], + "name": "UpdateK", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldLiquidityProviderFeeRate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newLiquidityProviderFeeRate", + "type": "uint256" + } + ], + "name": "UpdateLiquidityProviderFeeRate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "oldMaintainerFeeRate", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "newMaintainerFeeRate", + "type": "uint256" + } + ], + "name": "UpdateMaintainerFeeRate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isBaseToken", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "lpTokenAmount", + "type": "uint256" + } + ], + "name": "Withdraw", + "type": "event" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BUYING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "_CLAIMED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_CLOSED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_BASE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_GAS_PRICE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_K_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_LP_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MAINTAINER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MT_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_ORACLE_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_R_STATUS_", + "outputs": [ + { + "internalType": "enum Types.RStatus", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SELLING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SUPERVISOR_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TRADE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPayQuote", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "buyBaseToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimAssets", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "depositBase", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "depositBaseTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "depositQuote", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "depositQuoteTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "disableBaseDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "disableBuying", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "disableQuoteDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "disableSelling", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "disableTrading", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "donateBaseToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "donateQuoteToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableBaseDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableBuying", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableQuoteDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableSelling", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "enableTrading", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "finalSettlement", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getBaseCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getExpectedTarget", + "outputs": [ + { + "internalType": "uint256", + "name": "baseTarget", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quoteTarget", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getLpBaseBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "lpBalance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getLpQuoteBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "lpBalance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMidPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "midPrice", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getQuoteCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalBaseCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalQuoteCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "getWithdrawBasePenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "penalty", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "getWithdrawQuotePenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "penalty", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "queryBuyBaseToken", + "outputs": [ + { + "internalType": "uint256", + "name": "payQuote", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "querySellBaseToken", + "outputs": [ + { + "internalType": "uint256", + "name": "receiveQuote", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "retrieve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minReceiveQuote", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "sellBaseToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newBaseBalanceLimit", + "type": "uint256" + } + ], + "name": "setBaseBalanceLimit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newGasPriceLimit", + "type": "uint256" + } + ], + "name": "setGasPriceLimit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newK", + "type": "uint256" + } + ], + "name": "setK", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newLiquidityPorviderFeeRate", + "type": "uint256" + } + ], + "name": "setLiquidityProviderFeeRate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newMaintainer", + "type": "address" + } + ], + "name": "setMaintainer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newMaintainerFeeRate", + "type": "uint256" + } + ], + "name": "setMaintainerFeeRate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOracle", + "type": "address" + } + ], + "name": "setOracle", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newQuoteBalanceLimit", + "type": "uint256" + } + ], + "name": "setQuoteBalanceLimit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newSupervisor", + "type": "address" + } + ], + "name": "setSupervisor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawAllBase", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "withdrawAllBaseTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawAllQuote", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "withdrawAllQuoteTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdrawBase", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdrawBaseTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdrawQuote", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdrawQuoteTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "supervisor", + "type": "address" + }, + { + "internalType": "address", + "name": "maintainer", + "type": "address" + }, + { + "internalType": "address", + "name": "baseToken", + "type": "address" + }, + { + "internalType": "address", + "name": "quoteToken", + "type": "address" + }, + { + "internalType": "address", + "name": "oracle", + "type": "address" + }, + { + "internalType": "uint256", + "name": "lpFeeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "mtFeeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "k", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPriceLimit", + "type": "uint256" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"receiveBase\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payQuote\",\"type\":\"uint256\"}],\"name\":\"BuyBaseToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maintainer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBaseToken\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChargeMaintainerFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBaseToken\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChargePenalty\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseTokenAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quoteTokenAmount\",\"type\":\"uint256\"}],\"name\":\"ClaimAssets\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBaseToken\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lpTokenAmount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBaseToken\",\"type\":\"bool\"}],\"name\":\"Donate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payBase\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"receiveQuote\",\"type\":\"uint256\"}],\"name\":\"SellBaseToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldGasPriceLimit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newGasPriceLimit\",\"type\":\"uint256\"}],\"name\":\"UpdateGasPriceLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldK\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newK\",\"type\":\"uint256\"}],\"name\":\"UpdateK\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldLiquidityProviderFeeRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newLiquidityProviderFeeRate\",\"type\":\"uint256\"}],\"name\":\"UpdateLiquidityProviderFeeRate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldMaintainerFeeRate\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newMaintainerFeeRate\",\"type\":\"uint256\"}],\"name\":\"UpdateMaintainerFeeRate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBaseToken\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lpTokenAmount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_RECEIVE_QUOTE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BUYING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_CLAIMED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_CLOSED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_BASE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_QUOTE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_GAS_PRICE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_K_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_LP_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MAINTAINER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MT_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_ORACLE_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_RECEIVE_BASE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_R_STATUS_\",\"outputs\":[{\"internalType\":\"enum Types.RStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SELLING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SUPERVISOR_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_BASE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_QUOTE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TRADE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPayQuote\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"buyBaseToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositBaseTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositQuote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositQuoteTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableBaseDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableBuying\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableQuoteDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableSelling\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableTrading\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"donateBaseToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"donateQuoteToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableBaseDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableBuying\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableQuoteDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableSelling\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableTrading\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalSettlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getBaseCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExpectedTarget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"baseTarget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quoteTarget\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getLpBaseBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lpBalance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getLpQuoteBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lpBalance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMidPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"midPrice\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOraclePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getQuoteCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalBaseCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalQuoteCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getWithdrawBasePenalty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"penalty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getWithdrawQuotePenalty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"penalty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"supervisor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"maintainer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"quoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lpFeeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mtFeeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"k\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPriceLimit\",\"type\":\"uint256\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"queryBuyBaseToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payQuote\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"querySellBaseToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"receiveQuote\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"retrieve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minReceiveQuote\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sellBaseToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBaseBalanceLimit\",\"type\":\"uint256\"}],\"name\":\"setBaseBalanceLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newGasPriceLimit\",\"type\":\"uint256\"}],\"name\":\"setGasPriceLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newK\",\"type\":\"uint256\"}],\"name\":\"setK\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newLiquidityPorviderFeeRate\",\"type\":\"uint256\"}],\"name\":\"setLiquidityProviderFeeRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMaintainer\",\"type\":\"address\"}],\"name\":\"setMaintainer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newMaintainerFeeRate\",\"type\":\"uint256\"}],\"name\":\"setMaintainerFeeRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOracle\",\"type\":\"address\"}],\"name\":\"setOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newQuoteBalanceLimit\",\"type\":\"uint256\"}],\"name\":\"setQuoteBalanceLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newSupervisor\",\"type\":\"address\"}],\"name\":\"setSupervisor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawAllBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdrawAllBaseTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawAllQuote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdrawAllQuoteTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawBaseTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawQuote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawQuoteTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"DODO\"},\"userdoc\":{\"methods\":{},\"notice\":\"Entrance for users\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/dodo.sol\":\"DODO\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/dodo.sol\":{\"keccak256\":\"0xc5fda191b60307ecf600a789c59de657f9b7ad83f3d8e905eb4d6eef15519fd8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://06da52e9af78686a9ff9d2182480f992f731ec8b3184ee8ccb7cd31a2e5c88f7\",\"dweb:/ipfs/QmbmGLkmXAzP9jqp6YjNmi1bzdnnMwo4jU6MiSH65UEHzf\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Admin.sol\":{\"keccak256\":\"0x04a6c300c659e67733e5d89e709e052f0d095a5e825a467410d49ef6691fae56\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f6d4417d9c9bb16431ab7622d6e0f8e8f2233fbad1e71d6ff7971926d9470807\",\"dweb:/ipfs/QmXqLYnbs6Yuhhg9knkNx5AvZWqxkvZsVKmPUJo2j9FqtE\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/DODOLpToken.sol\":{\"keccak256\":\"0x93bb74398b96b44febba31ad63435edae743142088311a325215aaa34d35b512\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0991fee8f385b3266ff39672b209906557d1be7308b5a35749f3f8453f427d2b\",\"dweb:/ipfs/Qmf8sKLSQkcniYin94QfNGc8GLMaVrLzQUq2grV5Hu7JyU\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/LiquidityProvider.sol\":{\"keccak256\":\"0x1bbb3571a539c9098a617410934ef589e40c6a910f155c31ff0680b2d754c3a9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ec97b6eb2b09157237590eae3c7b9b34720c8cf8b392d78aa1ef41c1c543c1ed\",\"dweb:/ipfs/QmYLVFUrD3fbgHFyhWTPmqyS41SDi8kyegS4MpVMdDyr9V\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Pricing.sol\":{\"keccak256\":\"0xaec47be06aa7f8994923c80f2c2318304423666300a48f03a43265787f27c708\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e187f46639dd1127abc81439896e67e21338e9eee8707996606b0c9c8ede68a1\",\"dweb:/ipfs/QmPSfPbZuyM3haHZtWVFknZLAMqg2Jy613jQ36JGuCm7LS\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Settlement.sol\":{\"keccak256\":\"0x8167f472615dc95cf743254785eeef730a0a3b753f05f5b64391fbb9992c8ab6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3e2a25e398638f4bbecf434cf9b8b608c34a1271c051ee7e411b6c2c32702439\",\"dweb:/ipfs/QmUQmysLQ1k8uBWGzsTdmGCqyWQhZ4xtzPWAfsALGWYLPh\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol\":{\"keccak256\":\"0xbf15f2a72d59bbf0ed32b2a24fc4a68d45ffaa60dd2b2c1cc555d03ec1cd2f0a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7289884a2a8939295c4f61aeb7754bd3ce49e9d09188a1eddb762342589f36be\",\"dweb:/ipfs/QmaHYH51wieAyxBDASyHyfYSeu6UJNV7adD3AceeZXCgcZ\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Trader.sol\":{\"keccak256\":\"0x5646e8b46c11ec0405e6111d3ef46019235694c6940d3bc1eed20873ed545498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5cc7c25e66cec9cee54e4dbcb48b8022391f4566b94e32d5ce8fd2e278cdc7b8\",\"dweb:/ipfs/QmVR9sWfVtnEyBhEPSppidiAdE9efTe5FcEZtzfUFXcbcZ\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOCallee.sol\":{\"keccak256\":\"0x229c6157d9f467f52d98634966a88fce7c7d68d1b7ee5c4897957b3bc33ee2c5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d9ca56838de93c5727da081665c37fb7e4448cc584e3ff72f5d9867775c0ee5f\",\"dweb:/ipfs/QmTVeQ8EJqnrSYsu4GU4jhaUzW9FC45fAoXKHniBNXNaZs\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol\":{\"keccak256\":\"0x2183977c7a3cf5aa8d2f56d2167bf59515e34a8e4ebd2402efa85b612631955f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://61766578f8d1bef7f51912a5327e8d4e95e3d9adb509e9486b4e2c8cf179f5e6\",\"dweb:/ipfs/QmXJRK4JKMrJkdn7BFVueoNRixsu26shnX3Dxeb5T9JKK4\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol\":{\"keccak256\":\"0xed4a31155c30a764366aba2244e42406269e59618088f93c02f1b4c9fec9e53c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bd3d50110c9120d942f7713e1cfced848ba7721ea336b2d9c4a87a6eb2a82ca9\",\"dweb:/ipfs/QmTYFeDcAyA2JpfoL1LsGLgj4TeRJxNV1rM27vdcaZSwpF\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol\":{\"keccak256\":\"0xe3f63c53706f21ad68ebeff69321682ffa83bb0552db7e4453dff9772724f657\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://64e385f8c3fbe9e485d0b1b0f90f9621bf50fe02ee7cb95a44828a255db3581f\",\"dweb:/ipfs/QmNesw9cspw1fDDumDy1BSrCeGVij1BAfAVXpfajKHGUcn\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":{\"keccak256\":\"0x9a093cbac4e37ed4ee5e27495dae08754bbfec81f7c0ceb57a5a7ac4f362208f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ddd9e5de1c555f0d1232e148fe18574e6adaa348e792844d9011bbd39bf908f\",\"dweb:/ipfs/QmSgZNwPNqCrQC4kJNdwH3iQNasbTfw2cbTtAtNVcpqnYc\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol\":{\"keccak256\":\"0xf462d86a85221f424c5a40f3c0d4a699c72a61b31ed07091ffb0e0b28b3cd137\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3d92b79f4527b3d7812395c41e5d0786309a121b99af3bff5cd7663f7255d335\",\"dweb:/ipfs/QmYkQANWtKsJNHKeD6PrtUFeC3D6uWAxhXjB97eBHwqtzK\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol\":{\"keccak256\":\"0xb7a2ca6570834e4784e86d19fd5a4b6b1eff22a4586dc240659943396a365aa5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5855a493c78e787d7effd87d9c661acbcd19ca1e1ba72dbeaa91c3c8db29cbb4\",\"dweb:/ipfs/QmSddEexZ5okMatgoQ5JZRoJqe7BwsJwwWA2o1kKx7vbTH\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol\":{\"keccak256\":\"0xc9c3fc946350fd72083a9d5b1327ff923533ef37b054bc7b6007562b20b0faaf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fc140417457139fb240427629673bfaf970c5d4568ad1cfe582764c6e4855bbb\",\"dweb:/ipfs/Qmd7ESYe5kyM6NYiSzeFE74f1YGGPXzpdVd5qnYg2AvgH8\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol\":{\"keccak256\":\"0x0aebcc897b4de833e87e46a11e5a70d2b6e1d2fd99ebdf9e32e6421924f18b15\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a1098dace4f0664b0e3f5c3b6ce535ad2aba52e68fb6d1ea94b09debc06ed33c\",\"dweb:/ipfs/QmRbiq7M3Y8utAXaPWmVooGmoYF27N5dKVn6QYTaDFwqdP\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50615bc5806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620005205760003560e01c80638a8c523c11620002a9578063c59203af1162000171578063ec2fd46d11620000e1578063f2220416116200009f578063f222041614620009fe578063f2fde38b1462000a15578063f3ae6c5f1462000a2c578063f67ed4481462000a43578063f98bea151462000a5a578063ffa642251462000a715762000520565b8063ec2fd46d14620009a5578063ed0aa42814620009af578063ee27c68914620009c6578063ee5150b314620009d0578063f00f9a0914620009e75762000520565b8063d4b97046116200012f578063d4b970461462000966578063d689107c1462000970578063dd58b41c146200097a578063e67ce7061462000984578063eab5d20e146200099b5762000520565b8063c59203af1462000934578063c5bbffe8146200093e578063c6b73cf91462000948578063cc062b581462000952578063d47eaa37146200095c5762000520565b8063a3161a561162000219578063aceecbc811620001d7578063aceecbc814620008de578063b2094fd314620008e8578063bc7d679d14620008f2578063c0a5f6ff14620008fc578063c0ffa1781462000913578063c3a2a665146200091d5762000520565b8063a3161a56146200089f578063a598aca714620008a9578063aa06ce9b14620008b3578063ab44a7a314620008ca578063ac1fbc9814620008d45762000520565b8063947cf92b1162000267578063947cf92b146200083957806395faa5f6146200085057806397316ad814620008675780639b020fba146200087e578063a2801e1614620008885762000520565b80638a8c523c14620007ed5780638dae733314620007f75780638ff5e742146200080e57806390cbf82214620008185780639299eb3014620008225762000520565b806336ac41a811620003ed578063648a4fac116200035d578063796da7af116200031b578063796da7af146200078a5780637adbf97314620007945780637aed942d14620007ab5780637c9b8e8914620007c25780638456db1514620007cc578063892daf0514620007d65762000520565b8063648a4fac146200072f57806367de8be9146200073957806368be20ad14620007505780636ec6a58d146200077657806373a2ab7c14620007805762000520565b80634de4527e11620003ab5780634de4527e14620006e35780634e71e0c814620006ed57806354fd4d5014620006f75780635bb7552a14620007015780635f179f6414620007185762000520565b806336ac41a814620006a4578063387b0c1114620006ae5780633960f14214620006c55780634322ec8314620006cf5780634a248d2a14620006d95762000520565b80631769ddaa11620004955780631f3c156e11620004535780631f3c156e146200064e578063245c96851462000658578063247f993b146200066257806327bed8ee146200066c5780632aa82c65146200068357806336a53bbb146200068d5762000520565b80631769ddaa14620005f357806317700f0114620005fd57806317be952e146200060757806318c0bbe414620006205780631e34b9cc14620006375762000520565b8063108db74411620004e3578063108db74414620005985780631184d8be14620005af57806313c5762414620005b957806313ea5d2914620005c357806316048bc414620005da5762000520565b806304512dc414620005255780630923160214620005545780630c9f7bd0146200056d5780630cd1667d14620005845780630e6518e9146200058e575b600080fd5b6200053c62000536366004620041de565b62000a8b565b6040516200054b919062004afb565b60405180910390f35b6200056b62000565366004620042fb565b62000c3d565b005b6200053c6200057e366004620042fb565b62000cc2565b6200053c62000db7565b6200053c62000e3e565b6200053c620005a9366004620042ac565b62000e44565b6200056b62001067565b6200056b620010d6565b6200056b620005d4366004620041de565b62001128565b620005e462001177565b6040516200054b9190620043eb565b6200053c62001186565b6200056b6200118c565b62000611620011de565b6040516200054b9190620044b5565b6200053c62000631366004620042fb565b620011e7565b6200053c62000648366004620041de565b62001200565b6200056b62001379565b6200053c62001670565b6200056b62001676565b6200053c6200067d366004620042fb565b620016c5565b6200053c620016d9565b6200053c6200069e366004620041de565b6200171f565b6200056b62001779565b6200056b620006bf366004620042fb565b620017e8565b620005e46200184f565b620005e46200185e565b620005e46200186d565b6200053c6200187c565b6200056b62001882565b6200053c62001913565b6200056b62000712366004620042fb565b62001918565b6200053c62000729366004620042ac565b62001995565b6200056b62001af4565b6200056b6200074a366004620042fb565b62001c24565b6200076762000761366004620041de565b62001c9d565b6040516200054b91906200443c565b6200076762001cb2565b620005e462001cc2565b6200053c62001cd1565b6200056b620007a5366004620041de565b62001d17565b6200053c620007bc366004620041de565b62001d66565b6200053c62001ded565b620005e462001df3565b6200056b620007e7366004620042fb565b62001e02565b6200056b62001e61565b6200053c620008083660046200432d565b62001ed0565b620007676200218e565b6200056b6200219c565b6200056b62000833366004620041de565b62002205565b6200053c6200084a366004620042ac565b62002254565b6200053c62000861366004620041de565b62002439565b6200056b62000878366004620042fb565b6200247e565b6200053c620024dd565b6200053c62000899366004620042fb565b620024e3565b62000767620024f0565b62000767620024f9565b6200053c620008c4366004620042ac565b62002509565b6200053c6200264a565b620005e462002650565b6200056b6200265f565b6200053c620026af565b6200056b620026b5565b6200053c6200090d366004620042fb565b62002707565b6200053c62002715565b6200056b6200092e366004620042ac565b6200271b565b6200053c6200290a565b6200076762002917565b6200053c62002927565b6200056b6200292d565b6200053c62002998565b620005e4620029a5565b620005e4620029b4565b62000767620029c3565b6200053c620009953660046200432d565b620029d3565b6200053c62002c68565b6200053c62002c6e565b6200056b620009c0366004620042fb565b62002c74565b6200053c62002ccb565b6200053c620009e1366004620042fb565b62002ddc565b6200056b620009f8366004620041fc565b62002e8b565b6200056b62000a0f366004620042fb565b62003095565b6200056b62000a26366004620041de565b6200310e565b6200053c62000a3d366004620042fb565b620031bf565b6200053c62000a54366004620041de565b620031cd565b6200053c62000a6b366004620042fb565b62003200565b62000a7b6200320e565b6040516200054b92919062004b14565b600154600090600160a01b900460ff161562000ac45760405162461bcd60e51b815260040162000abb90620045d7565b60405180910390fd5b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff161562000b035760405162461bcd60e51b815260040162000abb9062004862565b600062000b10336200171f565b9050600062000b1f33620031cd565b9050600062000b2e8362000cc2565b90508281111562000b535760405162461bcd60e51b815260040162000abb906200483a565b60105462000b68908463ffffffff620032e316565b60105562000b7733836200330e565b62000b948562000b8e858463ffffffff620032e316565b6200337a565b62000b9f81620033b5565b846001600160a01b0316336001600160a01b031660008051602062005b508339815191526000868660405162000bd89392919062004457565b60405180910390a3336001600160a01b031660008051602062005b7083398151915260008360405162000c0d92919062004447565b60405180910390a262000c27838263ffffffff620032e316565b6001805460ff60a01b1916905595945050505050565b6006546001600160a01b031633148062000c6157506000546001600160a01b031633145b62000c805760405162461bcd60e51b815260040162000abb90620046f6565b7f808f99cfd15f1be6019f93dc76c81d5bd82e0b3e0b3d23a54f5a2e647a6cc3cc6002548260405162000cb592919062004b14565b60405180910390a1600255565b600060125482111562000ce95760405162461bcd60e51b815260040162000abb90620044ca565b6002600e5460ff16600281111562000cfd57fe5b141562000dae57600062000d1f600f54601154620032e390919063ffffffff16565b9050600062000d2d62001cd1565b9050600062000d3d83836200340d565b9050600062000d52601254600d54846200343a565b9050600062000d7b62000d7188601254620032e390919063ffffffff16565b600d54856200343a565b905062000da162000d93828963ffffffff620034f116565b839063ffffffff620032e316565b9550505050505062000db2565b5060005b919050565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801562000dfd57600080fd5b505afa15801562000e12573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e38919062004314565b90505b90565b60165481565b600154600090600160a01b900460ff161562000e745760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff161562000eb35760405162461bcd60e51b815260040162000abb9062004862565b600062000ebf6200320e565b915050600062000ece620016d9565b90506000811162000ef35760405162461bcd60e51b815260040162000abb90620045fa565b600062000f198362000f0c878563ffffffff6200352016565b9063ffffffff6200356016565b905062000f2633620031cd565b81111562000f485760405162461bcd60e51b815260040162000abb90620046b3565b600062000f558662000cc2565b905085811062000f795760405162461bcd60e51b815260040162000abb906200483a565b60105462000f8e908763ffffffff620032e316565b60105562000f9d33836200330e565b62000fb48762000b8e888463ffffffff620032e316565b62000fbf81620033b5565b6001600160a01b0387163360008051602062005b50833981519152600062000fee8a8663ffffffff620032e316565b86604051620010009392919062004457565b60405180910390a3336001600160a01b031660008051602062005b708339815191526000836040516200103592919062004447565b60405180910390a26200104f868263ffffffff620032e316565b6001805460ff60a01b19169055979650505050505050565b6000546001600160a01b03163314620010945760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff1615620010c15760405162461bcd60e51b815260040162000abb9062004862565b6001805460ff60c01b1916600160c01b179055565b6006546001600160a01b0316331480620010fa57506000546001600160a01b031633145b620011195760405162461bcd60e51b815260040162000abb90620046f6565b6001805460ff60c01b19169055565b6000546001600160a01b03163314620011555760405162461bcd60e51b815260040162000abb90620048d9565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031681565b60055481565b6006546001600160a01b0316331480620011b057506000546001600160a01b031633145b620011cf5760405162461bcd60e51b815260040162000abb90620046f6565b6001805460ff60c81b19169055565b600e5460ff1681565b6000620011f48262003592565b50939695505050505050565b600154600090600160a01b900460ff1615620012305760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff16156200126f5760405162461bcd60e51b815260040162000abb9062004862565b60006200127c3362002439565b905060006200128b3362001d66565b905060006200129a8362002ddc565b905082811115620012bf5760405162461bcd60e51b815260040162000abb906200483a565b600f54620012d4908463ffffffff620032e316565b600f55620012e3338362003705565b6200130085620012fa858463ffffffff620032e316565b62003739565b6200130b8162003774565b846001600160a01b0316336001600160a01b031660008051602062005b5083398151915260018686604051620013449392919062004457565b60405180910390a3336001600160a01b031660008051602062005b7083398151915260018360405162000c0d92919062004447565b600154600160a01b900460ff1615620013a65760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff16620013e45760405162461bcd60e51b815260040162000abb9062004aa6565b3360009081526017602052604090205460ff1615620014175760405162461bcd60e51b815260040162000abb9062004a7d565b336000818152601760205260408120805460ff19166001179055906200143d90620031cd565b905060006200144c3362001d66565b9050600082156200148a576200148762001465620016d9565b6010546200147a908663ffffffff6200352016565b9063ffffffff620037c116565b90505b60008215620014b957620014b6620014a162000db7565b600f546200147a908663ffffffff6200352016565b90505b601054620014ce908363ffffffff620032e316565b601055600f54620014e6908263ffffffff620032e316565b600f819055506200150c620014fe846015546200340d565b839063ffffffff620034f116565b91506200152e62001520856016546200340d565b829063ffffffff620034f116565b90506200153c338262003739565b6200154833836200337a565b601354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906200157c9033908790600401620043ff565b600060405180830381600087803b1580156200159757600080fd5b505af1158015620015ac573d6000803e3d6000fd5b5050601454604051632770a7eb60e21b81526001600160a01b039091169250639dc29fac9150620015e49033908890600401620043ff565b600060405180830381600087803b158015620015ff57600080fd5b505af115801562001614573d6000803e3d6000fd5b50505050336001600160a01b03167fbe5f7fe66d16c6a87bb5b8b08a96634fe4f1c2bac9e5e413efe41a782d4d0c4382846040516200165592919062004b14565b60405180910390a2505050506001805460ff60a01b19169055565b60105481565b6006546001600160a01b03163314806200169a57506000546001600160a01b031633145b620016b95760405162461bcd60e51b815260040162000abb90620046f6565b6003805460ff19169055565b6000620016d3338362002509565b92915050565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801562000dfd57600080fd5b6000806200172c620016d9565b905060006200173a6200320e565b915050816200174f5760009250505062000db2565b62001771826200147a836200176488620031cd565b9063ffffffff6200352016565b949350505050565b6000546001600160a01b03163314620017a65760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff1615620017d35760405162461bcd60e51b815260040162000abb9062004862565b6001805460ff60b81b1916600160b81b179055565b600154600160a01b900460ff1615620018155760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b179055620018343382620037ef565b6200183f81620033b5565b506001805460ff60a01b19169055565b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b03163314620018af5760405162461bcd60e51b815260040162000abb906200451e565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b6000546001600160a01b03163314620019455760405162461bcd60e51b815260040162000abb90620048d9565b7f3ce6ea91adda496b7a0546fa6558e5b52c3a509de6015820efb00ca4020e0a07600b54826040516200197a92919062004b14565b60405180910390a1600b819055620019916200385d565b5050565b600154600090600160a01b900460ff1615620019c55760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790819055600160b81b900460ff1662001a035760405162461bcd60e51b815260040162000abb90620045a0565b600062001a0f6200320e565b915050600062001a1e620016d9565b9050838162001a415762001a39858463ffffffff620034f116565b905062001a62565b821562001a625762001a5f836200147a878563ffffffff6200352016565b90505b62001a6e3386620037ef565b62001a7a8682620038f2565b60105462001a8f908663ffffffff620034f116565b6010556040516001600160a01b0387169033907f18081cde2fa64894914e1080b98cca17bb6d1acf633e57f6e26ebdb945ad830b9062001ad6906000908a90879062004457565b60405180910390a36001805460ff60a01b1916905595945050505050565b6000546001600160a01b0316331462001b215760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff161562001b4e5760405162461bcd60e51b815260040162000abb9062004862565b6001805462ffffff60b81b1960ff60b01b19909116600160b01b17169055600062001b7862000db7565b9050600062001b86620016d9565b9050601054601254111562001bc857600062001bb0601054601254620032e390919063ffffffff16565b905062001bbe818462003926565b6015555062001bcf565b6012546010555b600f54601154111562001c0f57600062001bf7600f54601154620032e390919063ffffffff16565b905062001c05818362003926565b6016555062001c16565b601154600f555b5050600e805460ff19169055565b6000546001600160a01b0316331462001c515760405162461bcd60e51b815260040162000abb90620048d9565b7f023a40bebf7ac113f81c3d628073246cf9e0bc49980a9d6a9531498ce9e3dd1c600d548260405162001c8692919062004b14565b60405180910390a1600d819055620019916200385d565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801562000dfd57600080fd5b6000546001600160a01b0316331462001d445760405162461bcd60e51b815260040162000abb90620048d9565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6013546040516370a0823160e01b81526000916001600160a01b0316906370a082319062001d99908590600401620043eb565b60206040518083038186803b15801562001db257600080fd5b505afa15801562001dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016d3919062004314565b60125481565b6001546001600160a01b031681565b6000546001600160a01b0316331462001e2f5760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff161562001e5c5760405162461bcd60e51b815260040162000abb9062004862565b600455565b6000546001600160a01b0316331462001e8e5760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff161562001ebb5760405162461bcd60e51b815260040162000abb9062004862565b6001805460ff60c81b1916600160c81b179055565b600154600090600160c81b900460ff1662001eff5760405162461bcd60e51b815260040162000abb90620047e8565b600354610100900460ff1662001f295760405162461bcd60e51b815260040162000abb9062004887565b6002543a111562001f4e5760405162461bcd60e51b815260040162000abb9062004a53565b600154600160a01b900460ff161562001f7b5760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790556000808080808062001fa08b62003947565b9550955095509550955095508986101562001fcf5760405162461bcd60e51b815260040162000abb90620049ab565b62001fdb33876200337a565b8715620020455760405163301bc67560e11b815233906360378cea9062002010906000908f908b908f908f906004016200446f565b600060405180830381600087803b1580156200202b57600080fd5b505af115801562002040573d6000803e3d6000fd5b505050505b62002051338c62003ac0565b8315620020bd5760075462002070906001600160a01b0316856200337a565b6007546040516001600160a01b03909116907fe4fed5362e2669c70e5da5a18942d1e617d8917f6adc0164d9668bd3a6d0cebe90620020b490600090889062004447565b60405180910390a25b8160105414620020cd5760108290555b80600f5414620020dd57600f8190555b826002811115620020ea57fe5b600e5460ff166002811115620020fc57fe5b146200212257600e805484919060ff191660018360028111156200211c57fe5b02179055505b6200212d85620033b5565b336001600160a01b03167fd8648b6ac54162763c86fd54bf2005af8ecd2f9cb273a5775921fd7f91e17b2d8c886040516200216a92919062004b14565b60405180910390a250506001805460ff60a01b191690555091979650505050505050565b600354610100900460ff1681565b6000546001600160a01b03163314620021c95760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff1615620021f65760405162461bcd60e51b815260040162000abb9062004862565b6003805460ff19166001179055565b6000546001600160a01b03163314620022325760405162461bcd60e51b815260040162000abb90620048d9565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b600154600090600160a01b900460ff1615620022845760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff1615620022c35760405162461bcd60e51b815260040162000abb9062004862565b6000620022cf6200320e565b5090506000620022de62000db7565b905060008111620023035760405162461bcd60e51b815260040162000abb9062004545565b60006200231c8362000f0c878563ffffffff6200352016565b9050620023293362001d66565b8111156200234b5760405162461bcd60e51b815260040162000abb9062004969565b6000620023588662002ddc565b9050858111156200237d5760405162461bcd60e51b815260040162000abb906200483a565b600f5462002392908763ffffffff620032e316565b600f55620023a1338362003705565b620023b887620012fa888463ffffffff620032e316565b620023c38162003774565b6001600160a01b0387163360008051602062005b508339815191526001620023f28a8663ffffffff620032e316565b86604051620024049392919062004457565b60405180910390a3336001600160a01b031660008051602062005b708339815191526001836040516200103592919062004447565b6000806200244662000db7565b90506000620024546200320e565b50905081620024695760009250505062000db2565b62001771826200147a83620017648862001d66565b6000546001600160a01b03163314620024ab5760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff1615620024d85760405162461bcd60e51b815260040162000abb9062004862565b600555565b60045481565b6000620011f48262003947565b60035460ff1681565b600154600160c01b900460ff1681565b600154600090600160a01b900460ff1615620025395760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790819055600160c01b900460ff16620025775760405162461bcd60e51b815260040162000abb9062004569565b6000620025836200320e565b50905060006200259262000db7565b90508381620025b557620025ad858463ffffffff620034f116565b9050620025d6565b8215620025d657620025d3836200147a878563ffffffff6200352016565b90505b620025e2338662003ac0565b620025ee868262003b2e565b600f5462002603908663ffffffff620034f116565b600f556040516001600160a01b0387169033907f18081cde2fa64894914e1080b98cca17bb6d1acf633e57f6e26ebdb945ad830b9062001ad6906001908a90879062004457565b600b5481565b6014546001600160a01b031681565b6006546001600160a01b03163314806200268357506000546001600160a01b031633145b620026a25760405162461bcd60e51b815260040162000abb90620046f6565b6003805461ff0019169055565b600f5481565b6006546001600160a01b0316331480620026d957506000546001600160a01b031633145b620026f85760405162461bcd60e51b815260040162000abb90620046f6565b6001805460ff60b81b19169055565b6000620016d3338362000e44565b600c5481565b6000546001600160a01b03163314620027485760405162461bcd60e51b815260040162000abb90620048d9565b6008546001600160a01b03838116911614156200281b5760115462002774908263ffffffff620034f116565b6008546040516370a0823160e01b81526001600160a01b03909116906370a0823190620027a6903090600401620043eb565b60206040518083038186803b158015620027bf57600080fd5b505afa158015620027d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027fa919062004314565b10156200281b5760405162461bcd60e51b815260040162000abb90620047b1565b6009546001600160a01b0383811691161415620028ee5760125462002847908263ffffffff620034f116565b6009546040516370a0823160e01b81526001600160a01b03909116906370a082319062002879903090600401620043eb565b60206040518083038186803b1580156200289257600080fd5b505afa158015620028a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028cd919062004314565b1015620028ee5760405162461bcd60e51b815260040162000abb90620044ca565b620019916001600160a01b038316338363ffffffff62003b6216565b600062000e383362000a8b565b600154600160b81b900460ff1681565b60155481565b6000546001600160a01b031633146200295a5760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff1615620029875760405162461bcd60e51b815260040162000abb9062004862565b6003805461ff001916610100179055565b600062000e383362001200565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b600154600090600160c81b900460ff1662002a025760405162461bcd60e51b815260040162000abb90620047e8565b60035460ff1662002a275760405162461bcd60e51b815260040162000abb9062004acf565b6002543a111562002a4c5760405162461bcd60e51b815260040162000abb9062004a53565b600154600160a01b900460ff161562002a795760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790556000808080808062002a9e8b62003592565b9550955095509550955095508986111562002acd5760405162461bcd60e51b815260040162000abb90620049e2565b62002ad9338c62003739565b871562002b435760405163301bc67560e11b815233906360378cea9062002b0e906001908f908b908f908f906004016200446f565b600060405180830381600087803b15801562002b2957600080fd5b505af115801562002b3e573d6000803e3d6000fd5b505050505b62002b4f3387620037ef565b831562002bbb5760075462002b6e906001600160a01b03168562003739565b6007546040516001600160a01b03909116907fe4fed5362e2669c70e5da5a18942d1e617d8917f6adc0164d9668bd3a6d0cebe9062002bb290600190889062004447565b60405180910390a25b816010541462002bcb5760108290555b80600f541462002bdb57600f8190555b82600281111562002be857fe5b600e5460ff16600281111562002bfa57fe5b1462002c2057600e805484919060ff1916600183600281111562002c1a57fe5b02179055505b62002c2b8562003774565b336001600160a01b03167fe93ad76094f247c0dafc1c61adc2187de1ac2738f7a3b49cb20b2263420251a38c886040516200216a92919062004b14565b60115481565b600d5481565b600154600160a01b900460ff161562002ca15760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b17905562002cc0338262003ac0565b6200183f8162003774565b600080600062002cda6200320e565b90925090506002600e5460ff16600281111562002cf357fe5b141562002d8657600062002d2562002d1c6012546200147a85866200352090919063ffffffff16565b60125462003926565b905062002d6462002d39600d54836200340d565b600d5462002d5790670de0b6b3a76400009063ffffffff620032e316565b9063ffffffff620034f116565b905062002d7b62002d7462001cd1565b8262003926565b935050505062000e3b565b600062002db162002da86011546200147a86876200352090919063ffffffff16565b60115462003926565b905062002dc562002d39600d54836200340d565b905062002d7b62002dd562001cd1565b826200340d565b600060115482111562002e035760405162461bcd60e51b815260040162000abb90620047b1565b6001600e5460ff16600281111562002e1757fe5b141562000dae57600062002e39601054601254620032e390919063ffffffff16565b9050600062002e4762001cd1565b9050600062002e57838362003926565b9050600062002e6c601154600d54846200343a565b9050600062000d7b62000d7188601154620032e390919063ffffffff16565b600154600160a81b900460ff161562002eb85760405162461bcd60e51b815260040162000abb9062004787565b6001805460ff60a81b1916600160a81b179055600080546001600160a01b03808d166001600160a01b031990921691909117808355604051911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600680546001600160a01b03199081166001600160a01b038c8116919091179092556007805482168b84161790556008805482168a841617908190556009805483168a8516179055600a8054909216888416179091556001805462ffffff60b81b1916815560028490556003805461010060ff1991821690931761ff00191692909217905560001960048190556005819055600b889055600c879055600d869055600e80549092169091556040519092919091169062002fd990620041b8565b62002fe59190620043eb565b604051809103906000f08015801562003002573d6000803e3d6000fd5b50601380546001600160a01b0319166001600160a01b039283161790556009546040519116906200303390620041b8565b6200303f9190620043eb565b604051809103906000f0801580156200305c573d6000803e3d6000fd5b50601480546001600160a01b0319166001600160a01b0392909216919091179055620030876200385d565b505050505050505050505050565b6000546001600160a01b03163314620030c25760405162461bcd60e51b815260040162000abb90620048d9565b7f6b04da3d58e4b37d99652babb3ea2bc25ce94379bfff3059f03d61b26c59e553600c5482604051620030f792919062004b14565b60405180910390a1600c819055620019916200385d565b6000546001600160a01b031633146200313b5760405162461bcd60e51b815260040162000abb90620048d9565b6001600160a01b038116620031645760405162461bcd60e51b815260040162000abb9062004813565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000620016d3338362001995565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a082319062001d99908590600401620043eb565b6000620016d3338362002254565b601254601154600091829182600e5460ff1660028111156200322c57fe5b14156200324557600f54601054935093505050620032df565b6002600e5460ff1660028111156200325957fe5b1415620032915760006200326c62003bc1565b600f5490915062003284848363ffffffff620034f116565b94509450505050620032df565b6001600e5460ff166002811115620032a557fe5b1415620032dc576000620032b862003c32565b9050620032cc828263ffffffff620034f116565b60105494509450505050620032df565b50505b9091565b600082821115620033085760405162461bcd60e51b815260040162000abb9062004764565b50900390565b601454604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90620033429085908590600401620043ff565b600060405180830381600087803b1580156200335d57600080fd5b505af115801562003372573d6000803e3d6000fd5b505050505050565b60095462003399906001600160a01b0316838363ffffffff62003b6216565b601254620033ae908263ffffffff620032e316565b6012555050565b601054620033ca908263ffffffff620034f116565b6010556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e906200340290839060009062004b04565b60405180910390a150565b6000670de0b6b3a76400006200342a848463ffffffff6200352016565b816200343257fe5b049392505050565b6000806200345a6200345360046200176487876200340d565b8662003c9a565b9050620034856200347f670de0b6b3a764000062001764848263ffffffff620034f116565b62003cbb565b90506000620034c0620034a783670de0b6b3a764000063ffffffff620032e316565b620034ba87600263ffffffff6200352016565b62003c9a565b9050620034e786620034e1670de0b6b3a76400008463ffffffff620034f116565b6200340d565b9695505050505050565b600082820183811015620035195760405162461bcd60e51b815260040162000abb90620048fc565b9392505050565b6000826200353157506000620016d3565b828202828482816200353f57fe5b0414620035195760405162461bcd60e51b815260040162000abb9062004a12565b6000806200356f8484620037c1565b9050828102840380156200358957506001019050620016d3565b509050620016d3565b600080600080600080620035a56200320e565b8093508192505050620035bb87600b546200340d565b9450620035cb87600c546200340d565b93506000620035e68562002d578a8963ffffffff620034f116565b90506000600e5460ff166002811115620035fc57fe5b14156200361b576200360f818362003cf6565b965060019350620036fb565b6001600e5460ff1660028111156200362f57fe5b141562003645576200360f816011548462003d3d565b6002600e5460ff1660028111156200365957fe5b1415620036fb5760006200367960125485620032e390919063ffffffff16565b905060006200369484601154620032e390919063ffffffff16565b905080831015620036ba57620036ae836012548762003d8d565b985060029550620036f8565b80831415620036d05781985060009550620036f8565b620036f1620014fe620036ea858463ffffffff620032e316565b8662003cf6565b9850600195505b50505b5091939550919395565b601354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90620033429085908590600401620043ff565b60085462003758906001600160a01b0316838363ffffffff62003b6216565b6011546200376d908263ffffffff620032e316565b6011555050565b600f5462003789908263ffffffff620034f116565b600f556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e906200340290839060019062004b04565b6000808211620037e55760405162461bcd60e51b815260040162000abb906200468b565b8183816200343257fe5b60055460125462003807908363ffffffff620034f116565b1115620038285760405162461bcd60e51b815260040162000abb906200461f565b60095462003848906001600160a01b031683308463ffffffff62003dcf16565b601254620033ae908263ffffffff620034f116565b6000670de0b6b3a7640000600d54106200388b5760405162461bcd60e51b815260040162000abb9062004a35565b6000600d5411620038b05760405162461bcd60e51b815260040162000abb9062004501565b670de0b6b3a7640000620038d2600c54600b54620034f190919063ffffffff16565b1062000e3b5760405162461bcd60e51b815260040162000abb90620048b4565b6014546040516340c10f1960e01b81526001600160a01b03909116906340c10f1990620033429085908590600401620043ff565b600062003519826200147a85670de0b6b3a764000063ffffffff6200352016565b6000806000806000806200395a6200320e565b92509050866000600e5460ff1660028111156200397357fe5b1415620039925762003986818462003df9565b96506002935062003a70565b6001600e5460ff166002811115620039a657fe5b141562003a5a576000620039c660115484620032e390919063ffffffff16565b90506000620039e185601254620032e390919063ffffffff16565b90508183101562003a1457620039fb836011548662003e3b565b9850600195508089111562003a0e578098505b62003a52565b8183141562003a2a578098506000955062003a52565b62003a4b6200152062003a44858563ffffffff620032e316565b8762003df9565b9850600295505b505062003a70565b62003a69816012548562003e5f565b9650600293505b62003a7e87600b546200340d565b955062003a8e87600c546200340d565b945062003ab48562003aa7898963ffffffff620032e316565b9063ffffffff620032e316565b96505091939550919395565b60045460115462003ad8908363ffffffff620034f116565b111562003af95760405162461bcd60e51b815260040162000abb906200472d565b60085462003b19906001600160a01b031683308463ffffffff62003dcf16565b6011546200376d908263ffffffff620034f116565b6013546040516340c10f1960e01b81526001600160a01b03909116906340c10f1990620033429085908590600401620043ff565b62003bbc8363a9059cbb60e01b848460405160240162003b84929190620043ff565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262003e96565b505050565b60008062003bdd600f54601154620032e390919063ffffffff16565b9050600062003beb62001cd1565b9050600062003bfb83836200340d565b9050600062003c10601254600d54846200343a565b905062003c2960125482620032e390919063ffffffff16565b94505050505090565b60008062003c4e601054601254620032e390919063ffffffff16565b9050600062003c5c62001cd1565b9050600062003c6c838362003926565b9050600062003c81601154600d54846200343a565b905062003c2960115482620032e390919063ffffffff16565b6000620035198262000f0c85670de0b6b3a764000063ffffffff6200352016565b80600160028204015b8181101562003cf05780915060028182858162003cdd57fe5b04018162003ce757fe5b04905062003cc4565b50919050565b600081831062003d1a5760405162461bcd60e51b815260040162000abb90620047b1565b600062003d2e838563ffffffff620032e316565b90506200177183848362003f5a565b600082841062003d615760405162461bcd60e51b815260040162000abb90620047b1565b600062003d75848663ffffffff620032e316565b905062003d8483858362003f5a565b95945050505050565b60008062003d9a62001cd1565b9050600062003dbb848662003db0858a62003f7a565b6001600d5462003f9b565b9050620034e7818663ffffffff620032e316565b62003df3846323b872dd60e01b85858560405160240162003b849392919062004418565b50505050565b60008062003e0662001cd1565b9050600062003e27848562003e1c85896200340d565b6000600d5462003f9b565b905062003d84848263ffffffff620032e316565b60008062003e50848663ffffffff620034f116565b905062003d8483828662003f5a565b60008062003e6c62001cd1565b9050600062003e82848662003e1c858a6200340d565b9050620034e7858263ffffffff620032e316565b60006060836001600160a01b03168360405162003eb49190620043af565b6000604051808303816000865af19150503d806000811462003ef3576040519150601f19603f3d011682016040523d82523d6000602084013e62003ef8565b606091505b50915091508162003f1d5760405162461bcd60e51b815260040162000abb9062004656565b80511562003df3578080602001905181019062003f3b9190620042d9565b62003df35760405162461bcd60e51b815260040162000abb906200491f565b60008062003f6762001cd1565b905062003d8485858584600d5462004135565b600062003519670de0b6b3a764000062000f0c858563ffffffff6200352016565b60008062003fb4866200147a8962001764878c6200340d565b9050600062003fdd62003fd6670de0b6b3a76400008663ffffffff620032e316565b886200340d565b905060018515620040025762003ffa828863ffffffff620034f116565b915062004017565b62004014838863ffffffff620034f116565b92505b8282106200403d5762004031828463ffffffff620032e316565b91506001905062004056565b6200404f838363ffffffff620032e316565b9150600090505b60006200408d6200407c600462001764670de0b6b3a76400008a63ffffffff620032e316565b620034e18c620017648a8f6200340d565b9050620040aa6200347f8262002d57868063ffffffff6200352016565b90506000620040ce600262001764670de0b6b3a76400008a63ffffffff620032e316565b905060008315620040f357620040eb858463ffffffff620034f116565b905062004108565b62004105838663ffffffff620032e316565b90505b881562004129576200411b818362003926565b965050505050505062003d84565b6200411b818362003c9a565b6000806200414f84620034e1888863ffffffff620032e316565b90506000620041756200416e886200147a8b8063ffffffff6200352016565b8762003c9a565b905060006200418585836200340d565b9050620041ab83620034e18362002d57670de0b6b3a76400008a63ffffffff620032e316565b9998505050505050505050565b61102d8062004b2383390190565b80356001600160a01b0381168114620016d357600080fd5b600060208284031215620041f0578081fd5b620035198383620041c6565b6000806000806000806000806000806101408b8d0312156200421c578586fd5b620042288c8c620041c6565b9950620042398c60208d01620041c6565b98506200424a8c60408d01620041c6565b97506200425b8c60608d01620041c6565b96506200426c8c60808d01620041c6565b95506200427d8c60a08d01620041c6565b945060c08b0135935060e08b013592506101008b013591506101208b013590509295989b9194979a5092959850565b60008060408385031215620042bf578182fd5b620042cb8484620041c6565b946020939093013593505050565b600060208284031215620042eb578081fd5b8151801515811462003519578182fd5b6000602082840312156200430d578081fd5b5035919050565b60006020828403121562004326578081fd5b5051919050565b6000806000806060858703121562004343578384fd5b8435935060208501359250604085013567ffffffffffffffff8082111562004369578384fd5b81870188601f8201126200437b578485fd5b80359250818311156200438c578485fd5b8860208483010111156200439e578485fd5b959894975050602090940194505050565b60008251815b81811015620043d15760208186018101518583015201620043b5565b81811115620043e05782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b9115158252602082015260400190565b92151583526020830191909152604082015260600190565b6000861515825285602083015284604083015260806060830152826080830152828460a084013781830160a090810191909152601f909201601f19160101949350505050565b6020810160038310620044c457fe5b91905290565b6020808252601d908201527f444f444f5f51554f54455f42414c414e43455f4e4f545f454e4f554748000000604082015260600190565b60208082526003908201526204b3d360ec1b604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600a908201526904e4f5f424153455f4c560b41b604082015260600190565b60208082526018908201527f4445504f5349545f424153455f4e4f545f414c4c4f5745440000000000000000604082015260600190565b60208082526019908201527f4445504f5349545f51554f54455f4e4f545f414c4c4f57454400000000000000604082015260600190565b60208082526009908201526814915153951490539560ba1b604082015260600190565b6020808252600b908201526a04e4f5f51554f54455f4c560ac1b604082015260600190565b6020808252601c908201527f51554f54455f42414c414e43455f4c494d49545f455843454544454400000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526023908201527f4c505f51554f54455f4341504954414c5f42414c414e43455f4e4f545f454e4f6040820152620aa8e960eb1b606082015260800190565b60208082526017908201527f4e4f545f53555045525649534f525f4f525f4f574e4552000000000000000000604082015260600190565b6020808252601b908201527f424153455f42414c414e43455f4c494d49545f45584345454445440000000000604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b60208082526010908201526f1113d113d7d25392551250531256915160821b604082015260600190565b6020808252601c908201527f444f444f5f424153455f42414c414e43455f4e4f545f454e4f55474800000000604082015260600190565b602080825260119082015270151490511157d393d517d0531313d5d151607a1b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600e908201526d1411539053151657d15610d1515160921b604082015260600190565b6020808252600b908201526a1113d113d7d0d313d4d15160aa1b604082015260600190565b60208082526013908201527214d15313125391d7d393d517d0531313d5d151606a1b604082015260600190565b6020808252600b908201526a4645455f524154453e3d3160a81b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526022908201527f4c505f424153455f4341504954414c5f42414c414e43455f4e4f545f454e4f5560408201526108e960f31b606082015260800190565b6020808252601c908201527f53454c4c5f424153455f524543454956455f4e4f545f454e4f55474800000000604082015260600190565b602080825260169082015275084aab2be8482a68abe869ea6a8bea89e9ebe9aaa86960531b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b6020808252600490820152634b3e3d3160e01b604082015260600190565b60208082526010908201526f11d054d7d4149250d157d15610d1515160821b604082015260600190565b6020808252600f908201526e1053149150511657d0d31052535151608a1b604082015260600190565b6020808252600f908201526e1113d113d7d393d517d0d313d4d151608a1b604082015260600190565b602080825260129082015271109556525391d7d393d517d0531313d5d15160721b604082015260600190565b90815260200190565b9182521515602082015260400190565b91825260208201526040019056fe60c060405260036080819052620444c560ec1b60a0908152620000269160029190620000c6565b503480156200003457600080fd5b506040516200102d3803806200102d83398101604081905262000057916200016b565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600380546001600160a01b0319166001600160a01b03929092169190911790556200019b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010957805160ff191683800117855562000139565b8280016001018555821562000139579182015b82811115620001395782518255916020019190600101906200011c565b50620001479291506200014b565b5090565b6200016891905b8082111562000147576000815560010162000152565b90565b6000602082840312156200017d578081fd5b81516001600160a01b038116811462000194578182fd5b9392505050565b610e8280620001ab6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80634e71e0c8116100975780639dc29fac116100665780639dc29fac146101dd578063a9059cbb146101f0578063dd62ed3e14610203578063f2fde38b1461021657610100565b80634e71e0c8146101b257806370a08231146101ba5780638456db15146101cd57806395d89b41146101d557610100565b806318160ddd116100d357806318160ddd1461016057806323b872dd14610175578063313ce5671461018857806340c10f191461019d57610100565b806306fdde0314610105578063095ea7b31461012357806313096a411461014357806316048bc414610158575b600080fd5b61010d610229565b60405161011a9190610c89565b60405180910390f35b610136610131366004610b56565b6102f6565b60405161011a9190610c7e565b61014b610361565b60405161011a9190610c6a565b61014b610370565b61016861037f565b60405161011a9190610dcd565b610136610183366004610b16565b610385565b610190610509565b60405161011a9190610dd6565b6101b06101ab366004610b56565b61058b565b005b6101b061068e565b6101686101c8366004610ac7565b61071c565b61014b610737565b61010d610746565b6101b06101eb366004610b56565b6107d1565b6101366101fe366004610b56565b6108c8565b610168610211366004610ae2565b610986565b6101b0610224366004610ac7565b6109b1565b604080518082018252600f81526e5f444f444f5f4c505f544f4b454e5f60881b602082015260035482516306fdde0360e01b815292516060936001600160a01b03909216916306fdde03916004808301926000929190829003018186803b15801561029357600080fd5b505afa1580156102a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102cf9190810190610b80565b816040516020016102e1929190610c3c565b60405160208183030381529060405291505090565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061034f908690610dcd565b60405180910390a35060015b92915050565b6003546001600160a01b031681565b6000546001600160a01b031681565b60045481565b6001600160a01b0383166000908152600560205260408120548211156103c65760405162461bcd60e51b81526004016103bd90610d5b565b60405180910390fd5b6001600160a01b03841660009081526006602090815260408083203384529091529020548211156104095760405162461bcd60e51b81526004016103bd90610ce3565b6001600160a01b038416600090815260056020526040902054610432908363ffffffff610a5c16565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610467908363ffffffff610a8416565b6001600160a01b0380851660009081526005602090815260408083209490945591871681526006825282812033825290915220546104ab908363ffffffff610a5c16565b6001600160a01b038086166000818152600660209081526040808320338452909152908190209390935591519085169190600080516020610e2d833981519152906104f7908690610dcd565b60405180910390a35060019392505050565b6003546040805163313ce56760e01b815290516000926001600160a01b03169163313ce567916004808301926020929190829003018186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190610c1b565b905090565b6000546001600160a01b031633146105b55760405162461bcd60e51b81526004016103bd90610d87565b6001600160a01b0382166000908152600560205260409020546105de908263ffffffff610a8416565b6001600160a01b03831660009081526005602052604090205560045461060a908263ffffffff610a8416565b6004556040516001600160a01b038316907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688590610648908490610dcd565b60405180910390a2816001600160a01b031660006001600160a01b0316600080516020610e2d833981519152836040516106829190610dcd565b60405180910390a35050565b6001546001600160a01b031633146106b85760405162461bcd60e51b81526004016103bd90610cbc565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b031660009081526005602052604090205490565b6001546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107c95780601f1061079e576101008083540402835291602001916107c9565b820191906000526020600020905b8154815290600101906020018083116107ac57829003601f168201915b505050505081565b6000546001600160a01b031633146107fb5760405162461bcd60e51b81526004016103bd90610d87565b6001600160a01b038216600090815260056020526040902054610824908263ffffffff610a5c16565b6001600160a01b038316600090815260056020526040902055600454610850908263ffffffff610a5c16565b6004556040516001600160a01b038316907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59061088e908490610dcd565b60405180910390a260006001600160a01b0316826001600160a01b0316600080516020610e2d833981519152836040516106829190610dcd565b336000908152600560205260408120548211156108f75760405162461bcd60e51b81526004016103bd90610d5b565b33600090815260056020526040902054610917908363ffffffff610a5c16565b33600090815260056020526040808220929092556001600160a01b03851681522054610949908363ffffffff610a8416565b6001600160a01b038416600081815260056020526040908190209290925590513390600080516020610e2d8339815191529061034f908690610dcd565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000546001600160a01b031633146109db5760405162461bcd60e51b81526004016103bd90610d87565b6001600160a01b038116610a015760405162461bcd60e51b81526004016103bd90610d34565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600082821115610a7e5760405162461bcd60e51b81526004016103bd90610d11565b50900390565b600082820183811015610aa95760405162461bcd60e51b81526004016103bd90610daa565b9392505050565b80356001600160a01b038116811461035b57600080fd5b600060208284031215610ad8578081fd5b610aa98383610ab0565b60008060408385031215610af4578081fd5b610afe8484610ab0565b9150610b0d8460208501610ab0565b90509250929050565b600080600060608486031215610b2a578081fd5b8335610b3581610e14565b92506020840135610b4581610e14565b929592945050506040919091013590565b60008060408385031215610b68578182fd5b610b728484610ab0565b946020939093013593505050565b600060208284031215610b91578081fd5b815167ffffffffffffffff80821115610ba8578283fd5b81840185601f820112610bb9578384fd5b8051925081831115610bc9578384fd5b604051601f8401601f191681016020018381118282101715610be9578586fd5b604052838152818401602001871015610c00578485fd5b610c11846020830160208501610de4565b9695505050505050565b600060208284031215610c2c578081fd5b815160ff81168114610aa9578182fd5b60008351610c4e818460208801610de4565b8351908301610c61828260208801610de4565b01949350505050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602082528251806020840152610ca8816040850160208701610de4565b601f01601f19169190910160400192915050565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526014908201527308298989eae829c868abe9c9ea8be8a9c9eaa8e960631b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601290820152710848298829c868abe9c9ea8be8a9c9eaa8e960731b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b90815260200190565b60ff91909116815260200190565b60005b83811015610dff578181015183820152602001610de7565b83811115610e0e576000848401525b50505050565b6001600160a01b0381168114610e2957600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209cf0d1d887af2d1880badc337ef0f270c8675b4bfd794dc60bdaa78dec3bd19664736f6c63430006090033e89c586bd81ee35a18f7eac22a732b56e589a2821497cce12a0208828540a36d581f351e2bdb9fa9021bb2a24def989f06ac236f8a92aac14bcbc618ddf3826aa2646970667358221220a7c3f70cc23c3bc7f4459663ac4cd28de21ec73de76092c1f464dcf5d30c400d64736f6c63430006090033", + "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620005205760003560e01c80638a8c523c11620002a9578063c59203af1162000171578063ec2fd46d11620000e1578063f2220416116200009f578063f222041614620009fe578063f2fde38b1462000a15578063f3ae6c5f1462000a2c578063f67ed4481462000a43578063f98bea151462000a5a578063ffa642251462000a715762000520565b8063ec2fd46d14620009a5578063ed0aa42814620009af578063ee27c68914620009c6578063ee5150b314620009d0578063f00f9a0914620009e75762000520565b8063d4b97046116200012f578063d4b970461462000966578063d689107c1462000970578063dd58b41c146200097a578063e67ce7061462000984578063eab5d20e146200099b5762000520565b8063c59203af1462000934578063c5bbffe8146200093e578063c6b73cf91462000948578063cc062b581462000952578063d47eaa37146200095c5762000520565b8063a3161a561162000219578063aceecbc811620001d7578063aceecbc814620008de578063b2094fd314620008e8578063bc7d679d14620008f2578063c0a5f6ff14620008fc578063c0ffa1781462000913578063c3a2a665146200091d5762000520565b8063a3161a56146200089f578063a598aca714620008a9578063aa06ce9b14620008b3578063ab44a7a314620008ca578063ac1fbc9814620008d45762000520565b8063947cf92b1162000267578063947cf92b146200083957806395faa5f6146200085057806397316ad814620008675780639b020fba146200087e578063a2801e1614620008885762000520565b80638a8c523c14620007ed5780638dae733314620007f75780638ff5e742146200080e57806390cbf82214620008185780639299eb3014620008225762000520565b806336ac41a811620003ed578063648a4fac116200035d578063796da7af116200031b578063796da7af146200078a5780637adbf97314620007945780637aed942d14620007ab5780637c9b8e8914620007c25780638456db1514620007cc578063892daf0514620007d65762000520565b8063648a4fac146200072f57806367de8be9146200073957806368be20ad14620007505780636ec6a58d146200077657806373a2ab7c14620007805762000520565b80634de4527e11620003ab5780634de4527e14620006e35780634e71e0c814620006ed57806354fd4d5014620006f75780635bb7552a14620007015780635f179f6414620007185762000520565b806336ac41a814620006a4578063387b0c1114620006ae5780633960f14214620006c55780634322ec8314620006cf5780634a248d2a14620006d95762000520565b80631769ddaa11620004955780631f3c156e11620004535780631f3c156e146200064e578063245c96851462000658578063247f993b146200066257806327bed8ee146200066c5780632aa82c65146200068357806336a53bbb146200068d5762000520565b80631769ddaa14620005f357806317700f0114620005fd57806317be952e146200060757806318c0bbe414620006205780631e34b9cc14620006375762000520565b8063108db74411620004e3578063108db74414620005985780631184d8be14620005af57806313c5762414620005b957806313ea5d2914620005c357806316048bc414620005da5762000520565b806304512dc414620005255780630923160214620005545780630c9f7bd0146200056d5780630cd1667d14620005845780630e6518e9146200058e575b600080fd5b6200053c62000536366004620041de565b62000a8b565b6040516200054b919062004afb565b60405180910390f35b6200056b62000565366004620042fb565b62000c3d565b005b6200053c6200057e366004620042fb565b62000cc2565b6200053c62000db7565b6200053c62000e3e565b6200053c620005a9366004620042ac565b62000e44565b6200056b62001067565b6200056b620010d6565b6200056b620005d4366004620041de565b62001128565b620005e462001177565b6040516200054b9190620043eb565b6200053c62001186565b6200056b6200118c565b62000611620011de565b6040516200054b9190620044b5565b6200053c62000631366004620042fb565b620011e7565b6200053c62000648366004620041de565b62001200565b6200056b62001379565b6200053c62001670565b6200056b62001676565b6200053c6200067d366004620042fb565b620016c5565b6200053c620016d9565b6200053c6200069e366004620041de565b6200171f565b6200056b62001779565b6200056b620006bf366004620042fb565b620017e8565b620005e46200184f565b620005e46200185e565b620005e46200186d565b6200053c6200187c565b6200056b62001882565b6200053c62001913565b6200056b62000712366004620042fb565b62001918565b6200053c62000729366004620042ac565b62001995565b6200056b62001af4565b6200056b6200074a366004620042fb565b62001c24565b6200076762000761366004620041de565b62001c9d565b6040516200054b91906200443c565b6200076762001cb2565b620005e462001cc2565b6200053c62001cd1565b6200056b620007a5366004620041de565b62001d17565b6200053c620007bc366004620041de565b62001d66565b6200053c62001ded565b620005e462001df3565b6200056b620007e7366004620042fb565b62001e02565b6200056b62001e61565b6200053c620008083660046200432d565b62001ed0565b620007676200218e565b6200056b6200219c565b6200056b62000833366004620041de565b62002205565b6200053c6200084a366004620042ac565b62002254565b6200053c62000861366004620041de565b62002439565b6200056b62000878366004620042fb565b6200247e565b6200053c620024dd565b6200053c62000899366004620042fb565b620024e3565b62000767620024f0565b62000767620024f9565b6200053c620008c4366004620042ac565b62002509565b6200053c6200264a565b620005e462002650565b6200056b6200265f565b6200053c620026af565b6200056b620026b5565b6200053c6200090d366004620042fb565b62002707565b6200053c62002715565b6200056b6200092e366004620042ac565b6200271b565b6200053c6200290a565b6200076762002917565b6200053c62002927565b6200056b6200292d565b6200053c62002998565b620005e4620029a5565b620005e4620029b4565b62000767620029c3565b6200053c620009953660046200432d565b620029d3565b6200053c62002c68565b6200053c62002c6e565b6200056b620009c0366004620042fb565b62002c74565b6200053c62002ccb565b6200053c620009e1366004620042fb565b62002ddc565b6200056b620009f8366004620041fc565b62002e8b565b6200056b62000a0f366004620042fb565b62003095565b6200056b62000a26366004620041de565b6200310e565b6200053c62000a3d366004620042fb565b620031bf565b6200053c62000a54366004620041de565b620031cd565b6200053c62000a6b366004620042fb565b62003200565b62000a7b6200320e565b6040516200054b92919062004b14565b600154600090600160a01b900460ff161562000ac45760405162461bcd60e51b815260040162000abb90620045d7565b60405180910390fd5b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff161562000b035760405162461bcd60e51b815260040162000abb9062004862565b600062000b10336200171f565b9050600062000b1f33620031cd565b9050600062000b2e8362000cc2565b90508281111562000b535760405162461bcd60e51b815260040162000abb906200483a565b60105462000b68908463ffffffff620032e316565b60105562000b7733836200330e565b62000b948562000b8e858463ffffffff620032e316565b6200337a565b62000b9f81620033b5565b846001600160a01b0316336001600160a01b031660008051602062005b508339815191526000868660405162000bd89392919062004457565b60405180910390a3336001600160a01b031660008051602062005b7083398151915260008360405162000c0d92919062004447565b60405180910390a262000c27838263ffffffff620032e316565b6001805460ff60a01b1916905595945050505050565b6006546001600160a01b031633148062000c6157506000546001600160a01b031633145b62000c805760405162461bcd60e51b815260040162000abb90620046f6565b7f808f99cfd15f1be6019f93dc76c81d5bd82e0b3e0b3d23a54f5a2e647a6cc3cc6002548260405162000cb592919062004b14565b60405180910390a1600255565b600060125482111562000ce95760405162461bcd60e51b815260040162000abb90620044ca565b6002600e5460ff16600281111562000cfd57fe5b141562000dae57600062000d1f600f54601154620032e390919063ffffffff16565b9050600062000d2d62001cd1565b9050600062000d3d83836200340d565b9050600062000d52601254600d54846200343a565b9050600062000d7b62000d7188601254620032e390919063ffffffff16565b600d54856200343a565b905062000da162000d93828963ffffffff620034f116565b839063ffffffff620032e316565b9550505050505062000db2565b5060005b919050565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801562000dfd57600080fd5b505afa15801562000e12573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e38919062004314565b90505b90565b60165481565b600154600090600160a01b900460ff161562000e745760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff161562000eb35760405162461bcd60e51b815260040162000abb9062004862565b600062000ebf6200320e565b915050600062000ece620016d9565b90506000811162000ef35760405162461bcd60e51b815260040162000abb90620045fa565b600062000f198362000f0c878563ffffffff6200352016565b9063ffffffff6200356016565b905062000f2633620031cd565b81111562000f485760405162461bcd60e51b815260040162000abb90620046b3565b600062000f558662000cc2565b905085811062000f795760405162461bcd60e51b815260040162000abb906200483a565b60105462000f8e908763ffffffff620032e316565b60105562000f9d33836200330e565b62000fb48762000b8e888463ffffffff620032e316565b62000fbf81620033b5565b6001600160a01b0387163360008051602062005b50833981519152600062000fee8a8663ffffffff620032e316565b86604051620010009392919062004457565b60405180910390a3336001600160a01b031660008051602062005b708339815191526000836040516200103592919062004447565b60405180910390a26200104f868263ffffffff620032e316565b6001805460ff60a01b19169055979650505050505050565b6000546001600160a01b03163314620010945760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff1615620010c15760405162461bcd60e51b815260040162000abb9062004862565b6001805460ff60c01b1916600160c01b179055565b6006546001600160a01b0316331480620010fa57506000546001600160a01b031633145b620011195760405162461bcd60e51b815260040162000abb90620046f6565b6001805460ff60c01b19169055565b6000546001600160a01b03163314620011555760405162461bcd60e51b815260040162000abb90620048d9565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031681565b60055481565b6006546001600160a01b0316331480620011b057506000546001600160a01b031633145b620011cf5760405162461bcd60e51b815260040162000abb90620046f6565b6001805460ff60c81b19169055565b600e5460ff1681565b6000620011f48262003592565b50939695505050505050565b600154600090600160a01b900460ff1615620012305760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff16156200126f5760405162461bcd60e51b815260040162000abb9062004862565b60006200127c3362002439565b905060006200128b3362001d66565b905060006200129a8362002ddc565b905082811115620012bf5760405162461bcd60e51b815260040162000abb906200483a565b600f54620012d4908463ffffffff620032e316565b600f55620012e3338362003705565b6200130085620012fa858463ffffffff620032e316565b62003739565b6200130b8162003774565b846001600160a01b0316336001600160a01b031660008051602062005b5083398151915260018686604051620013449392919062004457565b60405180910390a3336001600160a01b031660008051602062005b7083398151915260018360405162000c0d92919062004447565b600154600160a01b900460ff1615620013a65760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff16620013e45760405162461bcd60e51b815260040162000abb9062004aa6565b3360009081526017602052604090205460ff1615620014175760405162461bcd60e51b815260040162000abb9062004a7d565b336000818152601760205260408120805460ff19166001179055906200143d90620031cd565b905060006200144c3362001d66565b9050600082156200148a576200148762001465620016d9565b6010546200147a908663ffffffff6200352016565b9063ffffffff620037c116565b90505b60008215620014b957620014b6620014a162000db7565b600f546200147a908663ffffffff6200352016565b90505b601054620014ce908363ffffffff620032e316565b601055600f54620014e6908263ffffffff620032e316565b600f819055506200150c620014fe846015546200340d565b839063ffffffff620034f116565b91506200152e62001520856016546200340d565b829063ffffffff620034f116565b90506200153c338262003739565b6200154833836200337a565b601354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906200157c9033908790600401620043ff565b600060405180830381600087803b1580156200159757600080fd5b505af1158015620015ac573d6000803e3d6000fd5b5050601454604051632770a7eb60e21b81526001600160a01b039091169250639dc29fac9150620015e49033908890600401620043ff565b600060405180830381600087803b158015620015ff57600080fd5b505af115801562001614573d6000803e3d6000fd5b50505050336001600160a01b03167fbe5f7fe66d16c6a87bb5b8b08a96634fe4f1c2bac9e5e413efe41a782d4d0c4382846040516200165592919062004b14565b60405180910390a2505050506001805460ff60a01b19169055565b60105481565b6006546001600160a01b03163314806200169a57506000546001600160a01b031633145b620016b95760405162461bcd60e51b815260040162000abb90620046f6565b6003805460ff19169055565b6000620016d3338362002509565b92915050565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801562000dfd57600080fd5b6000806200172c620016d9565b905060006200173a6200320e565b915050816200174f5760009250505062000db2565b62001771826200147a836200176488620031cd565b9063ffffffff6200352016565b949350505050565b6000546001600160a01b03163314620017a65760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff1615620017d35760405162461bcd60e51b815260040162000abb9062004862565b6001805460ff60b81b1916600160b81b179055565b600154600160a01b900460ff1615620018155760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b179055620018343382620037ef565b6200183f81620033b5565b506001805460ff60a01b19169055565b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b03163314620018af5760405162461bcd60e51b815260040162000abb906200451e565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b6000546001600160a01b03163314620019455760405162461bcd60e51b815260040162000abb90620048d9565b7f3ce6ea91adda496b7a0546fa6558e5b52c3a509de6015820efb00ca4020e0a07600b54826040516200197a92919062004b14565b60405180910390a1600b819055620019916200385d565b5050565b600154600090600160a01b900460ff1615620019c55760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790819055600160b81b900460ff1662001a035760405162461bcd60e51b815260040162000abb90620045a0565b600062001a0f6200320e565b915050600062001a1e620016d9565b9050838162001a415762001a39858463ffffffff620034f116565b905062001a62565b821562001a625762001a5f836200147a878563ffffffff6200352016565b90505b62001a6e3386620037ef565b62001a7a8682620038f2565b60105462001a8f908663ffffffff620034f116565b6010556040516001600160a01b0387169033907f18081cde2fa64894914e1080b98cca17bb6d1acf633e57f6e26ebdb945ad830b9062001ad6906000908a90879062004457565b60405180910390a36001805460ff60a01b1916905595945050505050565b6000546001600160a01b0316331462001b215760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff161562001b4e5760405162461bcd60e51b815260040162000abb9062004862565b6001805462ffffff60b81b1960ff60b01b19909116600160b01b17169055600062001b7862000db7565b9050600062001b86620016d9565b9050601054601254111562001bc857600062001bb0601054601254620032e390919063ffffffff16565b905062001bbe818462003926565b6015555062001bcf565b6012546010555b600f54601154111562001c0f57600062001bf7600f54601154620032e390919063ffffffff16565b905062001c05818362003926565b6016555062001c16565b601154600f555b5050600e805460ff19169055565b6000546001600160a01b0316331462001c515760405162461bcd60e51b815260040162000abb90620048d9565b7f023a40bebf7ac113f81c3d628073246cf9e0bc49980a9d6a9531498ce9e3dd1c600d548260405162001c8692919062004b14565b60405180910390a1600d819055620019916200385d565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801562000dfd57600080fd5b6000546001600160a01b0316331462001d445760405162461bcd60e51b815260040162000abb90620048d9565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6013546040516370a0823160e01b81526000916001600160a01b0316906370a082319062001d99908590600401620043eb565b60206040518083038186803b15801562001db257600080fd5b505afa15801562001dc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016d3919062004314565b60125481565b6001546001600160a01b031681565b6000546001600160a01b0316331462001e2f5760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff161562001e5c5760405162461bcd60e51b815260040162000abb9062004862565b600455565b6000546001600160a01b0316331462001e8e5760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff161562001ebb5760405162461bcd60e51b815260040162000abb9062004862565b6001805460ff60c81b1916600160c81b179055565b600154600090600160c81b900460ff1662001eff5760405162461bcd60e51b815260040162000abb90620047e8565b600354610100900460ff1662001f295760405162461bcd60e51b815260040162000abb9062004887565b6002543a111562001f4e5760405162461bcd60e51b815260040162000abb9062004a53565b600154600160a01b900460ff161562001f7b5760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790556000808080808062001fa08b62003947565b9550955095509550955095508986101562001fcf5760405162461bcd60e51b815260040162000abb90620049ab565b62001fdb33876200337a565b8715620020455760405163301bc67560e11b815233906360378cea9062002010906000908f908b908f908f906004016200446f565b600060405180830381600087803b1580156200202b57600080fd5b505af115801562002040573d6000803e3d6000fd5b505050505b62002051338c62003ac0565b8315620020bd5760075462002070906001600160a01b0316856200337a565b6007546040516001600160a01b03909116907fe4fed5362e2669c70e5da5a18942d1e617d8917f6adc0164d9668bd3a6d0cebe90620020b490600090889062004447565b60405180910390a25b8160105414620020cd5760108290555b80600f5414620020dd57600f8190555b826002811115620020ea57fe5b600e5460ff166002811115620020fc57fe5b146200212257600e805484919060ff191660018360028111156200211c57fe5b02179055505b6200212d85620033b5565b336001600160a01b03167fd8648b6ac54162763c86fd54bf2005af8ecd2f9cb273a5775921fd7f91e17b2d8c886040516200216a92919062004b14565b60405180910390a250506001805460ff60a01b191690555091979650505050505050565b600354610100900460ff1681565b6000546001600160a01b03163314620021c95760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff1615620021f65760405162461bcd60e51b815260040162000abb9062004862565b6003805460ff19166001179055565b6000546001600160a01b03163314620022325760405162461bcd60e51b815260040162000abb90620048d9565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b600154600090600160a01b900460ff1615620022845760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff1615620022c35760405162461bcd60e51b815260040162000abb9062004862565b6000620022cf6200320e565b5090506000620022de62000db7565b905060008111620023035760405162461bcd60e51b815260040162000abb9062004545565b60006200231c8362000f0c878563ffffffff6200352016565b9050620023293362001d66565b8111156200234b5760405162461bcd60e51b815260040162000abb9062004969565b6000620023588662002ddc565b9050858111156200237d5760405162461bcd60e51b815260040162000abb906200483a565b600f5462002392908763ffffffff620032e316565b600f55620023a1338362003705565b620023b887620012fa888463ffffffff620032e316565b620023c38162003774565b6001600160a01b0387163360008051602062005b508339815191526001620023f28a8663ffffffff620032e316565b86604051620024049392919062004457565b60405180910390a3336001600160a01b031660008051602062005b708339815191526001836040516200103592919062004447565b6000806200244662000db7565b90506000620024546200320e565b50905081620024695760009250505062000db2565b62001771826200147a83620017648862001d66565b6000546001600160a01b03163314620024ab5760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff1615620024d85760405162461bcd60e51b815260040162000abb9062004862565b600555565b60045481565b6000620011f48262003947565b60035460ff1681565b600154600160c01b900460ff1681565b600154600090600160a01b900460ff1615620025395760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790819055600160c01b900460ff16620025775760405162461bcd60e51b815260040162000abb9062004569565b6000620025836200320e565b50905060006200259262000db7565b90508381620025b557620025ad858463ffffffff620034f116565b9050620025d6565b8215620025d657620025d3836200147a878563ffffffff6200352016565b90505b620025e2338662003ac0565b620025ee868262003b2e565b600f5462002603908663ffffffff620034f116565b600f556040516001600160a01b0387169033907f18081cde2fa64894914e1080b98cca17bb6d1acf633e57f6e26ebdb945ad830b9062001ad6906001908a90879062004457565b600b5481565b6014546001600160a01b031681565b6006546001600160a01b03163314806200268357506000546001600160a01b031633145b620026a25760405162461bcd60e51b815260040162000abb90620046f6565b6003805461ff0019169055565b600f5481565b6006546001600160a01b0316331480620026d957506000546001600160a01b031633145b620026f85760405162461bcd60e51b815260040162000abb90620046f6565b6001805460ff60b81b19169055565b6000620016d3338362000e44565b600c5481565b6000546001600160a01b03163314620027485760405162461bcd60e51b815260040162000abb90620048d9565b6008546001600160a01b03838116911614156200281b5760115462002774908263ffffffff620034f116565b6008546040516370a0823160e01b81526001600160a01b03909116906370a0823190620027a6903090600401620043eb565b60206040518083038186803b158015620027bf57600080fd5b505afa158015620027d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620027fa919062004314565b10156200281b5760405162461bcd60e51b815260040162000abb90620047b1565b6009546001600160a01b0383811691161415620028ee5760125462002847908263ffffffff620034f116565b6009546040516370a0823160e01b81526001600160a01b03909116906370a082319062002879903090600401620043eb565b60206040518083038186803b1580156200289257600080fd5b505afa158015620028a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620028cd919062004314565b1015620028ee5760405162461bcd60e51b815260040162000abb90620044ca565b620019916001600160a01b038316338363ffffffff62003b6216565b600062000e383362000a8b565b600154600160b81b900460ff1681565b60155481565b6000546001600160a01b031633146200295a5760405162461bcd60e51b815260040162000abb90620048d9565b600154600160b01b900460ff1615620029875760405162461bcd60e51b815260040162000abb9062004862565b6003805461ff001916610100179055565b600062000e383362001200565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b600154600090600160c81b900460ff1662002a025760405162461bcd60e51b815260040162000abb90620047e8565b60035460ff1662002a275760405162461bcd60e51b815260040162000abb9062004acf565b6002543a111562002a4c5760405162461bcd60e51b815260040162000abb9062004a53565b600154600160a01b900460ff161562002a795760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b1790556000808080808062002a9e8b62003592565b9550955095509550955095508986111562002acd5760405162461bcd60e51b815260040162000abb90620049e2565b62002ad9338c62003739565b871562002b435760405163301bc67560e11b815233906360378cea9062002b0e906001908f908b908f908f906004016200446f565b600060405180830381600087803b15801562002b2957600080fd5b505af115801562002b3e573d6000803e3d6000fd5b505050505b62002b4f3387620037ef565b831562002bbb5760075462002b6e906001600160a01b03168562003739565b6007546040516001600160a01b03909116907fe4fed5362e2669c70e5da5a18942d1e617d8917f6adc0164d9668bd3a6d0cebe9062002bb290600190889062004447565b60405180910390a25b816010541462002bcb5760108290555b80600f541462002bdb57600f8190555b82600281111562002be857fe5b600e5460ff16600281111562002bfa57fe5b1462002c2057600e805484919060ff1916600183600281111562002c1a57fe5b02179055505b62002c2b8562003774565b336001600160a01b03167fe93ad76094f247c0dafc1c61adc2187de1ac2738f7a3b49cb20b2263420251a38c886040516200216a92919062004b14565b60115481565b600d5481565b600154600160a01b900460ff161562002ca15760405162461bcd60e51b815260040162000abb90620045d7565b6001805460ff60a01b1916600160a01b17905562002cc0338262003ac0565b6200183f8162003774565b600080600062002cda6200320e565b90925090506002600e5460ff16600281111562002cf357fe5b141562002d8657600062002d2562002d1c6012546200147a85866200352090919063ffffffff16565b60125462003926565b905062002d6462002d39600d54836200340d565b600d5462002d5790670de0b6b3a76400009063ffffffff620032e316565b9063ffffffff620034f116565b905062002d7b62002d7462001cd1565b8262003926565b935050505062000e3b565b600062002db162002da86011546200147a86876200352090919063ffffffff16565b60115462003926565b905062002dc562002d39600d54836200340d565b905062002d7b62002dd562001cd1565b826200340d565b600060115482111562002e035760405162461bcd60e51b815260040162000abb90620047b1565b6001600e5460ff16600281111562002e1757fe5b141562000dae57600062002e39601054601254620032e390919063ffffffff16565b9050600062002e4762001cd1565b9050600062002e57838362003926565b9050600062002e6c601154600d54846200343a565b9050600062000d7b62000d7188601154620032e390919063ffffffff16565b600154600160a81b900460ff161562002eb85760405162461bcd60e51b815260040162000abb9062004787565b6001805460ff60a81b1916600160a81b179055600080546001600160a01b03808d166001600160a01b031990921691909117808355604051911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600680546001600160a01b03199081166001600160a01b038c8116919091179092556007805482168b84161790556008805482168a841617908190556009805483168a8516179055600a8054909216888416179091556001805462ffffff60b81b1916815560028490556003805461010060ff1991821690931761ff00191692909217905560001960048190556005819055600b889055600c879055600d869055600e80549092169091556040519092919091169062002fd990620041b8565b62002fe59190620043eb565b604051809103906000f08015801562003002573d6000803e3d6000fd5b50601380546001600160a01b0319166001600160a01b039283161790556009546040519116906200303390620041b8565b6200303f9190620043eb565b604051809103906000f0801580156200305c573d6000803e3d6000fd5b50601480546001600160a01b0319166001600160a01b0392909216919091179055620030876200385d565b505050505050505050505050565b6000546001600160a01b03163314620030c25760405162461bcd60e51b815260040162000abb90620048d9565b7f6b04da3d58e4b37d99652babb3ea2bc25ce94379bfff3059f03d61b26c59e553600c5482604051620030f792919062004b14565b60405180910390a1600c819055620019916200385d565b6000546001600160a01b031633146200313b5760405162461bcd60e51b815260040162000abb90620048d9565b6001600160a01b038116620031645760405162461bcd60e51b815260040162000abb9062004813565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000620016d3338362001995565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a082319062001d99908590600401620043eb565b6000620016d3338362002254565b601254601154600091829182600e5460ff1660028111156200322c57fe5b14156200324557600f54601054935093505050620032df565b6002600e5460ff1660028111156200325957fe5b1415620032915760006200326c62003bc1565b600f5490915062003284848363ffffffff620034f116565b94509450505050620032df565b6001600e5460ff166002811115620032a557fe5b1415620032dc576000620032b862003c32565b9050620032cc828263ffffffff620034f116565b60105494509450505050620032df565b50505b9091565b600082821115620033085760405162461bcd60e51b815260040162000abb9062004764565b50900390565b601454604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90620033429085908590600401620043ff565b600060405180830381600087803b1580156200335d57600080fd5b505af115801562003372573d6000803e3d6000fd5b505050505050565b60095462003399906001600160a01b0316838363ffffffff62003b6216565b601254620033ae908263ffffffff620032e316565b6012555050565b601054620033ca908263ffffffff620034f116565b6010556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e906200340290839060009062004b04565b60405180910390a150565b6000670de0b6b3a76400006200342a848463ffffffff6200352016565b816200343257fe5b049392505050565b6000806200345a6200345360046200176487876200340d565b8662003c9a565b9050620034856200347f670de0b6b3a764000062001764848263ffffffff620034f116565b62003cbb565b90506000620034c0620034a783670de0b6b3a764000063ffffffff620032e316565b620034ba87600263ffffffff6200352016565b62003c9a565b9050620034e786620034e1670de0b6b3a76400008463ffffffff620034f116565b6200340d565b9695505050505050565b600082820183811015620035195760405162461bcd60e51b815260040162000abb90620048fc565b9392505050565b6000826200353157506000620016d3565b828202828482816200353f57fe5b0414620035195760405162461bcd60e51b815260040162000abb9062004a12565b6000806200356f8484620037c1565b9050828102840380156200358957506001019050620016d3565b509050620016d3565b600080600080600080620035a56200320e565b8093508192505050620035bb87600b546200340d565b9450620035cb87600c546200340d565b93506000620035e68562002d578a8963ffffffff620034f116565b90506000600e5460ff166002811115620035fc57fe5b14156200361b576200360f818362003cf6565b965060019350620036fb565b6001600e5460ff1660028111156200362f57fe5b141562003645576200360f816011548462003d3d565b6002600e5460ff1660028111156200365957fe5b1415620036fb5760006200367960125485620032e390919063ffffffff16565b905060006200369484601154620032e390919063ffffffff16565b905080831015620036ba57620036ae836012548762003d8d565b985060029550620036f8565b80831415620036d05781985060009550620036f8565b620036f1620014fe620036ea858463ffffffff620032e316565b8662003cf6565b9850600195505b50505b5091939550919395565b601354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90620033429085908590600401620043ff565b60085462003758906001600160a01b0316838363ffffffff62003b6216565b6011546200376d908263ffffffff620032e316565b6011555050565b600f5462003789908263ffffffff620034f116565b600f556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e906200340290839060019062004b04565b6000808211620037e55760405162461bcd60e51b815260040162000abb906200468b565b8183816200343257fe5b60055460125462003807908363ffffffff620034f116565b1115620038285760405162461bcd60e51b815260040162000abb906200461f565b60095462003848906001600160a01b031683308463ffffffff62003dcf16565b601254620033ae908263ffffffff620034f116565b6000670de0b6b3a7640000600d54106200388b5760405162461bcd60e51b815260040162000abb9062004a35565b6000600d5411620038b05760405162461bcd60e51b815260040162000abb9062004501565b670de0b6b3a7640000620038d2600c54600b54620034f190919063ffffffff16565b1062000e3b5760405162461bcd60e51b815260040162000abb90620048b4565b6014546040516340c10f1960e01b81526001600160a01b03909116906340c10f1990620033429085908590600401620043ff565b600062003519826200147a85670de0b6b3a764000063ffffffff6200352016565b6000806000806000806200395a6200320e565b92509050866000600e5460ff1660028111156200397357fe5b1415620039925762003986818462003df9565b96506002935062003a70565b6001600e5460ff166002811115620039a657fe5b141562003a5a576000620039c660115484620032e390919063ffffffff16565b90506000620039e185601254620032e390919063ffffffff16565b90508183101562003a1457620039fb836011548662003e3b565b9850600195508089111562003a0e578098505b62003a52565b8183141562003a2a578098506000955062003a52565b62003a4b6200152062003a44858563ffffffff620032e316565b8762003df9565b9850600295505b505062003a70565b62003a69816012548562003e5f565b9650600293505b62003a7e87600b546200340d565b955062003a8e87600c546200340d565b945062003ab48562003aa7898963ffffffff620032e316565b9063ffffffff620032e316565b96505091939550919395565b60045460115462003ad8908363ffffffff620034f116565b111562003af95760405162461bcd60e51b815260040162000abb906200472d565b60085462003b19906001600160a01b031683308463ffffffff62003dcf16565b6011546200376d908263ffffffff620034f116565b6013546040516340c10f1960e01b81526001600160a01b03909116906340c10f1990620033429085908590600401620043ff565b62003bbc8363a9059cbb60e01b848460405160240162003b84929190620043ff565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915262003e96565b505050565b60008062003bdd600f54601154620032e390919063ffffffff16565b9050600062003beb62001cd1565b9050600062003bfb83836200340d565b9050600062003c10601254600d54846200343a565b905062003c2960125482620032e390919063ffffffff16565b94505050505090565b60008062003c4e601054601254620032e390919063ffffffff16565b9050600062003c5c62001cd1565b9050600062003c6c838362003926565b9050600062003c81601154600d54846200343a565b905062003c2960115482620032e390919063ffffffff16565b6000620035198262000f0c85670de0b6b3a764000063ffffffff6200352016565b80600160028204015b8181101562003cf05780915060028182858162003cdd57fe5b04018162003ce757fe5b04905062003cc4565b50919050565b600081831062003d1a5760405162461bcd60e51b815260040162000abb90620047b1565b600062003d2e838563ffffffff620032e316565b90506200177183848362003f5a565b600082841062003d615760405162461bcd60e51b815260040162000abb90620047b1565b600062003d75848663ffffffff620032e316565b905062003d8483858362003f5a565b95945050505050565b60008062003d9a62001cd1565b9050600062003dbb848662003db0858a62003f7a565b6001600d5462003f9b565b9050620034e7818663ffffffff620032e316565b62003df3846323b872dd60e01b85858560405160240162003b849392919062004418565b50505050565b60008062003e0662001cd1565b9050600062003e27848562003e1c85896200340d565b6000600d5462003f9b565b905062003d84848263ffffffff620032e316565b60008062003e50848663ffffffff620034f116565b905062003d8483828662003f5a565b60008062003e6c62001cd1565b9050600062003e82848662003e1c858a6200340d565b9050620034e7858263ffffffff620032e316565b60006060836001600160a01b03168360405162003eb49190620043af565b6000604051808303816000865af19150503d806000811462003ef3576040519150601f19603f3d011682016040523d82523d6000602084013e62003ef8565b606091505b50915091508162003f1d5760405162461bcd60e51b815260040162000abb9062004656565b80511562003df3578080602001905181019062003f3b9190620042d9565b62003df35760405162461bcd60e51b815260040162000abb906200491f565b60008062003f6762001cd1565b905062003d8485858584600d5462004135565b600062003519670de0b6b3a764000062000f0c858563ffffffff6200352016565b60008062003fb4866200147a8962001764878c6200340d565b9050600062003fdd62003fd6670de0b6b3a76400008663ffffffff620032e316565b886200340d565b905060018515620040025762003ffa828863ffffffff620034f116565b915062004017565b62004014838863ffffffff620034f116565b92505b8282106200403d5762004031828463ffffffff620032e316565b91506001905062004056565b6200404f838363ffffffff620032e316565b9150600090505b60006200408d6200407c600462001764670de0b6b3a76400008a63ffffffff620032e316565b620034e18c620017648a8f6200340d565b9050620040aa6200347f8262002d57868063ffffffff6200352016565b90506000620040ce600262001764670de0b6b3a76400008a63ffffffff620032e316565b905060008315620040f357620040eb858463ffffffff620034f116565b905062004108565b62004105838663ffffffff620032e316565b90505b881562004129576200411b818362003926565b965050505050505062003d84565b6200411b818362003c9a565b6000806200414f84620034e1888863ffffffff620032e316565b90506000620041756200416e886200147a8b8063ffffffff6200352016565b8762003c9a565b905060006200418585836200340d565b9050620041ab83620034e18362002d57670de0b6b3a76400008a63ffffffff620032e316565b9998505050505050505050565b61102d8062004b2383390190565b80356001600160a01b0381168114620016d357600080fd5b600060208284031215620041f0578081fd5b620035198383620041c6565b6000806000806000806000806000806101408b8d0312156200421c578586fd5b620042288c8c620041c6565b9950620042398c60208d01620041c6565b98506200424a8c60408d01620041c6565b97506200425b8c60608d01620041c6565b96506200426c8c60808d01620041c6565b95506200427d8c60a08d01620041c6565b945060c08b0135935060e08b013592506101008b013591506101208b013590509295989b9194979a5092959850565b60008060408385031215620042bf578182fd5b620042cb8484620041c6565b946020939093013593505050565b600060208284031215620042eb578081fd5b8151801515811462003519578182fd5b6000602082840312156200430d578081fd5b5035919050565b60006020828403121562004326578081fd5b5051919050565b6000806000806060858703121562004343578384fd5b8435935060208501359250604085013567ffffffffffffffff8082111562004369578384fd5b81870188601f8201126200437b578485fd5b80359250818311156200438c578485fd5b8860208483010111156200439e578485fd5b959894975050602090940194505050565b60008251815b81811015620043d15760208186018101518583015201620043b5565b81811115620043e05782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b9115158252602082015260400190565b92151583526020830191909152604082015260600190565b6000861515825285602083015284604083015260806060830152826080830152828460a084013781830160a090810191909152601f909201601f19160101949350505050565b6020810160038310620044c457fe5b91905290565b6020808252601d908201527f444f444f5f51554f54455f42414c414e43455f4e4f545f454e4f554748000000604082015260600190565b60208082526003908201526204b3d360ec1b604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600a908201526904e4f5f424153455f4c560b41b604082015260600190565b60208082526018908201527f4445504f5349545f424153455f4e4f545f414c4c4f5745440000000000000000604082015260600190565b60208082526019908201527f4445504f5349545f51554f54455f4e4f545f414c4c4f57454400000000000000604082015260600190565b60208082526009908201526814915153951490539560ba1b604082015260600190565b6020808252600b908201526a04e4f5f51554f54455f4c560ac1b604082015260600190565b6020808252601c908201527f51554f54455f42414c414e43455f4c494d49545f455843454544454400000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526023908201527f4c505f51554f54455f4341504954414c5f42414c414e43455f4e4f545f454e4f6040820152620aa8e960eb1b606082015260800190565b60208082526017908201527f4e4f545f53555045525649534f525f4f525f4f574e4552000000000000000000604082015260600190565b6020808252601b908201527f424153455f42414c414e43455f4c494d49545f45584345454445440000000000604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b60208082526010908201526f1113d113d7d25392551250531256915160821b604082015260600190565b6020808252601c908201527f444f444f5f424153455f42414c414e43455f4e4f545f454e4f55474800000000604082015260600190565b602080825260119082015270151490511157d393d517d0531313d5d151607a1b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600e908201526d1411539053151657d15610d1515160921b604082015260600190565b6020808252600b908201526a1113d113d7d0d313d4d15160aa1b604082015260600190565b60208082526013908201527214d15313125391d7d393d517d0531313d5d151606a1b604082015260600190565b6020808252600b908201526a4645455f524154453e3d3160a81b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526022908201527f4c505f424153455f4341504954414c5f42414c414e43455f4e4f545f454e4f5560408201526108e960f31b606082015260800190565b6020808252601c908201527f53454c4c5f424153455f524543454956455f4e4f545f454e4f55474800000000604082015260600190565b602080825260169082015275084aab2be8482a68abe869ea6a8bea89e9ebe9aaa86960531b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b6020808252600490820152634b3e3d3160e01b604082015260600190565b60208082526010908201526f11d054d7d4149250d157d15610d1515160821b604082015260600190565b6020808252600f908201526e1053149150511657d0d31052535151608a1b604082015260600190565b6020808252600f908201526e1113d113d7d393d517d0d313d4d151608a1b604082015260600190565b602080825260129082015271109556525391d7d393d517d0531313d5d15160721b604082015260600190565b90815260200190565b9182521515602082015260400190565b91825260208201526040019056fe60c060405260036080819052620444c560ec1b60a0908152620000269160029190620000c6565b503480156200003457600080fd5b506040516200102d3803806200102d83398101604081905262000057916200016b565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600380546001600160a01b0319166001600160a01b03929092169190911790556200019b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010957805160ff191683800117855562000139565b8280016001018555821562000139579182015b82811115620001395782518255916020019190600101906200011c565b50620001479291506200014b565b5090565b6200016891905b8082111562000147576000815560010162000152565b90565b6000602082840312156200017d578081fd5b81516001600160a01b038116811462000194578182fd5b9392505050565b610e8280620001ab6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80634e71e0c8116100975780639dc29fac116100665780639dc29fac146101dd578063a9059cbb146101f0578063dd62ed3e14610203578063f2fde38b1461021657610100565b80634e71e0c8146101b257806370a08231146101ba5780638456db15146101cd57806395d89b41146101d557610100565b806318160ddd116100d357806318160ddd1461016057806323b872dd14610175578063313ce5671461018857806340c10f191461019d57610100565b806306fdde0314610105578063095ea7b31461012357806313096a411461014357806316048bc414610158575b600080fd5b61010d610229565b60405161011a9190610c89565b60405180910390f35b610136610131366004610b56565b6102f6565b60405161011a9190610c7e565b61014b610361565b60405161011a9190610c6a565b61014b610370565b61016861037f565b60405161011a9190610dcd565b610136610183366004610b16565b610385565b610190610509565b60405161011a9190610dd6565b6101b06101ab366004610b56565b61058b565b005b6101b061068e565b6101686101c8366004610ac7565b61071c565b61014b610737565b61010d610746565b6101b06101eb366004610b56565b6107d1565b6101366101fe366004610b56565b6108c8565b610168610211366004610ae2565b610986565b6101b0610224366004610ac7565b6109b1565b604080518082018252600f81526e5f444f444f5f4c505f544f4b454e5f60881b602082015260035482516306fdde0360e01b815292516060936001600160a01b03909216916306fdde03916004808301926000929190829003018186803b15801561029357600080fd5b505afa1580156102a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102cf9190810190610b80565b816040516020016102e1929190610c3c565b60405160208183030381529060405291505090565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061034f908690610dcd565b60405180910390a35060015b92915050565b6003546001600160a01b031681565b6000546001600160a01b031681565b60045481565b6001600160a01b0383166000908152600560205260408120548211156103c65760405162461bcd60e51b81526004016103bd90610d5b565b60405180910390fd5b6001600160a01b03841660009081526006602090815260408083203384529091529020548211156104095760405162461bcd60e51b81526004016103bd90610ce3565b6001600160a01b038416600090815260056020526040902054610432908363ffffffff610a5c16565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610467908363ffffffff610a8416565b6001600160a01b0380851660009081526005602090815260408083209490945591871681526006825282812033825290915220546104ab908363ffffffff610a5c16565b6001600160a01b038086166000818152600660209081526040808320338452909152908190209390935591519085169190600080516020610e2d833981519152906104f7908690610dcd565b60405180910390a35060019392505050565b6003546040805163313ce56760e01b815290516000926001600160a01b03169163313ce567916004808301926020929190829003018186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190610c1b565b905090565b6000546001600160a01b031633146105b55760405162461bcd60e51b81526004016103bd90610d87565b6001600160a01b0382166000908152600560205260409020546105de908263ffffffff610a8416565b6001600160a01b03831660009081526005602052604090205560045461060a908263ffffffff610a8416565b6004556040516001600160a01b038316907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688590610648908490610dcd565b60405180910390a2816001600160a01b031660006001600160a01b0316600080516020610e2d833981519152836040516106829190610dcd565b60405180910390a35050565b6001546001600160a01b031633146106b85760405162461bcd60e51b81526004016103bd90610cbc565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b031660009081526005602052604090205490565b6001546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107c95780601f1061079e576101008083540402835291602001916107c9565b820191906000526020600020905b8154815290600101906020018083116107ac57829003601f168201915b505050505081565b6000546001600160a01b031633146107fb5760405162461bcd60e51b81526004016103bd90610d87565b6001600160a01b038216600090815260056020526040902054610824908263ffffffff610a5c16565b6001600160a01b038316600090815260056020526040902055600454610850908263ffffffff610a5c16565b6004556040516001600160a01b038316907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59061088e908490610dcd565b60405180910390a260006001600160a01b0316826001600160a01b0316600080516020610e2d833981519152836040516106829190610dcd565b336000908152600560205260408120548211156108f75760405162461bcd60e51b81526004016103bd90610d5b565b33600090815260056020526040902054610917908363ffffffff610a5c16565b33600090815260056020526040808220929092556001600160a01b03851681522054610949908363ffffffff610a8416565b6001600160a01b038416600081815260056020526040908190209290925590513390600080516020610e2d8339815191529061034f908690610dcd565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000546001600160a01b031633146109db5760405162461bcd60e51b81526004016103bd90610d87565b6001600160a01b038116610a015760405162461bcd60e51b81526004016103bd90610d34565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600082821115610a7e5760405162461bcd60e51b81526004016103bd90610d11565b50900390565b600082820183811015610aa95760405162461bcd60e51b81526004016103bd90610daa565b9392505050565b80356001600160a01b038116811461035b57600080fd5b600060208284031215610ad8578081fd5b610aa98383610ab0565b60008060408385031215610af4578081fd5b610afe8484610ab0565b9150610b0d8460208501610ab0565b90509250929050565b600080600060608486031215610b2a578081fd5b8335610b3581610e14565b92506020840135610b4581610e14565b929592945050506040919091013590565b60008060408385031215610b68578182fd5b610b728484610ab0565b946020939093013593505050565b600060208284031215610b91578081fd5b815167ffffffffffffffff80821115610ba8578283fd5b81840185601f820112610bb9578384fd5b8051925081831115610bc9578384fd5b604051601f8401601f191681016020018381118282101715610be9578586fd5b604052838152818401602001871015610c00578485fd5b610c11846020830160208501610de4565b9695505050505050565b600060208284031215610c2c578081fd5b815160ff81168114610aa9578182fd5b60008351610c4e818460208801610de4565b8351908301610c61828260208801610de4565b01949350505050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602082528251806020840152610ca8816040850160208701610de4565b601f01601f19169190910160400192915050565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526014908201527308298989eae829c868abe9c9ea8be8a9c9eaa8e960631b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601290820152710848298829c868abe9c9ea8be8a9c9eaa8e960731b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b90815260200190565b60ff91909116815260200190565b60005b83811015610dff578181015183820152602001610de7565b83811115610e0e576000848401525b50505050565b6001600160a01b0381168114610e2957600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209cf0d1d887af2d1880badc337ef0f270c8675b4bfd794dc60bdaa78dec3bd19664736f6c63430006090033e89c586bd81ee35a18f7eac22a732b56e589a2821497cce12a0208828540a36d581f351e2bdb9fa9021bb2a24def989f06ac236f8a92aac14bcbc618ddf3826aa2646970667358221220a7c3f70cc23c3bc7f4459663ac4cd28de21ec73de76092c1f464dcf5d30c400d64736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "541:1472:2:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "541:1472:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6601:882:24;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1771:207:22;;;;;;;;;:::i;:::-;;9778:964:24;;;;;;;;;:::i;2949:133:27:-;;;:::i;2006:43::-;;;:::i;4161:1196:24:-;;;;;;;;;:::i;2587:104:22:-;;;:::i;2473:108::-;;;:::i;985:110::-;;;;;;;;;:::i;264:22:37:-;;;:::i;:::-;;;;;;;;1112:36:27;;;:::i;2043:97:22:-;;;:::i;1604:31:27:-;;;:::i;:::-;;;;;;;;4680:175:28;;;;;;;;;:::i;7489:835:24:-;;;;;;;;;:::i;3873:1392:26:-;;;:::i;1688:42:27:-;;;:::i;2758:97:22:-;;;:::i;1751:121:24:-;;;;;;;;;:::i;3243:135:27:-;;;:::i;9385:387:24:-;;;;;;;;;:::i;2361:106:22:-;;;:::i;2545:161:26:-;;;;;;;;;:::i;1202:27:27:-;;;:::i;1271:::-;;;:::i;1352:::-;;;:::i;912:32::-;;;:::i;963:225:37:-;;;:::i;3433:87:27:-;;;:::i;1101:274:22:-;;;;;;;;;:::i;2418:847:24:-;;;;;;;;;:::i;2808:1006:26:-;;;:::i;1626:139:22:-;;;;;;;;;:::i;2055:41:27:-;;;;;;;;;:::i;:::-;;;;;;;;772:20;;;:::i;1419:23::-;;;:::i;2682:108::-;;;:::i;769:94:22:-;;;;;;;;;:::i;2796:147:27:-;;;;;;;;;:::i;1771:30::-;;;:::i;292:26:37:-;;;:::i;3166:146:22:-;;;;;;;;;:::i;2146:93::-;;;:::i;1477:1499:28:-;;;;;;;;;:::i;1036:29:27:-;;;:::i;2861:93:22:-;;;:::i;869:110::-;;;;;;;;;:::i;5363:1175:24:-;;;;;;;;;:::i;9000:379::-;;;;;;;;;:::i;3318:150:22:-;;;;;;;;;:::i;1071:35:27:-;;;:::i;4485:189:28:-;;;;;;;;;:::i;1002:28:27:-;;;:::i;839:34::-;;;:::i;3271:831:24:-;;;;;;;;;:::i;1511:28:27:-;;;:::i;1849:36::-;;;:::i;2960:99:22:-;;;:::i;1641:41:27:-;;;:::i;2245:110:22:-;;;:::i;1878:125:24:-;;;;;;;;;:::i;1545:28:27:-;;;:::i;5324:581:26:-;;;;;;;;;:::i;2251:109:24:-;;;:::i;798:35:27:-;;;:::i;1957:43::-;;;:::i;3065:95:22:-;;;:::i;2138:107:24:-;;;:::i;1385:28:27:-;;;:::i;1808:35::-;;;:::i;879:27::-;;;:::i;2982:1447:28:-;;;;;;;;;:::i;1736:29:27:-;;;:::i;1579:18::-;;;:::i;2381:158:26:-;;;;;;;;;:::i;5504:799:25:-;;;:::i;10748:963:24:-;;;;;;;;;:::i;597:1414:2:-;;;;;;;;;:::i;1381:239:22:-;;;;;;;;;:::i;737:220:37:-;;;;;;;;;:::i;2009:123:24:-;;;;;;;;;:::i;3088:149:27:-;;;;;;;;;:::i;1622:123:24:-;;;;;;;;;:::i;4819:679:25:-;;;:::i;:::-;;;;;;;;;6601:882:24;515:9:39;;6720:7:24;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;1522:8:24;::::1;548:16:39::0;1522:8:24::1;1521:9;1513:33;;;;-1:-1:-1::0;;;1513:33:24::1;;;;;;;;;6743:22:::2;6768:29;6786:10;6768:17;:29::i;:::-;6743:54;;6807:15;6825:36;6850:10;6825:24;:36::i;:::-;6807:54;;6925:15;6943:39;6967:14;6943:23;:39::i;:::-;6925:57;;7011:14;7000:7;:25;;6992:52;;;;-1:-1:-1::0;;;6992:52:24::2;;;;;;;;;7107:27;::::0;:47:::2;::::0;7139:14;7107:47:::2;:31;:47;:::i;:::-;7077:27;:77:::0;7164:38:::2;7182:10;7194:7:::0;7164:17:::2;:38::i;:::-;7212:55;7235:2:::0;7239:27:::2;:14:::0;7258:7;7239:27:::2;:18;:27;:::i;:::-;7212:22;:55::i;:::-;7277:26;7295:7;7277:17;:26::i;:::-;7340:2;-1:-1:-1::0;;;;;7319:56:24::2;7328:10;-1:-1:-1::0;;;;;7319:56:24::2;-1:-1:-1::0;;;;;;;;;;;7344:5:24::2;7351:14;7367:7;7319:56;;;;;;;;;;;;;;;;;7404:10;-1:-1:-1::0;;;;;7390:41:24::2;-1:-1:-1::0;;;;;;;;;;;7416:5:24::2;7423:7;7390:41;;;;;;;;;;;;;;;;7449:27;:14:::0;7468:7;7449:27:::2;:18;:27;:::i;:::-;585:9:39::0;:17;;-1:-1:-1;;;;585:17:39;;;7442:34:24;6601:882;-1:-1:-1;;;;;6601:882:24:o;1771:207:22:-;2212:12:27;;-1:-1:-1;;;;;2212:12:27;2198:10;:26;;:51;;-1:-1:-1;2242:7:27;;-1:-1:-1;;;;;2242:7:27;2228:10;:21;2198:51;2190:87;;;;-1:-1:-1;;;2190:87:27;;;;;;;;;1869:56:22::1;1889:17;;1908:16;1869:56;;;;;;;;;;;;;;;;1935:17;:36:::0;1771:207::o;9778:964:24:-;9848:15;9893;;9883:6;:25;;9875:67;;;;-1:-1:-1;;;9875:67:24;;;;;;;;;9970:23;9956:10;;;;:37;;;;;;;;;9952:784;;;10009:17;10029:46;10048:26;;10029:14;;:18;;:46;;;;:::i;:::-;10009:66;;10089:13;10105:16;:14;:16::i;:::-;10089:32;;10135:18;10156:33;10172:9;10183:5;10156:15;:33::i;:::-;10135:54;;10203:19;10225:137;10284:15;;10317:3;;10338:10;10225:41;:137::i;:::-;10203:159;;10430:31;10464:149;10523:27;10543:6;10523:15;;:19;;:27;;;;:::i;:::-;10568:3;;10589:10;10464:41;:149::i;:::-;10430:183;-1:-1:-1;10634:52:24;10650:35;10430:183;10678:6;10650:35;:27;:35;:::i;:::-;10634:11;;:52;:15;:52;:::i;:::-;10627:59;;;;;;;;;9952:784;-1:-1:-1;10724:1:24;9952:784;9778:964;;;:::o;2949:133:27:-;3040:20;;3027:48;;;-1:-1:-1;;;3027:48:27;;;;3001:7;;-1:-1:-1;;;;;3040:20:27;;3027:46;;:48;;;;;;;;;;;;;;3040:20;3027:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:55;;2949:133;;:::o;2006:43::-;;;;:::o;4161:1196:24:-;515:9:39;;4293:7:24;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;1522:8:24;::::1;548:16:39::0;1522:8:24::1;1521:9;1513:33;;;;-1:-1:-1::0;;;1513:33:24::1;;;;;;;;;4348:19:::2;4371;:17;:19::i;:::-;4345:45;;;4400:25;4428:22;:20;:22::i;:::-;4400:50;;4488:1;4468:17;:21;4460:45;;;;-1:-1:-1::0;;;4460:45:24::2;;;;;;;;;4516:27;4546:50;4584:11:::0;4546:29:::2;:6:::0;4557:17;4546:29:::2;:10;:29;:::i;:::-;:37:::0;:50:::2;:37;:50;:::i;:::-;4516:80;;4650:36;4675:10;4650:24;:36::i;:::-;4627:19;:59;;4606:141;;;;-1:-1:-1::0;;;4606:141:24::2;;;;;;;;;4811:15;4829:31;4853:6;4829:23;:31::i;:::-;4811:49;;4888:6;4878:7;:16;4870:43;;;;-1:-1:-1::0;;;4870:43:24::2;;;;;;;;;4976:27;::::0;:39:::2;::::0;5008:6;4976:39:::2;:31;:39;:::i;:::-;4946:27;:69:::0;5025:50:::2;5043:10;5055:19:::0;5025:17:::2;:50::i;:::-;5085:47;5108:2:::0;5112:19:::2;:6:::0;5123:7;5112:19:::2;:10;:19;:::i;5085:47::-;5142:26;5160:7;5142:17;:26::i;:::-;-1:-1:-1::0;;;;;5184:73:24;::::2;5193:10;-1:-1:-1::0;;;;;;;;;;;5209:5:24::2;5216:19;:6:::0;5227:7;5216:19:::2;:10;:19;:::i;:::-;5237;5184:73;;;;;;;;;;;;;;;;;5286:10;-1:-1:-1::0;;;;;5272:41:24::2;-1:-1:-1::0;;;;;;;;;;;5298:5:24::2;5305:7;5272:41;;;;;;;;;;;;;;;;5331:19;:6:::0;5342:7;5331:19:::2;:10;:19;:::i;:::-;585:9:39::0;:17;;-1:-1:-1;;;;585:17:39;;;5324:26:24;4161:1196;-1:-1:-1;;;;;;;4161:1196:24:o;2587:104:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;2680:4:22::2;2655:29:::0;;-1:-1:-1;;;;2655:29:22::2;-1:-1:-1::0;;;2655:29:22::2;::::0;;2587:104::o;2473:108::-;2212:12:27;;-1:-1:-1;;;;;2212:12:27;2198:10;:26;;:51;;-1:-1:-1;2242:7:27;;-1:-1:-1;;;;;2242:7:27;2228:10;:21;2198:51;2190:87;;;;-1:-1:-1;;;2190:87:27;;;;;;;;;2544:22:22::1;:30:::0;;-1:-1:-1;;;;2544:30:22::1;::::0;;2473:108::o;985:110::-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;1060:12:22::1;:28:::0;;-1:-1:-1;;;;;;1060:28:22::1;-1:-1:-1::0;;;;;1060:28:22;;;::::1;::::0;;;::::1;::::0;;985:110::o;264:22:37:-;;;-1:-1:-1;;;;;264:22:37;;:::o;1112:36:27:-;;;;:::o;2043:97:22:-;2212:12:27;;-1:-1:-1;;;;;2212:12:27;2198:10;:26;;:51;;-1:-1:-1;2242:7:27;;-1:-1:-1;;;;;2242:7:27;2228:10;:21;2198:51;2190:87;;;;-1:-1:-1;;;2190:87:27;;;;;;;;;2110:15:22::1;:23:::0;;-1:-1:-1;;;;2110:23:22::1;::::0;;2043:97::o;1604:31:27:-;;;;;;:::o;4680:175:28:-;4746:16;4797:26;4816:6;4797:18;:26::i;:::-;-1:-1:-1;4774:49:28;;4680:175;-1:-1:-1;;;;;;4680:175:28:o;7489:835:24:-;515:9:39;;7575:7:24;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;1522:8:24;::::1;548:16:39::0;1522:8:24::1;1521:9;1513:33;;;;-1:-1:-1::0;;;1513:33:24::1;;;;;;;;;7594:22:::2;7619:28;7636:10;7619:16;:28::i;:::-;7594:53;;7657:15;7675:35;7699:10;7675:23;:35::i;:::-;7657:53;;7774:15;7792:38;7815:14;7792:22;:38::i;:::-;7774:56;;7859:14;7848:7;:25;;7840:52;;;;-1:-1:-1::0;;;7840:52:24::2;;;;;;;;;7954:26;::::0;:46:::2;::::0;7985:14;7954:46:::2;:30;:46;:::i;:::-;7925:26;:75:::0;8010:37:::2;8027:10;8039:7:::0;8010:16:::2;:37::i;:::-;8057:54;8079:2:::0;8083:27:::2;:14:::0;8102:7;8083:27:::2;:18;:27;:::i;:::-;8057:21;:54::i;:::-;8121:25;8138:7;8121:16;:25::i;:::-;8183:2;-1:-1:-1::0;;;;;8162:55:24::2;8171:10;-1:-1:-1::0;;;;;8162:55:24::2;-1:-1:-1::0;;;;;;;;;;;8187:4:24::2;8193:14;8209:7;8162:55;;;;;;;;;;;;;;;;;8246:10;-1:-1:-1::0;;;;;8232:40:24::2;-1:-1:-1::0;;;;;;;;;;;8258:4:24::2;8264:7;8232:40;;;;;;;;3873:1392:26::0;515:9:39;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;3940:8:26;::::1;548:16:39::0;3940:8:26::1;3932:36;;;;-1:-1:-1::0;;;3932:36:26::1;;;;;;;;;3997:10;3987:21;::::0;;;:9:::1;:21;::::0;;;;;::::1;;3986:22;3978:50;;;;-1:-1:-1::0;;;3978:50:26::1;;;;;;;;;4048:10;4038:21;::::0;;;:9:::1;:21;::::0;;;;:28;;-1:-1:-1;;4038:28:26::1;4062:4;4038:28;::::0;;:21;4100:36:::1;::::0;:24:::1;:36::i;:::-;4077:59;;4146:19;4168:35;4192:10;4168:23;:35::i;:::-;4146:57:::0;-1:-1:-1;4214:19:26::1;4251:16:::0;;4247:134:::1;;4297:73;4347:22;:20;:22::i;:::-;4297:27;::::0;:45:::1;::::0;4329:12;4297:45:::1;:31;:45;:::i;:::-;:49:::0;:73:::1;:49;:73;:::i;:::-;4283:87;;4247:134;4390:18;4426:15:::0;;4422:129:::1;;4470:70;4518:21;:19;:21::i;:::-;4470:26;::::0;:43:::1;::::0;4501:11;4470:43:::1;:30;:43;:::i;:70::-;4457:83;;4422:129;4591:27;::::0;:44:::1;::::0;4623:11;4591:44:::1;:31;:44;:::i;:::-;4561:27;:74:::0;4674:26:::1;::::0;:42:::1;::::0;4705:10;4674:42:::1;:30;:42;:::i;:::-;4645:26;:71;;;;4741:75;4757:58;4773:11;4786:28;;4757:15;:58::i;:::-;4741:11:::0;;:75:::1;:15;:75;:::i;:::-;4727:89;;4839:75;4854:59;4870:12;4884:28;;4854:15;:59::i;:::-;4839:10:::0;;:75:::1;:14;:75;:::i;:::-;4826:88;;4925:45;4947:10;4959;4925:21;:45::i;:::-;4980:47;5003:10;5015:11;4980:22;:47::i;:::-;5051:20;::::0;5038:64:::1;::::0;-1:-1:-1;;;5038:64:26;;-1:-1:-1;;;;;5051:20:26;;::::1;::::0;5038:39:::1;::::0;:64:::1;::::0;5078:10:::1;::::0;5090:11;;5038:64:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5125:21:26::1;::::0;5112:66:::1;::::0;-1:-1:-1;;;5112:66:26;;-1:-1:-1;;;;;5125:21:26;;::::1;::::0;-1:-1:-1;5112:40:26::1;::::0;-1:-1:-1;5112:66:26::1;::::0;5153:10:::1;::::0;5165:12;;5112:66:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5206:10;-1:-1:-1::0;;;;;5194:48:26::1;;5218:10;5230:11;5194:48;;;;;;;;;;;;;;;;5252:7;;;;585:9:39::0;:17;;-1:-1:-1;;;;585:17:39;;;3873:1392:26:o;1688:42:27:-;;;;:::o;2758:97:22:-;2212:12:27;;-1:-1:-1;;;;;2212:12:27;2198:10;:26;;:51;;-1:-1:-1;2242:7:27;;-1:-1:-1;;;;;2242:7:27;2228:10;:21;2198:51;2190:87;;;;-1:-1:-1;;;2190:87:27;;;;;;;;;2824:16:22::1;:24:::0;;-1:-1:-1;;2824:24:22::1;::::0;;2758:97::o;1751:121:24:-;1806:7;1832:33;1846:10;1858:6;1832:13;:33::i;:::-;1825:40;1751:121;-1:-1:-1;;1751:121:24:o;3243:135:27:-;3335:21;;3322:49;;;-1:-1:-1;;;3322:49:27;;;;3296:7;;-1:-1:-1;;;;;3335:21:27;;3322:47;;:49;;;;;;;;;;;;;;3335:21;3322:49;;;;;;;;;;9385:387:24;9445:17;9474:25;9502:22;:20;:22::i;:::-;9474:50;;9537:19;9560;:17;:19::i;:::-;9534:45;-1:-1:-1;;9593:22:24;9589:61;;9638:1;9631:8;;;;;;9589:61;9671:68;9721:17;9671:45;9704:11;9671:28;9696:2;9671:24;:28::i;:::-;:32;:45;:32;:45;:::i;:68::-;9659:80;9385:387;-1:-1:-1;;;;9385:387:24:o;2361:106:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;2456:4:22::2;2430:30:::0;;-1:-1:-1;;;;2430:30:22::2;-1:-1:-1::0;;;2430:30:22::2;::::0;;2361:106::o;2545:161:26:-;515:9:39;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;2623:41:26::1;2645:10;2657:6:::0;2623:21:::1;:41::i;:::-;2674:25;2692:6;2674:17;:25::i;:::-;-1:-1:-1::0;585:9:39;:17;;-1:-1:-1;;;;585:17:39;;;2545:161:26:o;1202:27:27:-;;;-1:-1:-1;;;;;1202:27:27;;:::o;1271:::-;;;-1:-1:-1;;;;;1271:27:27;;:::o;1352:::-;;;-1:-1:-1;;;;;1352:27:27;;:::o;912:32::-;;;;:::o;963:225:37:-;1030:11;;-1:-1:-1;;;;;1030:11:37;1016:10;:25;1008:51;;;;-1:-1:-1;;;1008:51:37;;;;;;;;;1104:11;;;1095:7;;1074:42;;-1:-1:-1;;;;;1104:11:37;;;;1095:7;;;;1074:42;;;1136:11;;;;1126:21;;-1:-1:-1;;;;;;1126:21:37;;;-1:-1:-1;;;;;1136:11:37;;1126:21;;;;1157:24;;;963:225::o;3433:87:27:-;3501:3;3433:87;:::o;1101:274:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;1209:74:22::1;1240:13;;1255:27;1209:74;;;;;;;;;;;;;;;;1293:13;:43:::0;;;1346:22:::1;:20;:22::i;:::-;;1101:274:::0;:::o;2418:847:24:-;515:9:39;;2555:7:24;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;1278:23:24;::::1;548:16:39::0;1278:23:24::1;1270:61;;;;-1:-1:-1::0;;;1270:61:24::1;;;;;;;;;2581:19:::2;2604;:17;:19::i;:::-;2578:45;;;2633:25;2661:22;:20;:22::i;:::-;2633:50:::0;-1:-1:-1;2711:6:24;2731:22;2727:252:::2;;2837:23;:6:::0;2848:11;2837:23:::2;:10;:23;:::i;:::-;2827:33;;2727:252;;;2881:15:::0;;2877:102:::2;;2922:46;2956:11:::0;2922:29:::2;:6:::0;2933:17;2922:29:::2;:10;:29;:::i;:46::-;2912:56;;2877:102;3011:41;3033:10;3045:6;3011:21;:41::i;:::-;3062:30;3080:2;3084:7;3062:17;:30::i;:::-;3132:27;::::0;:39:::2;::::0;3164:6;3132:39:::2;:31;:39;:::i;:::-;3102:27;:69:::0;3187:47:::2;::::0;-1:-1:-1;;;;;3187:47:24;::::2;::::0;3195:10:::2;::::0;3187:47:::2;::::0;::::2;::::0;3211:5:::2;::::0;3218:6;;3226:7;;3187:47:::2;;;;;;;;;;585:9:39::0;:17;;-1:-1:-1;;;;585:17:39;;;3251:7:24;2418:847;-1:-1:-1;;;;;2418:847:24:o;2808:1006:26:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;2885:4:26::2;2874:15:::0;;-1:-1:-1;;;;;;;;2874:15:26;;::::2;-1:-1:-1::0;;;2874:15:26::2;2980:23:::0;;;2874:15;3040:21:::2;:19;:21::i;:::-;3013:48;;3071:25;3099:22;:20;:22::i;:::-;3071:50;;3154:27;;3136:15;;:45;3132:316;;;3197:18;3218:48;3238:27;;3218:15;;:19;;:48;;;;:::i;:::-;3197:69;;3311:50;3332:10;3344:16;3311:20;:50::i;:::-;3280:28;:81:::0;-1:-1:-1;3132:316:26::2;;;3422:15;::::0;3392:27:::2;:45:::0;3132:316:::2;3479:26;;3462:14;;:43;3458:309;;;3521:17;3541:46;3560:26;;3541:14;;:18;;:46;;;;:::i;:::-;3521:66;;3632:50;3653:9;3664:17;3632:20;:50::i;:::-;3601:28;:81:::0;-1:-1:-1;3458:309:26::2;;;3742:14;::::0;3713:26:::2;:43:::0;3458:309:::2;-1:-1:-1::0;;3777:10:26::2;:30:::0;;-1:-1:-1;;3777:30:26::2;::::0;;2808:1006::o;1626:139:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;1688:18:22::1;1696:3;;1701:4;1688:18;;;;;;;;;;;;;;;;1716:3;:10:::0;;;1736:22:::1;:20;:22::i;2055:41:27:-:0;;;;;;;;;;;;;;;:::o;772:20::-;;;-1:-1:-1;;;772:20:27;;;;;:::o;1419:23::-;;;-1:-1:-1;;;;;1419:23:27;;:::o;2682:108::-;2763:8;;2755:28;;;-1:-1:-1;;;2755:28:27;;;;2729:7;;-1:-1:-1;;;;;2763:8:27;;2755:26;;:28;;;;;;;;;;;;;;2763:8;2755:28;;;;;;;;;;769:94:22;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;836:8:22::1;:20:::0;;-1:-1:-1;;;;;;836:20:22::1;-1:-1:-1::0;;;;;836:20:22;;;::::1;::::0;;;::::1;::::0;;769:94::o;2796:147:27:-;2901:20;;2888:48;;-1:-1:-1;;;2888:48:27;;2862:7;;-1:-1:-1;;;;;2901:20:27;;2888:44;;:48;;2933:2;;2888:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1771:30;;;;:::o;292:26:37:-;;;-1:-1:-1;;;;;292:26:37;;:::o;3166:146:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;3263:20:22::2;:42:::0;3166:146::o;2146:93::-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;2228:4:22::2;2210:22:::0;;-1:-1:-1;;;;2210:22:22::2;-1:-1:-1::0;;;2210:22:22::2;::::0;;2146:93::o;1477:1499:28:-;1031:15;;1669:7;;-1:-1:-1;;;1031:15:28;;;;1023:45;;;;-1:-1:-1;;;1023:45:28;;;;;;;;;1242:17:::1;::::0;::::1;::::0;::::1;;;1234:49;;;;-1:-1:-1::0;;;1234:49:28::1;;;;;;;;;1365:17:::2;;1350:11;:32;;1342:61;;;;-1:-1:-1::0;;;1342:61:28::2;;;;;;;;;515:9:39::3;::::0;-1:-1:-1;;;515:9:39;::::3;;;514:10;506:32;;;;-1:-1:-1::0;;;506:32:39::3;;;;;;;;;560:4;548:16:::0;;-1:-1:-1;;;;548:16:39::3;-1:-1:-1::0;;;548:16:39::3;::::0;;;;;;;;1931:27:28::4;1951:6:::0;1931:19:::4;:27::i;:::-;1711:247;;;;;;;;;;;;1992:15;1976:12;:31;;1968:72;;;;-1:-1:-1::0;;;1968:72:28::4;;;;;;;;;2076:48;2099:10;2111:12;2076:22;:48::i;:::-;2138:15:::0;;2134:113:::4;;2169:67;::::0;-1:-1:-1;;;2169:67:28;;2181:10:::4;::::0;2169:32:::4;::::0;:67:::4;::::0;2202:5:::4;::::0;2209:6;;2217:12;;2231:4;;;;2169:67:::4;;;;;;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;2134:113;2256:40;2277:10;2289:6;2256:20;:40::i;:::-;2310:15:::0;;2306:165:::4;;2364:12;::::0;2341:48:::4;::::0;-1:-1:-1;;;;;2364:12:28::4;2378:10:::0;2341:22:::4;:48::i;:::-;2428:12;::::0;2408:52:::4;::::0;-1:-1:-1;;;;;2428:12:28;;::::4;::::0;2408:52:::4;::::0;::::4;::::0;2428:12:::4;::::0;2449:10;;2408:52:::4;;;;;;;;;;2306:165;2541:14;2510:27;;:45;2506:120;;2571:27;:44:::0;;;2506:120:::4;2669:13;2639:26;;:43;2635:116;;2698:26;:42:::0;;;2635:116:::4;2778:10;2764:24;;;;;;;;:10;::::0;::::4;;:24;::::0;::::4;;;;;;;2760:78;;2804:10;:23:::0;;2817:10;;2804;-1:-1:-1;;2804:23:28::4;::::0;2817:10;2804:23:::4;::::0;::::4;;;;;;;;;;;2760:78;2848:29;2866:10;2848:17;:29::i;:::-;2906:10;-1:-1:-1::0;;;;;2892:47:28::4;;2918:6;2926:12;2892:47;;;;;;;;;;;;;;;;-1:-1:-1::0;;585:9:39::3;:17:::0;;-1:-1:-1;;;;585:17:39::3;::::0;;-1:-1:-1;2957:12:28;;1477:1499;-1:-1:-1;;;;;;;1477:1499:28:o;1036:29:27:-;;;;;;;;;:::o;2861:93:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;2924:16:22::2;:23:::0;;-1:-1:-1;;2924:23:22::2;2943:4;2924:23;::::0;;2861:93::o;869:110::-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;944:12:22::1;:28:::0;;-1:-1:-1;;;;;;944:28:22::1;-1:-1:-1::0;;;;;944:28:22;;;::::1;::::0;;;::::1;::::0;;869:110::o;5363:1175:24:-;515:9:39;;5494:7:24;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;1522:8:24;::::1;548:16:39::0;1522:8:24::1;1521:9;1513:33;;;;-1:-1:-1::0;;;1513:33:24::1;;;;;;;;;5547:18:::2;5571:19;:17;:19::i;:::-;5546:44;;;5600:24;5627:21;:19;:21::i;:::-;5600:48;;5685:1;5666:16;:20;5658:43;;;;-1:-1:-1::0;;;5658:43:24::2;;;;;;;;;5712:26;5741:48;5778:10:::0;5741:28:::2;:6:::0;5752:16;5741:28:::2;:10;:28;:::i;:48::-;5712:77;;5842:35;5866:10;5842:23;:35::i;:::-;5820:18;:57;;5799:138;;;;-1:-1:-1::0;;;5799:138:24::2;;;;;;;;;6001:15;6019:30;6042:6;6019:22;:30::i;:::-;6001:48;;6078:6;6067:7;:17;;6059:44;;;;-1:-1:-1::0;;;6059:44:24::2;;;;;;;;;6165:26;::::0;:38:::2;::::0;6196:6;6165:38:::2;:30;:38;:::i;:::-;6136:26;:67:::0;6213:48:::2;6230:10;6242:18:::0;6213:16:::2;:48::i;:::-;6271:46;6293:2:::0;6297:19:::2;:6:::0;6308:7;6297:19:::2;:10;:19;:::i;6271:46::-;6327:25;6344:7;6327:16;:25::i;:::-;-1:-1:-1::0;;;;;6368:71:24;::::2;6377:10;-1:-1:-1::0;;;;;;;;;;;6393:4:24::2;6399:19;:6:::0;6410:7;6399:19:::2;:10;:19;:::i;:::-;6420:18;6368:71;;;;;;;;;;;;;;;;;6468:10;-1:-1:-1::0;;;;;6454:40:24::2;-1:-1:-1::0;;;;;;;;;;;6480:4:24::2;6486:7;6454:40;;;;;;;;9000:379:::0;9059:17;9088:24;9115:21;:19;:21::i;:::-;9088:48;;9147:18;9171:19;:17;:19::i;:::-;-1:-1:-1;9146:44:24;-1:-1:-1;9204:21:24;9200:60;;9248:1;9241:8;;;;;;9200:60;9281:65;9329:16;9281:43;9313:10;9281:27;9305:2;9281:23;:27::i;3318:150:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;3417:21:22::2;:44:::0;3318:150::o;1071:35:27:-;;;;:::o;4485:189:28:-;4552:20;4611:27;4631:6;4611:19;:27::i;1002:28:27:-;;;;;;:::o;839:34::-;;;-1:-1:-1;;;839:34:27;;;;;:::o;3271:831:24:-;515:9:39;;3406:7:24;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;1403:22:24;::::1;548:16:39::0;1403:22:24::1;1395:59;;;;-1:-1:-1::0;;;1395:59:24::1;;;;;;;;;3430:18:::2;3454:19;:17;:19::i;:::-;3429:44;;;3483:24;3510:21;:19;:21::i;:::-;3483:48:::0;-1:-1:-1;3559:6:24;3579:21;3575:246:::2;;3683:22;:6:::0;3694:10;3683:22:::2;:10;:22;:::i;:::-;3673:32;;3575:246;;;3726:14:::0;;3722:99:::2;;3766:44;3799:10:::0;3766:28:::2;:6:::0;3777:16;3766:28:::2;:10;:28;:::i;:44::-;3756:54;;3722:99;3853:40;3874:10;3886:6;3853:20;:40::i;:::-;3903:29;3920:2;3924:7;3903:16;:29::i;:::-;3971:26;::::0;:38:::2;::::0;4002:6;3971:38:::2;:30;:38;:::i;:::-;3942:26;:67:::0;4025:46:::2;::::0;-1:-1:-1;;;;;4025:46:24;::::2;::::0;4033:10:::2;::::0;4025:46:::2;::::0;::::2;::::0;4049:4:::2;::::0;4055:6;;4063:7;;4025:46:::2;;1511:28:27::0;;;;:::o;1849:36::-;;;-1:-1:-1;;;;;1849:36:27;;:::o;2960:99:22:-;2212:12:27;;-1:-1:-1;;;;;2212:12:27;2198:10;:26;;:51;;-1:-1:-1;2242:7:27;;-1:-1:-1;;;;;2242:7:27;2228:10;:21;2198:51;2190:87;;;;-1:-1:-1;;;2190:87:27;;;;;;;;;3027:17:22::1;:25:::0;;-1:-1:-1;;3027:25:22::1;::::0;;2960:99::o;1641:41:27:-;;;;:::o;2245:110:22:-;2212:12:27;;-1:-1:-1;;;;;2212:12:27;2198:10;:26;;:51;;-1:-1:-1;2242:7:27;;-1:-1:-1;;;;;2242:7:27;2228:10;:21;2198:51;2190:87;;;;-1:-1:-1;;;2190:87:27;;;;;;;;;2317:23:22::1;:31:::0;;-1:-1:-1;;;;2317:31:22::1;::::0;;2245:110::o;1878:125:24:-;1935:7;1961:35;1977:10;1989:6;1961:15;:35::i;1545:28:27:-;;;;:::o;5324:581:26:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;5415:12:26::1;::::0;-1:-1:-1;;;;;5406:21:26;;::::1;5415:12:::0;::::1;5406:21;5402:214;;;5517:14;::::0;:26:::1;::::0;5536:6;5517:26:::1;:18;:26;:::i;:::-;5475:12;::::0;5468:45:::1;::::0;-1:-1:-1;;;5468:45:26;;-1:-1:-1;;;;;5475:12:26;;::::1;::::0;5468:30:::1;::::0;:45:::1;::::0;5507:4:::1;::::0;5468:45:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:75;;5443:162;;;;-1:-1:-1::0;;;5443:162:26::1;;;;;;;;;5638:13;::::0;-1:-1:-1;;;;;5629:22:26;;::::1;5638:13:::0;::::1;5629:22;5625:218;;;5742:15;::::0;:27:::1;::::0;5762:6;5742:27:::1;:19;:27;:::i;:::-;5699:13;::::0;5692:46:::1;::::0;-1:-1:-1;;;5692:46:26;;-1:-1:-1;;;;;5699:13:26;;::::1;::::0;5692:31:::1;::::0;:46:::1;::::0;5732:4:::1;::::0;5692:46:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;;5667:165;;;;-1:-1:-1::0;;;5667:165:26::1;;;;;;;;;5852:46;-1:-1:-1::0;;;;;5852:26:26;::::1;5879:10;5891:6:::0;5852:46:::1;:26;:46;:::i;2251:109:24:-:0;2297:7;2323:30;2342:10;2323:18;:30::i;798:35:27:-;;;-1:-1:-1;;;798:35:27;;;;;:::o;1957:43::-;;;;:::o;3065:95:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;3129:17:22::2;:24:::0;;-1:-1:-1;;3129:24:22::2;;;::::0;;3065:95::o;2138:107:24:-;2183:7;2209:29;2227:10;2209:17;:29::i;1385:28:27:-;;;-1:-1:-1;;;;;1385:28:27;;:::o;1808:35::-;;;-1:-1:-1;;;;;1808:35:27;;:::o;879:27::-;;;-1:-1:-1;;;879:27:27;;;;;:::o;2982:1447:28:-;1031:15;;3168:7;;-1:-1:-1;;;1031:15:28;;;;1023:45;;;;-1:-1:-1;;;1023:45:28;;;;;;;;;1135:16:::1;::::0;::::1;;1127:47;;;;-1:-1:-1::0;;;1127:47:28::1;;;;;;;;;1365:17:::2;;1350:11;:32;;1342:61;;;;-1:-1:-1::0;;;1342:61:28::2;;;;;;;;;515:9:39::3;::::0;-1:-1:-1;;;515:9:39;::::3;;;514:10;506:32;;;;-1:-1:-1::0;;;506:32:39::3;;;;;;;;;560:4;548:16:::0;;-1:-1:-1;;;;548:16:39::3;-1:-1:-1::0;;;548:16:39::3;::::0;;;;;;;;3424:26:28::4;3443:6:::0;3424:18:::4;:26::i;:::-;3210:240;;;;;;;;;;;;3480:11;3468:8;:23;;3460:58;;;;-1:-1:-1::0;;;3460:58:28::4;;;;;;;;;3554:41;3576:10;3588:6;3554:21;:41::i;:::-;3609:15:::0;;3605:108:::4;;3640:62;::::0;-1:-1:-1;;;3640:62:28;;3652:10:::4;::::0;3640:32:::4;::::0;:62:::4;::::0;3673:4:::4;::::0;3679:6;;3687:8;;3697:4;;;;3640:62:::4;;;;;;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;3605:108;3722:43;3744:10;3756:8;3722:21;:43::i;:::-;3779:14:::0;;3775:160:::4;;3831:12;::::0;3809:46:::4;::::0;-1:-1:-1;;;;;3831:12:28::4;3845:9:::0;3809:21:::4;:46::i;:::-;3894:12;::::0;3874:50:::4;::::0;-1:-1:-1;;;;;3894:12:28;;::::4;::::0;3874:50:::4;::::0;::::4;::::0;3894:12;;3914:9;;3874:50:::4;;;;;;;;;;3775:160;4005:14;3974:27;;:45;3970:120;;4035:27;:44:::0;;;3970:120:::4;4133:13;4103:26;;:43;4099:116;;4162:26;:42:::0;;;4099:116:::4;4242:10;4228:24;;;;;;;;:10;::::0;::::4;;:24;::::0;::::4;;;;;;;4224:78;;4268:10;:23:::0;;4281:10;;4268;-1:-1:-1;;4268:23:28::4;::::0;4281:10;4268:23:::4;::::0;::::4;;;;;;;;;;;4224:78;4312:27;4329:9;4312:16;:27::i;:::-;4367:10;-1:-1:-1::0;;;;;4354:42:28::4;;4379:6;4387:8;4354:42;;;;;;;;1736:29:27::0;;;;:::o;1579:18::-;;;;:::o;2381:158:26:-;515:9:39;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;2458:40:26::1;2479:10;2491:6:::0;2458:20:::1;:40::i;:::-;2508:24;2525:6;2508:16;:24::i;5504:799:25:-:0;5548:16;5577:18;5597:19;5620;:17;:19::i;:::-;5576:63;;-1:-1:-1;5576:63:25;-1:-1:-1;5667:23:25;5653:10;;;;:37;;;;;;;;;5649:648;;;5706:9;5718:134;5756:49;5789:15;;5756:28;5772:11;5756;:15;;:28;;;;:::i;:49::-;5823:15;;5718:20;:134::i;:::-;5706:146;;5870:53;5899:23;5915:3;;5920:1;5899:15;:23::i;:::-;5890:3;;5870:24;;379:6:36;;5870:24:25;:19;:24;:::i;:::-;:28;:53;:28;:53;:::i;:::-;5866:57;;5944:41;5965:16;:14;:16::i;:::-;5983:1;5944:20;:41::i;:::-;5937:48;;;;;;;5649:648;6016:9;6028:130;6066:46;6097:14;;6066:26;6081:10;6066;:14;;:26;;;;:::i;:46::-;6130:14;;6028:20;:130::i;:::-;6016:142;;6176:53;6205:23;6221:3;;6226:1;6205:15;:23::i;6176:53::-;6172:57;;6250:36;6266:16;:14;:16::i;:::-;6284:1;6250:15;:36::i;10748:963:24:-;10817:15;10862:14;;10852:6;:24;;10844:65;;;;-1:-1:-1;;;10844:65:24;;;;;;;;;10937:23;10923:10;;;;:37;;;;;;;;;10919:786;;;10976:18;10997:48;11017:27;;10997:15;;:19;;:48;;;;:::i;:::-;10976:69;;11059:13;11075:16;:14;:16::i;:::-;11059:32;;11105:18;11126:39;11147:10;11159:5;11126:20;:39::i;:::-;11105:60;;11179:18;11200:136;11259:14;;11291:3;;11312:10;11200:41;:136::i;:::-;11179:157;;11403:30;11436:148;11495:26;11514:6;11495:14;;:18;;:26;;;;:::i;597:1414:2:-;907:13;;-1:-1:-1;;;907:13:2;;;;906:14;898:43;;;;-1:-1:-1;;;898:43:2;;;;;;;;;967:4;951:20;;-1:-1:-1;;;;951:20:2;-1:-1:-1;;;951:20:2;;;;1005:15;;-1:-1:-1;;;;;1005:15:2;;;-1:-1:-1;;;;;;1005:15:2;;;;;;;;;;1035:41;;1068:7;;;951:20;1035:41;;951:20;;1035:41;1087:12;:25;;-1:-1:-1;;;;;;1087:25:2;;;-1:-1:-1;;;;;1087:25:2;;;;;;;;;;1122:12;:25;;;;;;;;;;1157:12;:24;;;;;;;;;;;;1191:13;:26;;;;;;;;;;1227:8;:17;;;;;;;;;;;;-1:-1:-1;1255:30:2;;-1:-1:-1;;;;1336:23:2;;;1369:17;:33;;;1466:16;:23;;1087:25;-1:-1:-1;;1466:23:2;;;;;;-1:-1:-1;;1499:24:2;;;;;;;-1:-1:-1;;;1627:30:2;;;-1:-1:-1;1667:31:2;;;1709:13;:25;;;1744:13;:25;;;1779:3;:7;;;1796:10;:30;;;;;;;;1868:29;;-1:-1:-1;;1884:12:2;;;;;1868:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1837:20:2;:61;;-1:-1:-1;;;;;;1837:61:2;-1:-1:-1;;;;;1837:61:2;;;;;;1956:13;;1940:30;;1956:13;;;1940:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1908:21:2;:63;;-1:-1:-1;;;;;;1908:63:2;-1:-1:-1;;;;;1908:63:2;;;;;;;;;;1982:22;:20;:22::i;:::-;;597:1414;;;;;;;;;;;:::o;1381:239:22:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;1475:60:22::1;1499:13;;1514:20;1475:60;;;;;;;;;;;;;;;;1545:13;:36:::0;;;1591:22:::1;:20;:22::i;737:220:37:-:0;648:7;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;-1:-1:-1;;;;;819:22:37;::::1;811:48;;;;-1:-1:-1::0;;;811:48:37::1;;;;;;;;;900:7;::::0;;874:44:::1;::::0;-1:-1:-1;;;;;874:44:37;;::::1;::::0;900:7;::::1;::::0;874:44:::1;::::0;::::1;928:11;:22:::0;;-1:-1:-1;;;;;;928:22:37::1;-1:-1:-1::0;;;;;928:22:37;;;::::1;::::0;;;::::1;::::0;;737:220::o;2009:123:24:-;2065:7;2091:34;2106:10;2118:6;2091:14;:34::i;3088:149:27:-;3194:21;;3181:49;;-1:-1:-1;;;3181:49:27;;3155:7;;-1:-1:-1;;;;;3194:21:27;;3181:45;;:49;;3227:2;;3181:49;;;;1622:123:24;1678:7;1704:34;1719:10;1731:6;1704:14;:34::i;4819:679:25:-;4932:15;;4969:14;;4869:18;;;;;4997:10;;;;:31;;;;;;;;;4993:499;;;5052:26;;5080:27;;5044:64;;;;;;;;4993:499;5143:23;5129:10;;;;:37;;;;;;;;;5125:367;;;5182:21;5206:18;:16;:18::i;:::-;5246:26;;5182:42;;-1:-1:-1;5274:20:25;:1;5182:42;5274:20;:5;:20;:::i;:::-;5238:57;;;;;;;;;5125:367;5330:23;5316:10;;;;:37;;;;;;;;;5312:180;;;5369:20;5392:18;:16;:18::i;:::-;5369:41;-1:-1:-1;5432:19:25;:1;5369:41;5432:19;:5;:19;:::i;:::-;5453:27;;5424:57;;;;;;;;;5312:180;4819:679;;;;;:::o;934:134:41:-;992:7;1024:1;1019;:6;;1011:28;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;8806:137:24:-;8895:21;;8882:54;;-1:-1:-1;;;8882:54:24;;-1:-1:-1;;;;;8895:21:24;;;;8882:40;;:54;;8923:4;;8929:6;;8882:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8806:137;;:::o;1763:187:26:-;1849:13;;1842:46;;-1:-1:-1;;;;;1849:13:26;1877:2;1881:6;1842:46;:34;:46;:::i;:::-;1916:15;;:27;;1936:6;1916:27;:19;:27;:::i;:::-;1898:15;:45;-1:-1:-1;;1763:187:26:o;2201:174::-;2293:27;;:39;;2325:6;2293:39;:31;:39;:::i;:::-;2263:27;:69;2347:21;;;;;;2354:6;;2362:5;;2347:21;;;;;;;;;;2201:174;:::o;392:115:36:-;455:7;379:6;481:13;:6;492:1;481:13;:10;:13;:::i;:::-;:19;;;;;;;392:115;-1:-1:-1;;;392:115:36:o;3310:569:35:-;3448:10;3504:12;3519:62;3539:37;3574:1;3539:30;3555:1;3558:10;3539:15;:30::i;:37::-;3578:2;3519:19;:62::i;:::-;3504:77;-1:-1:-1;3598:53:35;:46;379:6:36;3598:25:35;3504:77;379:6:36;3598:25:35;:8;:25;:::i;:46::-;:51;:53::i;:::-;3591:60;-1:-1:-1;3661:15:35;3679:56;3699:25;3591:60;379:6:36;3699:25:35;:8;:25;:::i;:::-;3726:8;:1;3732;3726:8;:5;:8;:::i;:::-;3679:19;:56::i;:::-;3661:74;-1:-1:-1;3823:49:35;3839:2;3843:28;379:6:36;3661:74:35;3843:28;:19;:28;:::i;:::-;3823:15;:49::i;:::-;3816:56;3310:569;-1:-1:-1;;;;;;3310:569:35:o;1074:157:41:-;1132:7;1163:5;;;1186:6;;;;1178:28;;;;-1:-1:-1;;;1178:28:41;;;;;;;;;1223:1;1074:157;-1:-1:-1;;;1074:157:41:o;281:217::-;339:7;362:6;358:45;;-1:-1:-1;391:1:41;384:8;;358:45;425:5;;;429:1;425;:5;:1;448:5;;;;;:10;440:32;;;;-1:-1:-1;;;440:32:41;;;;;;;;648:280;710:7;729:16;748:9;752:1;755;748:3;:9::i;:::-;729:28;-1:-1:-1;791:12:41;;;787:16;;817:13;;813:109;;-1:-1:-1;864:1:41;853:12;;-1:-1:-1;846:19:41;;813:109;-1:-1:-1;903:8:41;-1:-1:-1;896:15:41;;7611:2308:28;7715:16;7745:17;7776;7807:24;7845:22;7881:21;7961:19;:17;:19::i;:::-;7927:53;;;;;;;;8050:38;8066:6;8074:13;;8050:15;:38::i;:::-;8038:50;;8110:38;8126:6;8134:13;;8110:15;:38::i;:::-;8098:50;-1:-1:-1;8158:21:28;8182:36;8098:50;8182:21;:6;8193:9;8182:21;:10;:21;:::i;:36::-;8158:60;-1:-1:-1;8247:17:28;8233:10;;;;:31;;;;;;;;;8229:1591;;;8318:47;8336:13;8351;8318:17;:47::i;:::-;8307:58;;8392:23;8379:36;;8229:1591;;;8450:23;8436:10;;;;:37;;;;;;;;;8432:1388;;;8527:65;8547:13;8562:14;;8578:13;8527:19;:65::i;8432:1388::-;8677:23;8663:10;;;;:37;;;;;;;;;8659:1161;;;8716:25;8744:35;8763:15;;8744:14;:18;;:35;;;;:::i;:::-;8716:63;;8793:28;8824:33;8843:13;8824:14;;:18;;:33;;;;:::i;:::-;8793:64;;8967:20;8951:13;:36;8947:863;;;9166:67;9186:13;9201:15;;9218:14;9166:19;:67::i;:::-;9155:78;;9264:23;9251:36;;8947:863;;;9329:20;9312:13;:37;9308:502;;;9433:17;9422:28;;9481:17;9468:30;;9308:502;;;9607:134;9650:73;9668:39;:13;9686:20;9668:39;:17;:39;:::i;:::-;9709:13;9650:17;:73::i;9607:134::-;9596:145;;9772:23;9759:36;;9308:502;8659:1161;;;-1:-1:-1;7611:2308:28;;;;;;;:::o;8665:135:24:-;8753:20;;8740:53;;-1:-1:-1;;;8740:53:24;;-1:-1:-1;;;;;8753:20:24;;;;8740:39;;:53;;8780:4;;8786:6;;8740:53;;;;1574:183:26;1659:12;;1652:45;;-1:-1:-1;;;;;1659:12:26;1686:2;1690:6;1652:45;:33;:45;:::i;:::-;1724:14;;:26;;1743:6;1724:26;:18;:26;:::i;:::-;1707:14;:43;-1:-1:-1;;1574:183:26:o;2025:170::-;2115:26;;:38;;2146:6;2115:38;:30;:38;:::i;:::-;2086:26;:67;2168:20;;;;;;2175:6;;2183:4;;2168:20;;504:138:41;562:7;593:1;589;:5;581:32;;;;-1:-1:-1;;;581:32:41;;;;;;;;;634:1;630;:5;;;;1222:346:26;1354:21;;1323:15;;:27;;1343:6;1323:27;:19;:27;:::i;:::-;:52;;1302:127;;;;-1:-1:-1;;;1302:127:26;;;;;;;;;1446:13;;1439:67;;-1:-1:-1;;;;;1446:13:26;1478:4;1492;1499:6;1439:67;:38;:67;:::i;:::-;1534:15;;:27;;1554:6;1534:27;:19;:27;:::i;2440:236:27:-;2495:7;379:6:36;2522:3:27;;:21;2514:38;;;;-1:-1:-1;;;2514:38:27;;;;;;;;;2576:1;2570:3;;:7;2562:23;;;;-1:-1:-1;;;2562:23:27;;;;;;;;;379:6:36;2603:32:27;2621:13;;2603;;:17;;:32;;;;:::i;:::-;:50;2595:74;;;;-1:-1:-1;;;2595:74:27;;;;;;;;8522:137:24;8611:21;;8598:54;;-1:-1:-1;;;8598:54:24;;-1:-1:-1;;;;;8611:21:24;;;;8598:40;;:54;;8639:4;;8645:6;;8598:54;;;;645:123:36;713:7;739:22;759:1;739:15;:6;379;739:15;:10;:15;:::i;4861:2744:28:-;4966:20;5000:18;5032;5064:24;5102:22;5138:21;5218:19;:17;:19::i;:::-;5184:53;-1:-1:-1;5184:53:28;-1:-1:-1;5273:6:28;5248:22;5294:10;;;;:31;;;;;;;;;5290:1984;;;5416:50;5435:14;5451;5416:18;:50::i;:::-;5401:65;;5493:23;5480:36;;5290:1984;;;5551:23;5537:10;;;;:37;;;;;;;;;5533:1741;;;5590:24;5617:33;5635:14;;5617:13;:17;;:33;;;;:::i;:::-;5590:60;;5664:29;5696:35;5716:14;5696:15;;:19;;:35;;;;:::i;:::-;5664:67;;5857:16;5840:14;:33;5836:1183;;;5960:67;5981:14;5997;;6013:13;5960:20;:67::i;:::-;5945:82;;6058:23;6045:36;;6118:21;6103:12;:36;6099:386;;;6445:21;6430:36;;6099:386;5836:1183;;;6527:16;6509:14;:34;6505:514;;;6631:21;6616:36;;6683:17;6670:30;;6505:514;;;6813:137;6860:72;6879:36;:14;6898:16;6879:36;:18;:36;:::i;:::-;6917:14;6860:18;:72::i;6813:137::-;6798:152;;6981:23;6968:36;;6505:514;5533:1741;;;;;7144:69;7165:14;7181:15;;7198:14;7144:20;:69::i;:::-;7129:84;;7240:23;7227:36;;5533:1741;7319:44;7335:12;7349:13;;7319:15;:44::i;:::-;7306:57;;7386:44;7402:12;7416:13;;7386:15;:44::i;:::-;7373:57;-1:-1:-1;7455:44:28;7373:57;7455:28;:12;7472:10;7455:28;:16;:28;:::i;:::-;:32;:44;:32;:44;:::i;:::-;7440:59;-1:-1:-1;;4861:2744:28;;;;;;;:::o;911:305:26:-;1028:20;;998:14;;:26;;1017:6;998:26;:18;:26;:::i;:::-;:50;;990:90;;;;-1:-1:-1;;;990:90:26;;;;;;;;;1097:12;;1090:66;;-1:-1:-1;;;;;1097:12:26;1128:4;1142;1149:6;1090:66;:37;:66;:::i;:::-;1183:14;;:26;;1202:6;1183:26;:18;:26;:::i;8381:135:24:-;8469:20;;8456:53;;-1:-1:-1;;;8456:53:24;;-1:-1:-1;;;;;8469:20:24;;;;8456:39;;:53;;8496:4;;8502:6;;8456:53;;;;804:205:40;916:86;936:5;966:23;;;991:2;995:5;943:58;;;;;;;;;;;;;;-1:-1:-1;;943:58:40;;;;;;;;;;;;;;-1:-1:-1;;;;;943:58:40;-1:-1:-1;;;;;;943:58:40;;;;;;;;;;916:19;:86::i;:::-;804:205;;;:::o;2736:578:25:-;2787:21;2927:17;2947:46;2966:26;;2947:14;;:18;;:46;;;;:::i;:::-;2927:66;;3003:13;3019:16;:14;:16::i;:::-;3003:32;;3045:18;3066:33;3082:9;3093:5;3066:15;:33::i;:::-;3045:54;;3109:22;3134:121;3189:15;;3218:3;;3235:10;3134:41;:121::i;:::-;3109:146;;3272:35;3291:15;;3272:14;:18;;:35;;;;:::i;:::-;3265:42;;;;;;2736:578;:::o;4180:582::-;4231:20;4370:18;4391:48;4411:27;;4391:15;;:19;;:48;;;;:::i;:::-;4370:69;;4449:13;4465:16;:14;:16::i;:::-;4449:32;;4491:18;4512:39;4533:10;4545:5;4512:20;:39::i;:::-;4491:60;;4561:21;4585:120;4640:14;;4668:3;;4685:10;4585:41;:120::i;:::-;4561:144;;4722:33;4740:14;;4722:13;:17;;:33;;;;:::i;774:126:36:-;841:7;867:26;891:1;867:15;:6;379;867:15;:10;:15;:::i;1237:198:41:-;1318:1;1326;1322;1318:5;;:9;1352:77;1363:1;1359;:5;1352:77;;;1384:1;1380:5;;1417:1;1412;1408;1404;:5;;;;;;:9;1403:15;;;;;;1399:19;;1352:77;;;1237:198;;;;:::o;1183:414:25:-;1304:21;1358;1349:6;:30;1341:71;;;;-1:-1:-1;;;1341:71:25;;;;;;;;;1422:10;1435:33;:21;1461:6;1435:33;:25;:33;:::i;:::-;1422:46;;1494:66;1511:21;1534;1557:2;1494:16;:66::i;3366:360::-;3511:21;3561:11;3552:6;:20;3544:61;;;;-1:-1:-1;;;3544:61:25;;;;;;;;;3615:10;3628:23;:11;3644:6;3628:23;:15;:23;:::i;:::-;3615:36;;3668:51;3685:16;3703:11;3716:2;3668:16;:51::i;:::-;3661:58;3366:360;-1:-1:-1;;;;;3366:360:25:o;2117:613::-;2264:21;2449:9;2461:16;:14;:16::i;:::-;2449:28;;2487:10;2500:186;2554:17;2585:12;2611:30;2631:1;2634:6;2611:19;:30::i;:::-;2655:4;2673:3;;2500:40;:186::i;:::-;2487:199;-1:-1:-1;2703:20:25;2487:199;2710:12;2703:20;:6;:20;:::i;1015:275:40:-;1153:130;1186:5;1228:27;;;1257:4;1263:2;1267:5;1205:68;;;;;;;;;;;1153:130;1015:275;;;;:::o;557:620:25:-;680:25;721:9;733:16;:14;:16::i;:::-;721:28;;759:10;772:198;826:22;862;898:26;914:1;917:6;898:15;:26::i;:::-;938:5;957:3;;772:40;:198::i;:::-;759:211;-1:-1:-1;1140:30:25;:22;759:211;1140:30;:26;:30;:::i;3732:442::-;3878:25;;4076:23;:11;4092:6;4076:23;:15;:23;:::i;:::-;4063:36;;4116:51;4133:16;4151:2;4155:11;4116:16;:51::i;1649:462::-;1797:24;1833:9;1845:16;:14;:16::i;:::-;1833:28;;1871:10;1884:183;1938:17;1969:12;1995:26;2011:1;2014:6;1995:15;:26::i;1884:183::-;1871:196;-1:-1:-1;2084:20:25;:12;1871:196;2084:20;:16;:20;:::i;2335:1027:40:-;2984:12;2998:23;3033:5;-1:-1:-1;;;;;3025:19:40;3045:4;3025:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2983:67;;;;3068:7;3060:52;;;;-1:-1:-1;;;3060:52:40;;;;;;;;;3127:17;;:21;3123:233;;3279:10;3268:30;;;;;;;;;;;;;;3260:85;;;;-1:-1:-1;;;3260:85:40;;;;;;;;6309:232:25;6424:7;6443:9;6455:16;:14;:16::i;:::-;6443:28;;6488:46;6515:2;6519;6523;6527:1;6530:3;;6488:26;:46::i;513:126:36:-;580:7;606:26;379:6;606:13;:6;617:1;606:13;:10;:13;:::i;1608:1507:35:-;1786:7;1885:14;1902:38;1937:2;1902:30;1929:2;1902:22;1918:1;1921:2;1902:15;:22::i;:38::-;1885:55;-1:-1:-1;1962:9:35;1974:43;1990:22;379:6:36;2010:1:35;1990:22;:19;:22;:::i;:::-;2014:2;1974:15;:43::i;:::-;1962:55;-1:-1:-1;2055:4:35;2069:158;;;;2102:14;:1;2108:7;2102:14;:5;:14;:::i;:::-;2098:18;;2069:158;;;2176:19;:6;2187:7;2176:19;:10;:19;:::i;:::-;2167:28;;2069:158;2245:6;2240:1;:11;2236:168;;2271:13;:1;2277:6;2271:13;:5;:13;:::i;:::-;2267:17;;2310:4;2298:16;;2236:168;;;2349:13;:6;2360:1;2349:13;:10;:13;:::i;:::-;2345:17;;2388:5;2376:17;;2236:168;2440:18;2461:112;2490:29;2517:1;2490:22;379:6:36;2510:1:35;2490:22;:19;:22;:::i;:29::-;2533:30;2560:2;2533:22;2549:1;2552:2;2533:15;:22::i;2461:112::-;2440:133;-1:-1:-1;2611:31:35;:24;2440:133;2611:8;2617:1;;2611:8;:5;:8;:::i;:31::-;2598:44;-1:-1:-1;2700:19:35;2722:29;2749:1;2722:22;379:6:36;2742:1:35;2722:22;:19;:22;:::i;:29::-;2700:51;;2771:17;2802:9;2798:129;;;2839:17;:1;2845:10;2839:17;:5;:17;:::i;:::-;2827:29;;2798:129;;;2899:17;:10;2914:1;2899:17;:14;:17;:::i;:::-;2887:29;;2798:129;2941:9;2937:172;;;2973:44;2994:9;3005:11;2973:20;:44::i;:::-;2966:51;;;;;;;;;;2937:172;3055:43;3075:9;3086:11;3055:19;:43::i;634:468::-;788:7;;828:30;844:1;847:10;:2;854;847:10;:6;:10;:::i;828:30::-;807:51;-1:-1:-1;879:16:35;898:43;918:18;933:2;918:10;925:2;;918:10;:6;:10;:::i;:18::-;938:2;898:19;:43::i;:::-;879:62;;951:15;969:28;985:1;988:8;969:15;:28::i;:::-;951:46;-1:-1:-1;1031:64:35;1047:10;1059:35;951:46;1059:22;379:6:36;1079:1:35;1059:22;:19;:22;:::i;1031:64::-;1024:71;634:468;-1:-1:-1;;;;;;;;;634:468:35:o;-1:-1:-1:-;;;;;;;;:::o;5:130::-;72:20;;-1:-1;;;;;37486:54;;38855:35;;38845:2;;38904:1;;38894:12;913:241;;1017:2;1005:9;996:7;992:23;988:32;985:2;;;-1:-1;;1023:12;985:2;1085:53;1130:7;1106:22;1085:53;;1161:1373;;;;;;;;;;;1418:3;1406:9;1397:7;1393:23;1389:33;1386:2;;;-1:-1;;1425:12;1386:2;1487:53;1532:7;1508:22;1487:53;;;1477:63;;1595:53;1640:7;1577:2;1620:9;1616:22;1595:53;;;1585:63;;1703:53;1748:7;1685:2;1728:9;1724:22;1703:53;;;1693:63;;1811:53;1856:7;1793:2;1836:9;1832:22;1811:53;;;1801:63;;1920:53;1965:7;1901:3;1945:9;1941:22;1920:53;;;1910:63;;2029:53;2074:7;2010:3;2054:9;2050:22;2029:53;;;2019:63;;2119:3;2163:9;2159:22;702:20;2128:63;;2228:3;2272:9;2268:22;702:20;2237:63;;2337:3;2381:9;2377:22;702:20;2346:63;;2446:3;2490:9;2486:22;702:20;2455:63;;1380:1154;;;;;;;;;;;;;;2541:366;;;2662:2;2650:9;2641:7;2637:23;2633:32;2630:2;;;-1:-1;;2668:12;2630:2;2730:53;2775:7;2751:22;2730:53;;;2720:63;2820:2;2859:22;;;;702:20;;-1:-1;;;2624:283;2914:257;;3026:2;3014:9;3005:7;3001:23;2997:32;2994:2;;;-1:-1;;3032:12;2994:2;223:6;217:13;39001:5;37259:13;37252:21;38979:5;38976:32;38966:2;;-1:-1;;39012:12;3178:241;;3282:2;3270:9;3261:7;3257:23;3253:32;3250:2;;;-1:-1;;3288:12;3250:2;-1:-1;702:20;;3244:175;-1:-1;3244:175;3426:263;;3541:2;3529:9;3520:7;3516:23;3512:32;3509:2;;;-1:-1;;3547:12;3509:2;-1:-1;850:13;;3503:186;-1:-1;3503:186;3696:615;;;;;3853:2;3841:9;3832:7;3828:23;3824:32;3821:2;;;-1:-1;;3859:12;3821:2;715:6;702:20;3911:63;;4011:2;4054:9;4050:22;702:20;4019:63;;4147:2;4136:9;4132:18;4119:32;4171:18;;4163:6;4160:30;4157:2;;;-1:-1;;4193:12;4157:2;4278:6;4267:9;4263:22;405:3;398:4;390:6;386:17;382:27;372:2;;-1:-1;;413:12;372:2;456:6;443:20;433:30;;4171:18;475:6;472:30;469:2;;;-1:-1;;505:12;469:2;600:3;4011:2;580:17;541:6;566:32;;563:41;560:2;;;-1:-1;;607:12;560:2;3815:496;;;;-1:-1;;4011:2;537:17;;;;-1:-1;;;3815:496;17225:271;;5186:5;36558:12;-1:-1;38376:101;38390:6;38387:1;38384:13;38376:101;;;5330:4;38457:11;;;;;38451:18;38438:11;;;38431:39;38405:10;38376:101;;;38492:6;38489:1;38486:13;38483:2;;;-1:-1;38548:6;38543:3;38539:16;38532:27;38483:2;-1:-1;5361:16;;;;;17359:137;-1:-1;;17359:137;17503:222;-1:-1;;;;;37486:54;;;;4538:37;;17630:2;17615:18;;17601:124;17732:349;-1:-1;;;;;37486:54;;;;4397:58;;18067:2;18052:18;;17176:37;17895:2;17880:18;;17866:215;18088:444;-1:-1;;;;;37486:54;;;4538:37;;37486:54;;;;18435:2;18420:18;;4538:37;18518:2;18503:18;;17176:37;;;;18271:2;18256:18;;18242:290;18879:210;37259:13;;37252:21;4652:34;;19000:2;18985:18;;18971:118;19096:321;37259:13;;37252:21;4652:34;;19403:2;19388:18;;17176:37;19245:2;19230:18;;19216:201;19424:432;37259:13;;37252:21;4652:34;;19759:2;19744:18;;17176:37;;;;19842:2;19827:18;;17176:37;19601:2;19586:18;;19572:284;19863:648;;4679:5;37259:13;37252:21;4659:3;4652:34;17206:5;20255:2;20244:9;20240:18;17176:37;17206:5;20338:2;20327:9;20323:18;17176:37;20096:3;20375:2;20364:9;20360:18;20353:48;36714:6;20096:3;20085:9;20081:19;36702;38231:6;38226:3;36742:14;20085:9;36742:14;38208:30;38269:16;;;36742:14;38269:16;;;38262:27;;;;38664:7;38648:14;;;-1:-1;;38644:28;4973:39;;;20067:444;-1:-1;;;;20067:444;20518:244;20656:2;20641:18;;38767:1;38757:12;;38747:2;;38773:9;38747:2;5471:61;;;20627:135;;20769:416;20969:2;20983:47;;;5769:2;20954:18;;;36702:19;5805:31;36742:14;;;5785:52;5856:12;;;20940:245;21192:416;21392:2;21406:47;;;6107:1;21377:18;;;36702:19;-1:-1;;;36742:14;;;6122:26;6167:12;;;21363:245;21615:416;21815:2;21829:47;;;6418:2;21800:18;;;36702:19;-1:-1;;;36742:14;;;6434:36;6489:12;;;21786:245;22038:416;22238:2;22252:47;;;6740:2;22223:18;;;36702:19;-1:-1;;;36742:14;;;6756:33;6808:12;;;22209:245;22461:416;22661:2;22675:47;;;7059:2;22646:18;;;36702:19;7095:26;36742:14;;;7075:47;7141:12;;;22632:245;22884:416;23084:2;23098:47;;;7392:2;23069:18;;;36702:19;7428:27;36742:14;;;7408:48;7475:12;;;23055:245;23307:416;23507:2;23521:47;;;7726:1;23492:18;;;36702:19;-1:-1;;;36742:14;;;7741:32;7792:12;;;23478:245;23730:416;23930:2;23944:47;;;8043:2;23915:18;;;36702:19;-1:-1;;;36742:14;;;8059:34;8112:12;;;23901:245;24153:416;24353:2;24367:47;;;8363:2;24338:18;;;36702:19;8399:30;36742:14;;;8379:51;8449:12;;;24324:245;24576:416;24776:2;24790:47;;;24761:18;;;36702:19;8736:34;36742:14;;;8716:55;8790:12;;;24747:245;24999:416;25199:2;25213:47;;;9041:2;25184:18;;;36702:19;-1:-1;;;36742:14;;;9057:37;9113:12;;;25170:245;25422:416;25622:2;25636:47;;;9364:2;25607:18;;;36702:19;9400:34;36742:14;;;9380:55;-1:-1;;;9455:12;;;9448:27;9494:12;;;25593:245;25845:416;26045:2;26059:47;;;9745:2;26030:18;;;36702:19;9781:25;36742:14;;;9761:46;9826:12;;;26016:245;26268:416;26468:2;26482:47;;;10077:2;26453:18;;;36702:19;10113:29;36742:14;;;10093:50;10162:12;;;26439:245;26691:416;26891:2;26905:47;;;10413:1;26876:18;;;36702:19;-1:-1;;;36742:14;;;10428:32;10479:12;;;26862:245;27114:416;27314:2;27328:47;;;10730:2;27299:18;;;36702:19;-1:-1;;;36742:14;;;10746:39;10804:12;;;27285:245;27537:416;27737:2;27751:47;;;11055:2;27722:18;;;36702:19;11091:30;36742:14;;;11071:51;11141:12;;;27708:245;27960:416;28160:2;28174:47;;;11392:2;28145:18;;;36702:19;-1:-1;;;36742:14;;;11408:40;11467:12;;;28131:245;28383:416;28583:2;28597:47;;;11718:2;28568:18;;;36702:19;-1:-1;;;36742:14;;;11734:36;11789:12;;;28554:245;28806:416;29006:2;29020:47;;;12040:2;28991:18;;;36702:19;-1:-1;;;36742:14;;;12056:37;12112:12;;;28977:245;29229:416;29429:2;29443:47;;;12363:2;29414:18;;;36702:19;-1:-1;;;36742:14;;;12379:34;12432:12;;;29400:245;29652:416;29852:2;29866:47;;;12683:2;29837:18;;;36702:19;-1:-1;;;36742:14;;;12699:42;12760:12;;;29823:245;30075:416;30275:2;30289:47;;;13011:2;30260:18;;;36702:19;-1:-1;;;36742:14;;;13027:34;13080:12;;;30246:245;30498:416;30698:2;30712:47;;;13331:1;30683:18;;;36702:19;-1:-1;;;36742:14;;;13346:32;13397:12;;;30669:245;30921:416;31121:2;31135:47;;;13648:1;31106:18;;;36702:19;-1:-1;;;36742:14;;;13663:32;13714:12;;;31092:245;31344:416;31544:2;31558:47;;;13965:2;31529:18;;;36702:19;14001:34;36742:14;;;13981:55;-1:-1;;;14056:12;;;14049:34;14102:12;;;31515:245;31767:416;31967:2;31981:47;;;14353:2;31952:18;;;36702:19;14389:34;36742:14;;;14369:55;-1:-1;;;14444:12;;;14437:26;14482:12;;;31938:245;32190:416;32390:2;32404:47;;;14733:2;32375:18;;;36702:19;14769:30;36742:14;;;14749:51;14819:12;;;32361:245;32613:416;32813:2;32827:47;;;15070:2;32798:18;;;36702:19;-1:-1;;;36742:14;;;15086:45;15150:12;;;32784:245;33036:416;33236:2;33250:47;;;15401:1;33221:18;;;36702:19;-1:-1;;;36742:14;;;15416:32;15467:12;;;33207:245;33459:416;33659:2;33673:47;;;15718:1;33644:18;;;36702:19;-1:-1;;;36742:14;;;15733:27;15779:12;;;33630:245;33882:416;34082:2;34096:47;;;16030:2;34067:18;;;36702:19;-1:-1;;;36742:14;;;16046:39;16104:12;;;34053:245;34305:416;34505:2;34519:47;;;16355:2;34490:18;;;36702:19;-1:-1;;;36742:14;;;16371:38;16428:12;;;34476:245;34728:416;34928:2;34942:47;;;16679:2;34913:18;;;36702:19;-1:-1;;;36742:14;;;16695:38;16752:12;;;34899:245;35151:416;35351:2;35365:47;;;17003:2;35336:18;;;36702:19;-1:-1;;;36742:14;;;17019:41;17079:12;;;35322:245;35574:222;17176:37;;;35701:2;35686:18;;35672:124;35803:321;17176:37;;;37259:13;37252:21;36110:2;36095:18;;4652:34;35952:2;35937:18;;35923:201;36131:333;17176:37;;;36450:2;36435:18;;17176:37;36286:2;36271:18;;36257:207", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {Types} from \"./lib/Types.sol\";\nimport {IERC20} from \"./intf/IERC20.sol\";\nimport {Storage} from \"./impl/Storage.sol\";\nimport {Trader} from \"./impl/Trader.sol\";\nimport {LiquidityProvider} from \"./impl/LiquidityProvider.sol\";\nimport {Admin} from \"./impl/Admin.sol\";\nimport {DODOLpToken} from \"./impl/DODOLpToken.sol\";\n\n\n/**\n * @title DODO\n * @author DODO Breeder\n *\n * @notice Entrance for users\n */\ncontract DODO is Admin, Trader, LiquidityProvider {\n function init(\n address owner,\n address supervisor,\n address maintainer,\n address baseToken,\n address quoteToken,\n address oracle,\n uint256 lpFeeRate,\n uint256 mtFeeRate,\n uint256 k,\n uint256 gasPriceLimit\n ) external {\n require(!_INITIALIZED_, \"DODO_INITIALIZED\");\n _INITIALIZED_ = true;\n\n // constructor\n _OWNER_ = owner;\n emit OwnershipTransferred(address(0), _OWNER_);\n\n _SUPERVISOR_ = supervisor;\n _MAINTAINER_ = maintainer;\n _BASE_TOKEN_ = baseToken;\n _QUOTE_TOKEN_ = quoteToken;\n _ORACLE_ = oracle;\n\n _DEPOSIT_BASE_ALLOWED_ = false;\n _DEPOSIT_QUOTE_ALLOWED_ = false;\n _TRADE_ALLOWED_ = false;\n _GAS_PRICE_LIMIT_ = gasPriceLimit;\n\n // Advanced controls are disabled by default\n _BUYING_ALLOWED_ = true;\n _SELLING_ALLOWED_ = true;\n uint256 MAX_INT = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;\n _BASE_BALANCE_LIMIT_ = MAX_INT;\n _QUOTE_BALANCE_LIMIT_ = MAX_INT;\n\n _LP_FEE_RATE_ = lpFeeRate;\n _MT_FEE_RATE_ = mtFeeRate;\n _K_ = k;\n _R_STATUS_ = Types.RStatus.ONE;\n\n _BASE_CAPITAL_TOKEN_ = address(new DODOLpToken(_BASE_TOKEN_));\n _QUOTE_CAPITAL_TOKEN_ = address(new DODOLpToken(_QUOTE_TOKEN_));\n\n _checkDODOParameters();\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/dodo.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/dodo.sol", + "exportedSymbols": { + "DODO": [ + 1690 + ] + }, + "id": 1691, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1524, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:2" + }, + { + "id": 1525, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:2" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "file": "./lib/Types.sol", + "id": 1527, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 11632, + "src": "136:38:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1526, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:5:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "./intf/IERC20.sol", + "id": 1529, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 10608, + "src": "175:41:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1528, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "183:6:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "file": "./impl/Storage.sol", + "id": 1531, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 9614, + "src": "217:43:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1530, + "name": "Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "225:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Trader.sol", + "file": "./impl/Trader.sol", + "id": 1533, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 10352, + "src": "261:41:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1532, + "name": "Trader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "269:6:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/LiquidityProvider.sol", + "file": "./impl/LiquidityProvider.sol", + "id": 1535, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 8370, + "src": "303:63:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1534, + "name": "LiquidityProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "311:17:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Admin.sol", + "file": "./impl/Admin.sol", + "id": 1537, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 6964, + "src": "367:39:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1536, + "name": "Admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "375:5:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/DODOLpToken.sol", + "file": "./impl/DODOLpToken.sol", + "id": 1539, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 7348, + "src": "407:51:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1538, + "name": "DODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "415:11:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1541, + "name": "Admin", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6963, + "src": "558:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Admin_$6963", + "typeString": "contract Admin" + } + }, + "id": 1542, + "nodeType": "InheritanceSpecifier", + "src": "558:5:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1543, + "name": "Trader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10351, + "src": "565:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Trader_$10351", + "typeString": "contract Trader" + } + }, + "id": 1544, + "nodeType": "InheritanceSpecifier", + "src": "565:6:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1545, + "name": "LiquidityProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 8369, + "src": "573:17:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityProvider_$8369", + "typeString": "contract LiquidityProvider" + } + }, + "id": 1546, + "nodeType": "InheritanceSpecifier", + "src": "573:17:2" + } + ], + "contractDependencies": [ + 6963, + 7347, + 8369, + 8853, + 9396, + 9613, + 10351, + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 1540, + "nodeType": "StructuredDocumentation", + "src": "461:79:2", + "text": " @title DODO\n @author DODO Breeder\n @notice Entrance for users" + }, + "fullyImplemented": true, + "id": 1690, + "linearizedBaseContracts": [ + 1690, + 8369, + 10351, + 9396, + 8853, + 6963, + 9613, + 11296, + 11166 + ], + "name": "DODO", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1688, + "nodeType": "Block", + "src": "888:1123:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "906:14:2", + "subExpression": { + "argumentTypes": null, + "id": 1570, + "name": "_INITIALIZED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9423, + "src": "907:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f494e495449414c495a4544", + "id": 1572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "922:18:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8f31c5be819f18faa99e753860dc430fa9e06e61d8129feaeafc97575920b2a7", + "typeString": "literal_string \"DODO_INITIALIZED\"" + }, + "value": "DODO_INITIALIZED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8f31c5be819f18faa99e753860dc430fa9e06e61d8129feaeafc97575920b2a7", + "typeString": "literal_string \"DODO_INITIALIZED\"" + } + ], + "id": 1569, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "898:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "898:43:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1574, + "nodeType": "ExpressionStatement", + "src": "898:43:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1575, + "name": "_INITIALIZED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9423, + "src": "951:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "967:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "951:20:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1578, + "nodeType": "ExpressionStatement", + "src": "951:20:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1579, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "1005:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1580, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1548, + "src": "1015:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1005:15:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1582, + "nodeType": "ExpressionStatement", + "src": "1005:15:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1064:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1056:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1584, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1056:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1056:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1588, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "1068:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1583, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11098, + "src": "1035:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1035:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1590, + "nodeType": "EmitStatement", + "src": "1030:46:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1591, + "name": "_SUPERVISOR_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9443, + "src": "1087:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1592, + "name": "supervisor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1550, + "src": "1102:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1087:25:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1594, + "nodeType": "ExpressionStatement", + "src": "1087:25:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1595, + "name": "_MAINTAINER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9445, + "src": "1122:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1596, + "name": "maintainer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1552, + "src": "1137:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1122:25:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1598, + "nodeType": "ExpressionStatement", + "src": "1122:25:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1599, + "name": "_BASE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9447, + "src": "1157:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1600, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "1172:9:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1157:24:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1602, + "nodeType": "ExpressionStatement", + "src": "1157:24:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1603, + "name": "_QUOTE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9449, + "src": "1191:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1604, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1556, + "src": "1207:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1191:26:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1606, + "nodeType": "ExpressionStatement", + "src": "1191:26:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1607, + "name": "_ORACLE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9451, + "src": "1227:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1608, + "name": "oracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1558, + "src": "1238:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1227:17:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "1227:17:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1611, + "name": "_DEPOSIT_BASE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9429, + "src": "1255:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1280:5:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1255:30:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1614, + "nodeType": "ExpressionStatement", + "src": "1255:30:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1615, + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9427, + "src": "1295:23:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1321:5:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1295:31:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1618, + "nodeType": "ExpressionStatement", + "src": "1295:31:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1619, + "name": "_TRADE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9431, + "src": "1336:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1354:5:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1336:23:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1622, + "nodeType": "ExpressionStatement", + "src": "1336:23:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1623, + "name": "_GAS_PRICE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9433, + "src": "1369:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1624, + "name": "gasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "1389:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1369:33:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1626, + "nodeType": "ExpressionStatement", + "src": "1369:33:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1627, + "name": "_BUYING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9435, + "src": "1466:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1485:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1466:23:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1630, + "nodeType": "ExpressionStatement", + "src": "1466:23:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1631, + "name": "_SELLING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9437, + "src": "1499:17:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1519:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1499:24:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1634, + "nodeType": "ExpressionStatement", + "src": "1499:24:2" + }, + { + "assignments": [ + 1636 + ], + "declarations": [ + { + "constant": false, + "id": 1636, + "mutability": "mutable", + "name": "MAX_INT", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1688, + "src": "1533:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1533:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1638, + "initialValue": { + "argumentTypes": null, + "hexValue": "307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1551:66:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9935" + }, + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1533:84:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1639, + "name": "_BASE_BALANCE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9439, + "src": "1627:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1640, + "name": "MAX_INT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1636, + "src": "1650:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1627:30:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1642, + "nodeType": "ExpressionStatement", + "src": "1627:30:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1643, + "name": "_QUOTE_BALANCE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9441, + "src": "1667:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1644, + "name": "MAX_INT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1636, + "src": "1691:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1667:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1646, + "nodeType": "ExpressionStatement", + "src": "1667:31:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1647, + "name": "_LP_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "1709:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1648, + "name": "lpFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "1725:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1709:25:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1650, + "nodeType": "ExpressionStatement", + "src": "1709:25:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1651, + "name": "_MT_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "1744:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1652, + "name": "mtFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1562, + "src": "1760:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1744:25:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1654, + "nodeType": "ExpressionStatement", + "src": "1744:25:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1655, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "1779:3:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1656, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "1785:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1779:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1658, + "nodeType": "ExpressionStatement", + "src": "1779:7:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1659, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "1796:10:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1660, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "1809:5:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 1661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "1809:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 1662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1809:17:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "1796:30:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 1664, + "nodeType": "ExpressionStatement", + "src": "1796:30:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1665, + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9469, + "src": "1837:20:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1670, + "name": "_BASE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9447, + "src": "1884:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1868:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DODOLpToken_$7347_$", + "typeString": "function (address) returns (contract DODOLpToken)" + }, + "typeName": { + "contractScope": null, + "id": 1668, + "name": "DODOLpToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7347, + "src": "1872:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOLpToken_$7347", + "typeString": "contract DODOLpToken" + } + } + }, + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1868:29:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOLpToken_$7347", + "typeString": "contract DODOLpToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOLpToken_$7347", + "typeString": "contract DODOLpToken" + } + ], + "id": 1667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1860:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1666, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1860:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1860:38:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1837:61:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1674, + "nodeType": "ExpressionStatement", + "src": "1837:61:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1675, + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9471, + "src": "1908:21:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1680, + "name": "_QUOTE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9449, + "src": "1956:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1940:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DODOLpToken_$7347_$", + "typeString": "function (address) returns (contract DODOLpToken)" + }, + "typeName": { + "contractScope": null, + "id": 1678, + "name": "DODOLpToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7347, + "src": "1944:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOLpToken_$7347", + "typeString": "contract DODOLpToken" + } + } + }, + "id": 1681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1940:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOLpToken_$7347", + "typeString": "contract DODOLpToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOLpToken_$7347", + "typeString": "contract DODOLpToken" + } + ], + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1932:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1932:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1932:39:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1908:63:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1684, + "nodeType": "ExpressionStatement", + "src": "1908:63:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1685, + "name": "_checkDODOParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "1982:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1982:22:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1687, + "nodeType": "ExpressionStatement", + "src": "1982:22:2" + } + ] + }, + "documentation": null, + "functionSelector": "f00f9a09", + "id": 1689, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "init", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1548, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "620:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "620:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1550, + "mutability": "mutable", + "name": "supervisor", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "643:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "643:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1552, + "mutability": "mutable", + "name": "maintainer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "671:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1551, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "671:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1554, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "699:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1553, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "699:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1556, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "726:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1555, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "726:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1558, + "mutability": "mutable", + "name": "oracle", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "754:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1557, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "754:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1560, + "mutability": "mutable", + "name": "lpFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "778:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1559, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "778:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1562, + "mutability": "mutable", + "name": "mtFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "805:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "805:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "k", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "832:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "832:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "gasPriceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "851:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "851:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "610:268:2" + }, + "returnParameters": { + "id": 1568, + "nodeType": "ParameterList", + "parameters": [], + "src": "888:0:2" + }, + "scope": 1690, + "src": "597:1414:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1691, + "src": "541:1472:2" + } + ], + "src": "78:1936:2" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/dodo.sol", + "exportedSymbols": { + "DODO": [ + 1690 + ] + }, + "id": 1691, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1524, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:2" + }, + { + "id": 1525, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:2" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "file": "./lib/Types.sol", + "id": 1527, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 11632, + "src": "136:38:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1526, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:5:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "./intf/IERC20.sol", + "id": 1529, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 10608, + "src": "175:41:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1528, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "183:6:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "file": "./impl/Storage.sol", + "id": 1531, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 9614, + "src": "217:43:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1530, + "name": "Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "225:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Trader.sol", + "file": "./impl/Trader.sol", + "id": 1533, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 10352, + "src": "261:41:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1532, + "name": "Trader", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "269:6:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/LiquidityProvider.sol", + "file": "./impl/LiquidityProvider.sol", + "id": 1535, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 8370, + "src": "303:63:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1534, + "name": "LiquidityProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "311:17:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Admin.sol", + "file": "./impl/Admin.sol", + "id": 1537, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 6964, + "src": "367:39:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1536, + "name": "Admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "375:5:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/DODOLpToken.sol", + "file": "./impl/DODOLpToken.sol", + "id": 1539, + "nodeType": "ImportDirective", + "scope": 1691, + "sourceUnit": 7348, + "src": "407:51:2", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1538, + "name": "DODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "415:11:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1541, + "name": "Admin", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6963, + "src": "558:5:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Admin_$6963", + "typeString": "contract Admin" + } + }, + "id": 1542, + "nodeType": "InheritanceSpecifier", + "src": "558:5:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1543, + "name": "Trader", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10351, + "src": "565:6:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Trader_$10351", + "typeString": "contract Trader" + } + }, + "id": 1544, + "nodeType": "InheritanceSpecifier", + "src": "565:6:2" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1545, + "name": "LiquidityProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 8369, + "src": "573:17:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LiquidityProvider_$8369", + "typeString": "contract LiquidityProvider" + } + }, + "id": 1546, + "nodeType": "InheritanceSpecifier", + "src": "573:17:2" + } + ], + "contractDependencies": [ + 6963, + 7347, + 8369, + 8853, + 9396, + 9613, + 10351, + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 1540, + "nodeType": "StructuredDocumentation", + "src": "461:79:2", + "text": " @title DODO\n @author DODO Breeder\n @notice Entrance for users" + }, + "fullyImplemented": true, + "id": 1690, + "linearizedBaseContracts": [ + 1690, + 8369, + 10351, + 9396, + 8853, + 6963, + 9613, + 11296, + 11166 + ], + "name": "DODO", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1688, + "nodeType": "Block", + "src": "888:1123:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "906:14:2", + "subExpression": { + "argumentTypes": null, + "id": 1570, + "name": "_INITIALIZED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9423, + "src": "907:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f494e495449414c495a4544", + "id": 1572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "922:18:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8f31c5be819f18faa99e753860dc430fa9e06e61d8129feaeafc97575920b2a7", + "typeString": "literal_string \"DODO_INITIALIZED\"" + }, + "value": "DODO_INITIALIZED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8f31c5be819f18faa99e753860dc430fa9e06e61d8129feaeafc97575920b2a7", + "typeString": "literal_string \"DODO_INITIALIZED\"" + } + ], + "id": 1569, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "898:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "898:43:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1574, + "nodeType": "ExpressionStatement", + "src": "898:43:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1575, + "name": "_INITIALIZED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9423, + "src": "951:13:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "967:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "951:20:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1578, + "nodeType": "ExpressionStatement", + "src": "951:20:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1579, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "1005:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1580, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1548, + "src": "1015:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1005:15:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1582, + "nodeType": "ExpressionStatement", + "src": "1005:15:2" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1064:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1056:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1584, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1056:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1056:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1588, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "1068:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1583, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11098, + "src": "1035:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1035:41:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1590, + "nodeType": "EmitStatement", + "src": "1030:46:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1591, + "name": "_SUPERVISOR_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9443, + "src": "1087:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1592, + "name": "supervisor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1550, + "src": "1102:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1087:25:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1594, + "nodeType": "ExpressionStatement", + "src": "1087:25:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1595, + "name": "_MAINTAINER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9445, + "src": "1122:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1596, + "name": "maintainer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1552, + "src": "1137:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1122:25:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1598, + "nodeType": "ExpressionStatement", + "src": "1122:25:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1599, + "name": "_BASE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9447, + "src": "1157:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1600, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "1172:9:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1157:24:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1602, + "nodeType": "ExpressionStatement", + "src": "1157:24:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1603, + "name": "_QUOTE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9449, + "src": "1191:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1604, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1556, + "src": "1207:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1191:26:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1606, + "nodeType": "ExpressionStatement", + "src": "1191:26:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1607, + "name": "_ORACLE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9451, + "src": "1227:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1608, + "name": "oracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1558, + "src": "1238:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1227:17:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "1227:17:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1611, + "name": "_DEPOSIT_BASE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9429, + "src": "1255:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1280:5:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1255:30:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1614, + "nodeType": "ExpressionStatement", + "src": "1255:30:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1615, + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9427, + "src": "1295:23:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1321:5:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1295:31:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1618, + "nodeType": "ExpressionStatement", + "src": "1295:31:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1619, + "name": "_TRADE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9431, + "src": "1336:15:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1354:5:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1336:23:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1622, + "nodeType": "ExpressionStatement", + "src": "1336:23:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1623, + "name": "_GAS_PRICE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9433, + "src": "1369:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1624, + "name": "gasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "1389:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1369:33:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1626, + "nodeType": "ExpressionStatement", + "src": "1369:33:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1627, + "name": "_BUYING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9435, + "src": "1466:16:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1485:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1466:23:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1630, + "nodeType": "ExpressionStatement", + "src": "1466:23:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1631, + "name": "_SELLING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9437, + "src": "1499:17:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1519:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1499:24:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1634, + "nodeType": "ExpressionStatement", + "src": "1499:24:2" + }, + { + "assignments": [ + 1636 + ], + "declarations": [ + { + "constant": false, + "id": 1636, + "mutability": "mutable", + "name": "MAX_INT", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1688, + "src": "1533:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1533:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1638, + "initialValue": { + "argumentTypes": null, + "hexValue": "307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1551:66:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1", + "typeString": "int_const 1157...(70 digits omitted)...9935" + }, + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1533:84:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1639, + "name": "_BASE_BALANCE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9439, + "src": "1627:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1640, + "name": "MAX_INT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1636, + "src": "1650:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1627:30:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1642, + "nodeType": "ExpressionStatement", + "src": "1627:30:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1643, + "name": "_QUOTE_BALANCE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9441, + "src": "1667:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1644, + "name": "MAX_INT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1636, + "src": "1691:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1667:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1646, + "nodeType": "ExpressionStatement", + "src": "1667:31:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1647, + "name": "_LP_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "1709:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1648, + "name": "lpFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1560, + "src": "1725:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1709:25:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1650, + "nodeType": "ExpressionStatement", + "src": "1709:25:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1651, + "name": "_MT_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "1744:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1652, + "name": "mtFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1562, + "src": "1760:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1744:25:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1654, + "nodeType": "ExpressionStatement", + "src": "1744:25:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1655, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "1779:3:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1656, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "1785:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1779:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1658, + "nodeType": "ExpressionStatement", + "src": "1779:7:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1659, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "1796:10:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1660, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "1809:5:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 1661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "1809:13:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 1662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1809:17:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "1796:30:2", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 1664, + "nodeType": "ExpressionStatement", + "src": "1796:30:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1665, + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9469, + "src": "1837:20:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1670, + "name": "_BASE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9447, + "src": "1884:12:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1868:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DODOLpToken_$7347_$", + "typeString": "function (address) returns (contract DODOLpToken)" + }, + "typeName": { + "contractScope": null, + "id": 1668, + "name": "DODOLpToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7347, + "src": "1872:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOLpToken_$7347", + "typeString": "contract DODOLpToken" + } + } + }, + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1868:29:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOLpToken_$7347", + "typeString": "contract DODOLpToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOLpToken_$7347", + "typeString": "contract DODOLpToken" + } + ], + "id": 1667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1860:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1666, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1860:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1860:38:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1837:61:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1674, + "nodeType": "ExpressionStatement", + "src": "1837:61:2" + }, + { + "expression": { + "argumentTypes": null, + "id": 1683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1675, + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9471, + "src": "1908:21:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1680, + "name": "_QUOTE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9449, + "src": "1956:13:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1940:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DODOLpToken_$7347_$", + "typeString": "function (address) returns (contract DODOLpToken)" + }, + "typeName": { + "contractScope": null, + "id": 1678, + "name": "DODOLpToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7347, + "src": "1944:11:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOLpToken_$7347", + "typeString": "contract DODOLpToken" + } + } + }, + "id": 1681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1940:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOLpToken_$7347", + "typeString": "contract DODOLpToken" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOLpToken_$7347", + "typeString": "contract DODOLpToken" + } + ], + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1932:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1932:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1932:39:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1908:63:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1684, + "nodeType": "ExpressionStatement", + "src": "1908:63:2" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1685, + "name": "_checkDODOParameters", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9538, + "src": "1982:20:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1982:22:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1687, + "nodeType": "ExpressionStatement", + "src": "1982:22:2" + } + ] + }, + "documentation": null, + "functionSelector": "f00f9a09", + "id": 1689, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "init", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1548, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "620:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "620:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1550, + "mutability": "mutable", + "name": "supervisor", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "643:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "643:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1552, + "mutability": "mutable", + "name": "maintainer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "671:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1551, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "671:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1554, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "699:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1553, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "699:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1556, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "726:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1555, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "726:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1558, + "mutability": "mutable", + "name": "oracle", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "754:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1557, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "754:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1560, + "mutability": "mutable", + "name": "lpFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "778:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1559, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "778:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1562, + "mutability": "mutable", + "name": "mtFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "805:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "805:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "k", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "832:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "832:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "gasPriceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1689, + "src": "851:21:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "851:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "610:268:2" + }, + "returnParameters": { + "id": 1568, + "nodeType": "ParameterList", + "parameters": [], + "src": "888:0:2" + }, + "scope": 1690, + "src": "597:1414:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1691, + "src": "541:1472:2" + } + ], + "src": "78:1936:2" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.487Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "DODO" + }, + "userdoc": { + "methods": {}, + "notice": "Entrance for users" + } +} \ No newline at end of file diff --git a/build-v1/contracts/DODOEthProxy.json b/build-v1/contracts/DODOEthProxy.json new file mode 100644 index 0000000..81f28c9 --- /dev/null +++ b/build-v1/contracts/DODOEthProxy.json @@ -0,0 +1,34491 @@ +{ + "contractName": "DODOEthProxy", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "dodoZoo", + "type": "address" + }, + { + "internalType": "address payable", + "name": "weth", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "quoteToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "receiveEth", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payToken", + "type": "uint256" + } + ], + "name": "ProxyBuyEthWithToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "baseToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "receiveToken", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payEth", + "type": "uint256" + } + ], + "name": "ProxyBuyTokenWithEth", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "lp", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "DODO", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "ethAmount", + "type": "uint256" + } + ], + "name": "ProxyDepositEthAsBase", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "lp", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "DODO", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "ethAmount", + "type": "uint256" + } + ], + "name": "ProxyDepositEthAsQuote", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "quoteToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payEth", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "receiveToken", + "type": "uint256" + } + ], + "name": "ProxySellEthToToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "baseToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payToken", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "receiveEth", + "type": "uint256" + } + ], + "name": "ProxySellTokenToEth", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "lp", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "DODO", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "ethAmount", + "type": "uint256" + } + ], + "name": "ProxyWithdrawEthAsBase", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "lp", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "DODO", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "ethAmount", + "type": "uint256" + } + ], + "name": "ProxyWithdrawEthAsQuote", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "inputs": [], + "name": "_DODO_ZOO_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_WETH_", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "quoteTokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "ethAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minReceiveTokenAmount", + "type": "uint256" + } + ], + "name": "sellEthToToken", + "outputs": [ + { + "internalType": "uint256", + "name": "receiveTokenAmount", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "quoteTokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "ethAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPayTokenAmount", + "type": "uint256" + } + ], + "name": "buyEthWithToken", + "outputs": [ + { + "internalType": "uint256", + "name": "payTokenAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "baseTokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minReceiveEthAmount", + "type": "uint256" + } + ], + "name": "sellTokenToEth", + "outputs": [ + { + "internalType": "uint256", + "name": "receiveEthAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "baseTokenAddress", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPayEthAmount", + "type": "uint256" + } + ], + "name": "buyTokenWithEth", + "outputs": [ + { + "internalType": "uint256", + "name": "payEthAmount", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ethAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "quoteTokenAddress", + "type": "address" + } + ], + "name": "depositEthAsBase", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ethAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "quoteTokenAddress", + "type": "address" + } + ], + "name": "withdrawEthAsBase", + "outputs": [ + { + "internalType": "uint256", + "name": "withdrawAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "quoteTokenAddress", + "type": "address" + } + ], + "name": "withdrawAllEthAsBase", + "outputs": [ + { + "internalType": "uint256", + "name": "withdrawAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ethAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "baseTokenAddress", + "type": "address" + } + ], + "name": "depositEthAsQuote", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "ethAmount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "baseTokenAddress", + "type": "address" + } + ], + "name": "withdrawEthAsQuote", + "outputs": [ + { + "internalType": "uint256", + "name": "withdrawAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "baseTokenAddress", + "type": "address" + } + ], + "name": "withdrawAllEthAsQuote", + "outputs": [ + { + "internalType": "uint256", + "name": "withdrawAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dodoZoo\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"weth\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"quoteToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"receiveEth\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payToken\",\"type\":\"uint256\"}],\"name\":\"ProxyBuyEthWithToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"receiveToken\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payEth\",\"type\":\"uint256\"}],\"name\":\"ProxyBuyTokenWithEth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"DODO\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"}],\"name\":\"ProxyDepositEthAsBase\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"DODO\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"}],\"name\":\"ProxyDepositEthAsQuote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"quoteToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payEth\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"receiveToken\",\"type\":\"uint256\"}],\"name\":\"ProxySellEthToToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payToken\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"receiveEth\",\"type\":\"uint256\"}],\"name\":\"ProxySellTokenToEth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"DODO\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"}],\"name\":\"ProxyWithdrawEthAsBase\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"DODO\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"}],\"name\":\"ProxyWithdrawEthAsQuote\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"_DODO_ZOO_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_WETH_\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"quoteTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPayTokenAmount\",\"type\":\"uint256\"}],\"name\":\"buyEthWithToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payTokenAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPayEthAmount\",\"type\":\"uint256\"}],\"name\":\"buyTokenWithEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payEthAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"quoteTokenAddress\",\"type\":\"address\"}],\"name\":\"depositEthAsBase\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"baseTokenAddress\",\"type\":\"address\"}],\"name\":\"depositEthAsQuote\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"quoteTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minReceiveTokenAmount\",\"type\":\"uint256\"}],\"name\":\"sellEthToToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"receiveTokenAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseTokenAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minReceiveEthAmount\",\"type\":\"uint256\"}],\"name\":\"sellTokenToEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"receiveEthAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"quoteTokenAddress\",\"type\":\"address\"}],\"name\":\"withdrawAllEthAsBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseTokenAddress\",\"type\":\"address\"}],\"name\":\"withdrawAllEthAsQuote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"quoteTokenAddress\",\"type\":\"address\"}],\"name\":\"withdrawEthAsBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"baseTokenAddress\",\"type\":\"address\"}],\"name\":\"withdrawEthAsQuote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"DODO Eth Proxy\"},\"userdoc\":{\"methods\":{},\"notice\":\"Handle ETH-WETH converting for users.\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOEthProxy.sol\":\"DODOEthProxy\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOEthProxy.sol\":{\"keccak256\":\"0xc176f60e025dd47dff2dce5fc492d1a2cabc692d8b0909abfefeb01fcfd1e0da\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://32507f11b7d506cee5b15664ad2cb7219961d4791a3d786846ed26be501121fc\",\"dweb:/ipfs/QmS1Lp2mZ7Ho8qnYVRdwqrQjJPy77nqAAgfY9QeGYq73BH\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol\":{\"keccak256\":\"0x8fd9ec49ff1517e33698dc8dd4022da05f3a1ae6e4bf97c48f5f5b6714df2123\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cfaa388f09d627ad26c66e6c4a73c232d494010b73b989392e264f815a84cd1d\",\"dweb:/ipfs/QmSBNeEyjgFSAtcYpKjyQfKZx7ahZKFwUtnnbpSSpS3p2H\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IWETH.sol\":{\"keccak256\":\"0x477940fe56d5823b603218a07d843eb013524a5b44e2784bf38b8374c22dd4ab\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c9111ef0a330bb0353c5232742867bb18259dd19edd6fb58c83046c007f4dae4\",\"dweb:/ipfs/QmWE34g93fLw5sjMfNxRKP4NU6gdjmyd4A2HNVH9DrkdKp\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol\":{\"keccak256\":\"0xc9c3fc946350fd72083a9d5b1327ff923533ef37b054bc7b6007562b20b0faaf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fc140417457139fb240427629673bfaf970c5d4568ad1cfe582764c6e4855bbb\",\"dweb:/ipfs/Qmd7ESYe5kyM6NYiSzeFE74f1YGGPXzpdVd5qnYg2AvgH8\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162002d8138038062002d81833981016040819052620000349162000070565b60008054610100600160a81b0319166101006001600160a01b0394851602179055600180546001600160a01b03191691909216179055620000c7565b6000806040838503121562000083578182fd5b82516200009081620000ae565b6020840151909250620000a381620000ae565b809150509250929050565b6001600160a01b0381168114620000c457600080fd5b50565b612caa80620000d76000396000f3fe6080604052600436106100ab5760003560e01c8063827df19411610064578063827df194146101cf578063b56a1d03146101ef578063ba9344a414610202578063d668e02614610215578063e513462814610235578063e8d522bb14610248576100e5565b80630ae4b86d1461010f5780630d4eec8f1461014557806333e000531461016757806339239f721461017a5780633cff9b561461018f578063770e96d3146101af576100e5565b366100e5576001546001600160a01b031633146100e35760405162461bcd60e51b81526004016100da90612b2c565b60405180910390fd5b005b6001546001600160a01b031633146100e35760405162461bcd60e51b81526004016100da90612b2c565b34801561011b57600080fd5b5061012f61012a36600461290b565b610268565b60405161013c9190612c28565b60405180910390f35b34801561015157600080fd5b5061015a6106a8565b60405161013c9190612a1e565b61012f61017536600461294a565b6106b7565b34801561018657600080fd5b5061015a610a5d565b34801561019b57600080fd5b5061012f6101aa36600461290b565b610a71565b3480156101bb57600080fd5b5061012f6101ca3660046129b6565b610e98565b3480156101db57600080fd5b5061012f6101ea3660046129b6565b6113e6565b6100e36101fd3660046129b6565b611916565b6100e36102103660046129b6565b611be2565b34801561022157600080fd5b5061012f61023036600461294a565b611e98565b61012f61024336600461294a565b612112565b34801561025457600080fd5b5061012f61026336600461294a565b6123d6565b6000805460ff161561028c5760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660019081178083559054604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c6926102d3929116908790600401612a32565b60206040518083038186803b1580156102eb57600080fd5b505afa1580156102ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610323919061292e565b90506001600160a01b03811661034b5760405162461bcd60e51b81526004016100da90612a89565b6000816001600160a01b031663d689107c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061292e565b90506000816001600160a01b03166370a08231336040518263ffffffff1660e01b81526004016103ee9190612a1e565b60206040518083038186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e919061299e565b6040516323b872dd60e01b81529091506001600160a01b038316906323b872dd9061047190339030908690600401612a4c565b602060405180830381600087803b15801561048b57600080fd5b505af115801561049f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c3919061297e565b50826001600160a01b031663d47eaa376040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156104ff57600080fd5b505af1158015610513573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610537919061299e565b506001546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610569903090600401612a1e565b60206040518083038186803b15801561058157600080fd5b505afa158015610595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b9919061299e565b600154604051632e1a7d4d60e01b81529192506001600160a01b031690632e1a7d4d906105ea908490600401612c28565b600060405180830381600087803b15801561060457600080fd5b505af1158015610618573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015610649573d6000803e3d6000fd5b50836001600160a01b0316336001600160a01b03167fa3c769d2387bbb62e448c2cceed2296eaefb147f02f8848fa21fbd165d1cefb48360405161068d9190612c28565b60405180910390a36000805460ff1916905595945050505050565b6001546001600160a01b031681565b6000805460ff16156106db5760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660011790553482146107075760405162461bcd60e51b81526004016100da90612b5a565b60008054600154604051630939d86360e11b81526101009092046001600160a01b0390811692631273b0c692610744928a92911690600401612a32565b60206040518083038186803b15801561075c57600080fd5b505afa158015610770573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610794919061292e565b90506001600160a01b0381166107bc5760405162461bcd60e51b81526004016100da90612a89565b6040516306302ef960e21b81526001600160a01b038216906318c0bbe4906107e8908790600401612c28565b60206040518083038186803b15801561080057600080fd5b505afa158015610814573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610838919061299e565b9150600160009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561088a57600080fd5b505af115801561089e573d6000803e3d6000fd5b505060015460405163095ea7b360e01b81526001600160a01b03909116935063095ea7b392506108d5915084908690600401612a70565b602060405180830381600087803b1580156108ef57600080fd5b505af1158015610903573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610927919061297e565b5060405163733e738360e11b81526001600160a01b0382169063e67ce706906109569087908790600401612c3f565b602060405180830381600087803b15801561097057600080fd5b505af1158015610984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a8919061299e565b506109b48533866126b2565b60006109c6848463ffffffff6126d116565b905080156109fd57604051339082156108fc029083906000818181858888f193505050501580156109fb573d6000803e3d6000fd5b505b856001600160a01b0316336001600160a01b03167f26073ab24c5b344998011be45a52267573aac5a64b1940dc1bb78de8b1b4f2c98786604051610a42929190612c31565b60405180910390a350506000805460ff191690559392505050565b60005461010090046001600160a01b031681565b6000805460ff1615610a955760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660019081178083559054604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c692610ade9288929190911690600401612a32565b60206040518083038186803b158015610af657600080fd5b505afa158015610b0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2e919061292e565b90506001600160a01b038116610b565760405162461bcd60e51b81526004016100da90612a89565b6000816001600160a01b031663ac1fbc986040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9157600080fd5b505afa158015610ba5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc9919061292e565b90506000816001600160a01b03166370a08231336040518263ffffffff1660e01b8152600401610bf99190612a1e565b60206040518083038186803b158015610c1157600080fd5b505afa158015610c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c49919061299e565b6040516323b872dd60e01b81529091506001600160a01b038316906323b872dd90610c7c90339030908690600401612a4c565b602060405180830381600087803b158015610c9657600080fd5b505af1158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce919061297e565b50826001600160a01b031663c59203af6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610d0a57600080fd5b505af1158015610d1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d42919061299e565b506001546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610d74903090600401612a1e565b60206040518083038186803b158015610d8c57600080fd5b505afa158015610da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc4919061299e565b600154604051632e1a7d4d60e01b81529192506001600160a01b031690632e1a7d4d90610df5908490600401612c28565b600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015610e54573d6000803e3d6000fd5b50836001600160a01b0316336001600160a01b03167f0895ba7c28eabd9a8e5510a35c93d3a99c42e2095c20deebdfb6a3063c15fa3d8360405161068d9190612c28565b6000805460ff1615610ebc5760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660019081178083559054604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c692610f059288929190911690600401612a32565b60206040518083038186803b158015610f1d57600080fd5b505afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f55919061292e565b90506001600160a01b038116610f7d5760405162461bcd60e51b81526004016100da90612a89565b6000816001600160a01b031663ac1fbc986040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb857600080fd5b505afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061292e565b90506000816001600160a01b03166370a08231336040518263ffffffff1660e01b81526004016110209190612a1e565b60206040518083038186803b15801561103857600080fd5b505afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611070919061299e565b6040516323b872dd60e01b81529091506001600160a01b038316906323b872dd906110a390339030908690600401612a4c565b602060405180830381600087803b1580156110bd57600080fd5b505af11580156110d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f5919061297e565b5060405163c0a5f6ff60e01b81526001600160a01b0384169063c0a5f6ff90611122908990600401612c28565b602060405180830381600087803b15801561113c57600080fd5b505af1158015611150573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611174919061299e565b506040516370a0823160e01b81526001600160a01b038316906370a08231906111a1903090600401612a1e565b60206040518083038186803b1580156111b957600080fd5b505afa1580156111cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f1919061299e565b60405163a9059cbb60e01b81529091506001600160a01b0383169063a9059cbb906112229033908590600401612a70565b602060405180830381600087803b15801561123c57600080fd5b505af1158015611250573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611274919061297e565b506001546040516370a0823160e01b81526000916001600160a01b0316906370a08231906112a6903090600401612a1e565b60206040518083038186803b1580156112be57600080fd5b505afa1580156112d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f6919061299e565b600154604051632e1a7d4d60e01b81529192506001600160a01b031690632e1a7d4d90611327908490600401612c28565b600060405180830381600087803b15801561134157600080fd5b505af1158015611355573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015611386573d6000803e3d6000fd5b50836001600160a01b0316336001600160a01b03167f0895ba7c28eabd9a8e5510a35c93d3a99c42e2095c20deebdfb6a3063c15fa3d836040516113ca9190612c28565b60405180910390a36000805460ff191690559695505050505050565b6000805460ff161561140a5760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660019081178083559054604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c692611451929116908790600401612a32565b60206040518083038186803b15801561146957600080fd5b505afa15801561147d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a1919061292e565b90506001600160a01b0381166114c95760405162461bcd60e51b81526004016100da90612a89565b6000816001600160a01b031663d689107c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561150457600080fd5b505afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c919061292e565b90506000816001600160a01b03166370a08231336040518263ffffffff1660e01b815260040161156c9190612a1e565b60206040518083038186803b15801561158457600080fd5b505afa158015611598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bc919061299e565b6040516323b872dd60e01b81529091506001600160a01b038316906323b872dd906115ef90339030908690600401612a4c565b602060405180830381600087803b15801561160957600080fd5b505af115801561161d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611641919061297e565b5060405163f98bea1560e01b81526001600160a01b0384169063f98bea159061166e908990600401612c28565b602060405180830381600087803b15801561168857600080fd5b505af115801561169c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c0919061299e565b506040516370a0823160e01b81526001600160a01b038316906370a08231906116ed903090600401612a1e565b60206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d919061299e565b60405163a9059cbb60e01b81529091506001600160a01b0383169063a9059cbb9061176e9033908590600401612a70565b602060405180830381600087803b15801561178857600080fd5b505af115801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c0919061297e565b506001546040516370a0823160e01b81526000916001600160a01b0316906370a08231906117f2903090600401612a1e565b60206040518083038186803b15801561180a57600080fd5b505afa15801561181e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611842919061299e565b600154604051632e1a7d4d60e01b81529192506001600160a01b031690632e1a7d4d90611873908490600401612c28565b600060405180830381600087803b15801561188d57600080fd5b505af11580156118a1573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f193505050501580156118d2573d6000803e3d6000fd5b50836001600160a01b0316336001600160a01b03167fa3c769d2387bbb62e448c2cceed2296eaefb147f02f8848fa21fbd165d1cefb4836040516113ca9190612c28565b60005460ff16156119395760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660011790553482146119655760405162461bcd60e51b81526004016100da90612b5a565b60008054600154604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c6926119a1929116908690600401612a32565b60206040518083038186803b1580156119b957600080fd5b505afa1580156119cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f1919061292e565b90506001600160a01b038116611a195760405162461bcd60e51b81526004016100da90612a89565b600160009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611a6957600080fd5b505af1158015611a7d573d6000803e3d6000fd5b505060015460405163095ea7b360e01b81526001600160a01b03909116935063095ea7b39250611ab4915084908790600401612a70565b602060405180830381600087803b158015611ace57600080fd5b505af1158015611ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b06919061297e565b5060405163aa06ce9b60e01b81526001600160a01b0382169063aa06ce9b90611b359033908790600401612a70565b602060405180830381600087803b158015611b4f57600080fd5b505af1158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b87919061299e565b50806001600160a01b0316336001600160a01b03167f39666a73ac2731563def85cdcf4732574a8234b02aff775bf2eb8902e83974df85604051611bcb9190612c28565b60405180910390a350506000805460ff1916905550565b60005460ff1615611c055760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff19166001179055348214611c315760405162461bcd60e51b81526004016100da90612b5a565b60008054600154604051630939d86360e11b81526101009092046001600160a01b0390811692631273b0c692611c6e928792911690600401612a32565b60206040518083038186803b158015611c8657600080fd5b505afa158015611c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbe919061292e565b90506001600160a01b038116611ce65760405162461bcd60e51b81526004016100da90612a89565b600160009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3657600080fd5b505af1158015611d4a573d6000803e3d6000fd5b505060015460405163095ea7b360e01b81526001600160a01b03909116935063095ea7b39250611d81915084908790600401612a70565b602060405180830381600087803b158015611d9b57600080fd5b505af1158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd3919061297e565b506040516317c5e7d960e21b81526001600160a01b03821690635f179f6490611e029033908790600401612a70565b602060405180830381600087803b158015611e1c57600080fd5b505af1158015611e30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e54919061299e565b50806001600160a01b0316336001600160a01b03167f1a5e8be01b6a2fef916c1dd60b6e2638ce21d0c12f6088499061dbca6a1b9d1985604051611bcb9190612c28565b6000805460ff1615611ebc5760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660019081178083559054604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c692611f05928a929190911690600401612a32565b60206040518083038186803b158015611f1d57600080fd5b505afa158015611f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f55919061292e565b90506001600160a01b038116611f7d5760405162461bcd60e51b81526004016100da90612a89565b611f976001600160a01b038616828663ffffffff6126f916565b611fa28533866127f3565b604051638dae733360e01b81526001600160a01b03821690638dae733390611fd09087908790600401612c3f565b602060405180830381600087803b158015611fea57600080fd5b505af1158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612022919061299e565b600154604051632e1a7d4d60e01b81529193506001600160a01b031690632e1a7d4d90612053908590600401612c28565b600060405180830381600087803b15801561206d57600080fd5b505af1158015612081573d6000803e3d6000fd5b505060405133925084156108fc02915084906000818181858888f193505050501580156120b2573d6000803e3d6000fd5b50846001600160a01b0316336001600160a01b03167f9f16cd7297d1abf6cd80a94e26c0149f7c6fb6d6aea14edc4dbd6243e2d79a8c86856040516120f8929190612c31565b60405180910390a3506000805460ff191690559392505050565b6000805460ff16156121365760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660011790553483146121625760405162461bcd60e51b81526004016100da90612b5a565b60008054600154604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c69261219e929116908990600401612a32565b60206040518083038186803b1580156121b657600080fd5b505afa1580156121ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ee919061292e565b90506001600160a01b0381166122165760405162461bcd60e51b81526004016100da90612a89565b600160009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561226657600080fd5b505af115801561227a573d6000803e3d6000fd5b505060015460405163095ea7b360e01b81526001600160a01b03909116935063095ea7b392506122b1915084908890600401612a70565b602060405180830381600087803b1580156122cb57600080fd5b505af11580156122df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612303919061297e565b50604051638dae733360e01b81526001600160a01b03821690638dae7333906123329087908790600401612c3f565b602060405180830381600087803b15801561234c57600080fd5b505af1158015612360573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612384919061299e565b91506123918533846126b2565b846001600160a01b0316336001600160a01b03167f24389fd2849ecc5469e5ed82254a7f446667bf060eec2f26ea2440da69ce326986856040516120f8929190612c31565b6000805460ff16156123fa5760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660019081178083559054604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c692612441929116908990600401612a32565b60206040518083038186803b15801561245957600080fd5b505afa15801561246d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612491919061292e565b90506001600160a01b0381166124b95760405162461bcd60e51b81526004016100da90612a89565b6040516306302ef960e21b81526001600160a01b038216906318c0bbe4906124e5908790600401612c28565b60206040518083038186803b1580156124fd57600080fd5b505afa158015612511573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612535919061299e565b91506125428533846127f3565b61255c6001600160a01b038616828463ffffffff6126f916565b60405163733e738360e11b81526001600160a01b0382169063e67ce7069061258a9087908790600401612c3f565b602060405180830381600087803b1580156125a457600080fd5b505af11580156125b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125dc919061299e565b50600154604051632e1a7d4d60e01b81526001600160a01b0390911690632e1a7d4d9061260d908790600401612c28565b600060405180830381600087803b15801561262757600080fd5b505af115801561263b573d6000803e3d6000fd5b505060405133925086156108fc02915086906000818181858888f1935050505015801561266c573d6000803e3d6000fd5b50846001600160a01b0316336001600160a01b03167f4a1f3fcbe8155e39218bea09dc7aff7d7254987ca870ff05d2ef5c878461fee486856040516120f8929190612c31565b6126cc6001600160a01b038416838363ffffffff61280e16565b505050565b6000828211156126f35760405162461bcd60e51b81526004016100da90612b09565b50900390565b8015806127815750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e9061272f9030908690600401612a32565b60206040518083038186803b15801561274757600080fd5b505afa15801561275b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277f919061299e565b155b61279d5760405162461bcd60e51b81526004016100da90612bd2565b6126cc8363095ea7b360e01b84846040516024016127bc929190612a70565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261282d565b6126cc6001600160a01b03841683308463ffffffff6128ea16565b6126cc8363a9059cbb60e01b84846040516024016127bc929190612a70565b60006060836001600160a01b03168360405161284991906129e5565b6000604051808303816000865af19150503d8060008114612886576040519150601f19603f3d011682016040523d82523d6000602084013e61288b565b606091505b5091509150816128ad5760405162461bcd60e51b81526004016100da90612ad4565b8051156128e457808060200190518101906128c8919061297e565b6128e45760405162461bcd60e51b81526004016100da90612b88565b50505050565b6128e4846323b872dd60e01b8585856040516024016127bc93929190612a4c565b60006020828403121561291c578081fd5b813561292781612c5c565b9392505050565b60006020828403121561293f578081fd5b815161292781612c5c565b60008060006060848603121561295e578182fd5b833561296981612c5c565b95602085013595506040909401359392505050565b60006020828403121561298f578081fd5b81518015158114612927578182fd5b6000602082840312156129af578081fd5b5051919050565b600080604083850312156129c8578182fd5b8235915060208301356129da81612c5c565b809150509250929050565b60008251815b81811015612a0557602081860181015185830152016129eb565b81811115612a135782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252600e908201526d1113d113d7d393d517d1561254d560921b604082015260600190565b60208082526009908201526814915153951490539560ba1b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b60208082526014908201527357455f53415645445f594f55525f4554485f3a2960601b604082015260600190565b60208082526014908201527308aa890be829a9eaa9ca8be9c9ea8be9a82a886960631b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b90815260200190565b918252602082015260400190565b918252602082015260606040820181905260009082015260800190565b6001600160a01b0381168114612c7157600080fd5b5056fea2646970667358221220cea1a6c3e007c626e0c73448db5f7fd073d1f6e54609a9087f423463c611166b64736f6c63430006090033", + "deployedBytecode": "0x6080604052600436106100ab5760003560e01c8063827df19411610064578063827df194146101cf578063b56a1d03146101ef578063ba9344a414610202578063d668e02614610215578063e513462814610235578063e8d522bb14610248576100e5565b80630ae4b86d1461010f5780630d4eec8f1461014557806333e000531461016757806339239f721461017a5780633cff9b561461018f578063770e96d3146101af576100e5565b366100e5576001546001600160a01b031633146100e35760405162461bcd60e51b81526004016100da90612b2c565b60405180910390fd5b005b6001546001600160a01b031633146100e35760405162461bcd60e51b81526004016100da90612b2c565b34801561011b57600080fd5b5061012f61012a36600461290b565b610268565b60405161013c9190612c28565b60405180910390f35b34801561015157600080fd5b5061015a6106a8565b60405161013c9190612a1e565b61012f61017536600461294a565b6106b7565b34801561018657600080fd5b5061015a610a5d565b34801561019b57600080fd5b5061012f6101aa36600461290b565b610a71565b3480156101bb57600080fd5b5061012f6101ca3660046129b6565b610e98565b3480156101db57600080fd5b5061012f6101ea3660046129b6565b6113e6565b6100e36101fd3660046129b6565b611916565b6100e36102103660046129b6565b611be2565b34801561022157600080fd5b5061012f61023036600461294a565b611e98565b61012f61024336600461294a565b612112565b34801561025457600080fd5b5061012f61026336600461294a565b6123d6565b6000805460ff161561028c5760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660019081178083559054604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c6926102d3929116908790600401612a32565b60206040518083038186803b1580156102eb57600080fd5b505afa1580156102ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610323919061292e565b90506001600160a01b03811661034b5760405162461bcd60e51b81526004016100da90612a89565b6000816001600160a01b031663d689107c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561038657600080fd5b505afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be919061292e565b90506000816001600160a01b03166370a08231336040518263ffffffff1660e01b81526004016103ee9190612a1e565b60206040518083038186803b15801561040657600080fd5b505afa15801561041a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043e919061299e565b6040516323b872dd60e01b81529091506001600160a01b038316906323b872dd9061047190339030908690600401612a4c565b602060405180830381600087803b15801561048b57600080fd5b505af115801561049f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c3919061297e565b50826001600160a01b031663d47eaa376040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156104ff57600080fd5b505af1158015610513573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610537919061299e565b506001546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610569903090600401612a1e565b60206040518083038186803b15801561058157600080fd5b505afa158015610595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b9919061299e565b600154604051632e1a7d4d60e01b81529192506001600160a01b031690632e1a7d4d906105ea908490600401612c28565b600060405180830381600087803b15801561060457600080fd5b505af1158015610618573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015610649573d6000803e3d6000fd5b50836001600160a01b0316336001600160a01b03167fa3c769d2387bbb62e448c2cceed2296eaefb147f02f8848fa21fbd165d1cefb48360405161068d9190612c28565b60405180910390a36000805460ff1916905595945050505050565b6001546001600160a01b031681565b6000805460ff16156106db5760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660011790553482146107075760405162461bcd60e51b81526004016100da90612b5a565b60008054600154604051630939d86360e11b81526101009092046001600160a01b0390811692631273b0c692610744928a92911690600401612a32565b60206040518083038186803b15801561075c57600080fd5b505afa158015610770573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610794919061292e565b90506001600160a01b0381166107bc5760405162461bcd60e51b81526004016100da90612a89565b6040516306302ef960e21b81526001600160a01b038216906318c0bbe4906107e8908790600401612c28565b60206040518083038186803b15801561080057600080fd5b505afa158015610814573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610838919061299e565b9150600160009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561088a57600080fd5b505af115801561089e573d6000803e3d6000fd5b505060015460405163095ea7b360e01b81526001600160a01b03909116935063095ea7b392506108d5915084908690600401612a70565b602060405180830381600087803b1580156108ef57600080fd5b505af1158015610903573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610927919061297e565b5060405163733e738360e11b81526001600160a01b0382169063e67ce706906109569087908790600401612c3f565b602060405180830381600087803b15801561097057600080fd5b505af1158015610984573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a8919061299e565b506109b48533866126b2565b60006109c6848463ffffffff6126d116565b905080156109fd57604051339082156108fc029083906000818181858888f193505050501580156109fb573d6000803e3d6000fd5b505b856001600160a01b0316336001600160a01b03167f26073ab24c5b344998011be45a52267573aac5a64b1940dc1bb78de8b1b4f2c98786604051610a42929190612c31565b60405180910390a350506000805460ff191690559392505050565b60005461010090046001600160a01b031681565b6000805460ff1615610a955760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660019081178083559054604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c692610ade9288929190911690600401612a32565b60206040518083038186803b158015610af657600080fd5b505afa158015610b0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2e919061292e565b90506001600160a01b038116610b565760405162461bcd60e51b81526004016100da90612a89565b6000816001600160a01b031663ac1fbc986040518163ffffffff1660e01b815260040160206040518083038186803b158015610b9157600080fd5b505afa158015610ba5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc9919061292e565b90506000816001600160a01b03166370a08231336040518263ffffffff1660e01b8152600401610bf99190612a1e565b60206040518083038186803b158015610c1157600080fd5b505afa158015610c25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c49919061299e565b6040516323b872dd60e01b81529091506001600160a01b038316906323b872dd90610c7c90339030908690600401612a4c565b602060405180830381600087803b158015610c9657600080fd5b505af1158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce919061297e565b50826001600160a01b031663c59203af6040518163ffffffff1660e01b8152600401602060405180830381600087803b158015610d0a57600080fd5b505af1158015610d1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d42919061299e565b506001546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610d74903090600401612a1e565b60206040518083038186803b158015610d8c57600080fd5b505afa158015610da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc4919061299e565b600154604051632e1a7d4d60e01b81529192506001600160a01b031690632e1a7d4d90610df5908490600401612c28565b600060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015610e54573d6000803e3d6000fd5b50836001600160a01b0316336001600160a01b03167f0895ba7c28eabd9a8e5510a35c93d3a99c42e2095c20deebdfb6a3063c15fa3d8360405161068d9190612c28565b6000805460ff1615610ebc5760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660019081178083559054604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c692610f059288929190911690600401612a32565b60206040518083038186803b158015610f1d57600080fd5b505afa158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f55919061292e565b90506001600160a01b038116610f7d5760405162461bcd60e51b81526004016100da90612a89565b6000816001600160a01b031663ac1fbc986040518163ffffffff1660e01b815260040160206040518083038186803b158015610fb857600080fd5b505afa158015610fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff0919061292e565b90506000816001600160a01b03166370a08231336040518263ffffffff1660e01b81526004016110209190612a1e565b60206040518083038186803b15801561103857600080fd5b505afa15801561104c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611070919061299e565b6040516323b872dd60e01b81529091506001600160a01b038316906323b872dd906110a390339030908690600401612a4c565b602060405180830381600087803b1580156110bd57600080fd5b505af11580156110d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f5919061297e565b5060405163c0a5f6ff60e01b81526001600160a01b0384169063c0a5f6ff90611122908990600401612c28565b602060405180830381600087803b15801561113c57600080fd5b505af1158015611150573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611174919061299e565b506040516370a0823160e01b81526001600160a01b038316906370a08231906111a1903090600401612a1e565b60206040518083038186803b1580156111b957600080fd5b505afa1580156111cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f1919061299e565b60405163a9059cbb60e01b81529091506001600160a01b0383169063a9059cbb906112229033908590600401612a70565b602060405180830381600087803b15801561123c57600080fd5b505af1158015611250573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611274919061297e565b506001546040516370a0823160e01b81526000916001600160a01b0316906370a08231906112a6903090600401612a1e565b60206040518083038186803b1580156112be57600080fd5b505afa1580156112d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f6919061299e565b600154604051632e1a7d4d60e01b81529192506001600160a01b031690632e1a7d4d90611327908490600401612c28565b600060405180830381600087803b15801561134157600080fd5b505af1158015611355573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f19350505050158015611386573d6000803e3d6000fd5b50836001600160a01b0316336001600160a01b03167f0895ba7c28eabd9a8e5510a35c93d3a99c42e2095c20deebdfb6a3063c15fa3d836040516113ca9190612c28565b60405180910390a36000805460ff191690559695505050505050565b6000805460ff161561140a5760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660019081178083559054604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c692611451929116908790600401612a32565b60206040518083038186803b15801561146957600080fd5b505afa15801561147d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a1919061292e565b90506001600160a01b0381166114c95760405162461bcd60e51b81526004016100da90612a89565b6000816001600160a01b031663d689107c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561150457600080fd5b505afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c919061292e565b90506000816001600160a01b03166370a08231336040518263ffffffff1660e01b815260040161156c9190612a1e565b60206040518083038186803b15801561158457600080fd5b505afa158015611598573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bc919061299e565b6040516323b872dd60e01b81529091506001600160a01b038316906323b872dd906115ef90339030908690600401612a4c565b602060405180830381600087803b15801561160957600080fd5b505af115801561161d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611641919061297e565b5060405163f98bea1560e01b81526001600160a01b0384169063f98bea159061166e908990600401612c28565b602060405180830381600087803b15801561168857600080fd5b505af115801561169c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c0919061299e565b506040516370a0823160e01b81526001600160a01b038316906370a08231906116ed903090600401612a1e565b60206040518083038186803b15801561170557600080fd5b505afa158015611719573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173d919061299e565b60405163a9059cbb60e01b81529091506001600160a01b0383169063a9059cbb9061176e9033908590600401612a70565b602060405180830381600087803b15801561178857600080fd5b505af115801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c0919061297e565b506001546040516370a0823160e01b81526000916001600160a01b0316906370a08231906117f2903090600401612a1e565b60206040518083038186803b15801561180a57600080fd5b505afa15801561181e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611842919061299e565b600154604051632e1a7d4d60e01b81529192506001600160a01b031690632e1a7d4d90611873908490600401612c28565b600060405180830381600087803b15801561188d57600080fd5b505af11580156118a1573d6000803e3d6000fd5b505060405133925083156108fc02915083906000818181858888f193505050501580156118d2573d6000803e3d6000fd5b50836001600160a01b0316336001600160a01b03167fa3c769d2387bbb62e448c2cceed2296eaefb147f02f8848fa21fbd165d1cefb4836040516113ca9190612c28565b60005460ff16156119395760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660011790553482146119655760405162461bcd60e51b81526004016100da90612b5a565b60008054600154604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c6926119a1929116908690600401612a32565b60206040518083038186803b1580156119b957600080fd5b505afa1580156119cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119f1919061292e565b90506001600160a01b038116611a195760405162461bcd60e51b81526004016100da90612a89565b600160009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611a6957600080fd5b505af1158015611a7d573d6000803e3d6000fd5b505060015460405163095ea7b360e01b81526001600160a01b03909116935063095ea7b39250611ab4915084908790600401612a70565b602060405180830381600087803b158015611ace57600080fd5b505af1158015611ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b06919061297e565b5060405163aa06ce9b60e01b81526001600160a01b0382169063aa06ce9b90611b359033908790600401612a70565b602060405180830381600087803b158015611b4f57600080fd5b505af1158015611b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b87919061299e565b50806001600160a01b0316336001600160a01b03167f39666a73ac2731563def85cdcf4732574a8234b02aff775bf2eb8902e83974df85604051611bcb9190612c28565b60405180910390a350506000805460ff1916905550565b60005460ff1615611c055760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff19166001179055348214611c315760405162461bcd60e51b81526004016100da90612b5a565b60008054600154604051630939d86360e11b81526101009092046001600160a01b0390811692631273b0c692611c6e928792911690600401612a32565b60206040518083038186803b158015611c8657600080fd5b505afa158015611c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cbe919061292e565b90506001600160a01b038116611ce65760405162461bcd60e51b81526004016100da90612a89565b600160009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d3657600080fd5b505af1158015611d4a573d6000803e3d6000fd5b505060015460405163095ea7b360e01b81526001600160a01b03909116935063095ea7b39250611d81915084908790600401612a70565b602060405180830381600087803b158015611d9b57600080fd5b505af1158015611daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dd3919061297e565b506040516317c5e7d960e21b81526001600160a01b03821690635f179f6490611e029033908790600401612a70565b602060405180830381600087803b158015611e1c57600080fd5b505af1158015611e30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e54919061299e565b50806001600160a01b0316336001600160a01b03167f1a5e8be01b6a2fef916c1dd60b6e2638ce21d0c12f6088499061dbca6a1b9d1985604051611bcb9190612c28565b6000805460ff1615611ebc5760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660019081178083559054604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c692611f05928a929190911690600401612a32565b60206040518083038186803b158015611f1d57600080fd5b505afa158015611f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f55919061292e565b90506001600160a01b038116611f7d5760405162461bcd60e51b81526004016100da90612a89565b611f976001600160a01b038616828663ffffffff6126f916565b611fa28533866127f3565b604051638dae733360e01b81526001600160a01b03821690638dae733390611fd09087908790600401612c3f565b602060405180830381600087803b158015611fea57600080fd5b505af1158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612022919061299e565b600154604051632e1a7d4d60e01b81529193506001600160a01b031690632e1a7d4d90612053908590600401612c28565b600060405180830381600087803b15801561206d57600080fd5b505af1158015612081573d6000803e3d6000fd5b505060405133925084156108fc02915084906000818181858888f193505050501580156120b2573d6000803e3d6000fd5b50846001600160a01b0316336001600160a01b03167f9f16cd7297d1abf6cd80a94e26c0149f7c6fb6d6aea14edc4dbd6243e2d79a8c86856040516120f8929190612c31565b60405180910390a3506000805460ff191690559392505050565b6000805460ff16156121365760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660011790553483146121625760405162461bcd60e51b81526004016100da90612b5a565b60008054600154604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c69261219e929116908990600401612a32565b60206040518083038186803b1580156121b657600080fd5b505afa1580156121ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ee919061292e565b90506001600160a01b0381166122165760405162461bcd60e51b81526004016100da90612a89565b600160009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b15801561226657600080fd5b505af115801561227a573d6000803e3d6000fd5b505060015460405163095ea7b360e01b81526001600160a01b03909116935063095ea7b392506122b1915084908890600401612a70565b602060405180830381600087803b1580156122cb57600080fd5b505af11580156122df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612303919061297e565b50604051638dae733360e01b81526001600160a01b03821690638dae7333906123329087908790600401612c3f565b602060405180830381600087803b15801561234c57600080fd5b505af1158015612360573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612384919061299e565b91506123918533846126b2565b846001600160a01b0316336001600160a01b03167f24389fd2849ecc5469e5ed82254a7f446667bf060eec2f26ea2440da69ce326986856040516120f8929190612c31565b6000805460ff16156123fa5760405162461bcd60e51b81526004016100da90612ab1565b6000805460ff191660019081178083559054604051630939d86360e11b81526001600160a01b03610100909304831692631273b0c692612441929116908990600401612a32565b60206040518083038186803b15801561245957600080fd5b505afa15801561246d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612491919061292e565b90506001600160a01b0381166124b95760405162461bcd60e51b81526004016100da90612a89565b6040516306302ef960e21b81526001600160a01b038216906318c0bbe4906124e5908790600401612c28565b60206040518083038186803b1580156124fd57600080fd5b505afa158015612511573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612535919061299e565b91506125428533846127f3565b61255c6001600160a01b038616828463ffffffff6126f916565b60405163733e738360e11b81526001600160a01b0382169063e67ce7069061258a9087908790600401612c3f565b602060405180830381600087803b1580156125a457600080fd5b505af11580156125b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125dc919061299e565b50600154604051632e1a7d4d60e01b81526001600160a01b0390911690632e1a7d4d9061260d908790600401612c28565b600060405180830381600087803b15801561262757600080fd5b505af115801561263b573d6000803e3d6000fd5b505060405133925086156108fc02915086906000818181858888f1935050505015801561266c573d6000803e3d6000fd5b50846001600160a01b0316336001600160a01b03167f4a1f3fcbe8155e39218bea09dc7aff7d7254987ca870ff05d2ef5c878461fee486856040516120f8929190612c31565b6126cc6001600160a01b038416838363ffffffff61280e16565b505050565b6000828211156126f35760405162461bcd60e51b81526004016100da90612b09565b50900390565b8015806127815750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e9061272f9030908690600401612a32565b60206040518083038186803b15801561274757600080fd5b505afa15801561275b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061277f919061299e565b155b61279d5760405162461bcd60e51b81526004016100da90612bd2565b6126cc8363095ea7b360e01b84846040516024016127bc929190612a70565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261282d565b6126cc6001600160a01b03841683308463ffffffff6128ea16565b6126cc8363a9059cbb60e01b84846040516024016127bc929190612a70565b60006060836001600160a01b03168360405161284991906129e5565b6000604051808303816000865af19150503d8060008114612886576040519150601f19603f3d011682016040523d82523d6000602084013e61288b565b606091505b5091509150816128ad5760405162461bcd60e51b81526004016100da90612ad4565b8051156128e457808060200190518101906128c8919061297e565b6128e45760405162461bcd60e51b81526004016100da90612b88565b50505050565b6128e4846323b872dd60e01b8585856040516024016127bc93929190612a4c565b60006020828403121561291c578081fd5b813561292781612c5c565b9392505050565b60006020828403121561293f578081fd5b815161292781612c5c565b60008060006060848603121561295e578182fd5b833561296981612c5c565b95602085013595506040909401359392505050565b60006020828403121561298f578081fd5b81518015158114612927578182fd5b6000602082840312156129af578081fd5b5051919050565b600080604083850312156129c8578182fd5b8235915060208301356129da81612c5c565b809150509250929050565b60008251815b81811015612a0557602081860181015185830152016129eb565b81811115612a135782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6020808252600e908201526d1113d113d7d393d517d1561254d560921b604082015260600190565b60208082526009908201526814915153951490539560ba1b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b60208082526014908201527357455f53415645445f594f55525f4554485f3a2960601b604082015260600190565b60208082526014908201527308aa890be829a9eaa9ca8be9c9ea8be9a82a886960631b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b90815260200190565b918252602082015260400190565b918252602082015260606040820181905260009082015260800190565b6001600160a01b0381168114612c7157600080fd5b5056fea2646970667358221220cea1a6c3e007c626e0c73448db5f7fd073d1f6e54609a9087f423463c611166b64736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "636:10948:0:-:0;;;1922:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1990:10;:20;;-1:-1:-1;;;;;;1990:20:0;;-1:-1:-1;;;;;1990:20:0;;;;;;;-1:-1:-1;2020:13:0;;-1:-1:-1;;;;;;2020:13:0;;;;;;;;636:10948;;303:415:-1;;;443:2;431:9;422:7;418:23;414:32;411:2;;;-1:-1;;449:12;411:2;89:6;83:13;101:33;128:5;101:33;;;612:2;670:22;;232:13;501:74;;-1:-1;250:41;232:13;250:41;;;620:82;;;;405:313;;;;;;1057:117;-1:-1;;;;;991:54;;1116:35;;1106:2;;1165:1;;1155:12;1106:2;1100:74;;;636:10948:0;;;;;;", + "deployedSourceMap": "636:10948:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2209:6;;-1:-1:-1;;;;;2209:6:0;2195:10;:20;2187:53;;;;-1:-1:-1;;;2187:53:0;;;;;;;;;;;;;;;;;636:10948;;2106:6;;-1:-1:-1;;;;;2106:6:0;2092:10;:20;2084:53;;;;-1:-1:-1;;;2084:53:0;;;;;;;;7400:988;;;;;;;;;;-1:-1:-1;7400:988:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;779:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;4663:967;;;;;;;;;:::i;748:25::-;;;;;;;;;;;;;:::i;10161:990::-;;;;;;;;;;-1:-1:-1;10161:990:0;;;;;;;;:::i;8964:1191::-;;;;;;;;;;-1:-1:-1;8964:1191:0;;;;;;;;:::i;6205:1189::-;;;;;;;;;;-1:-1:-1;6205:1189:0;;;;;;;;:::i;5636:563::-;;;;;;;;;:::i;8394:564::-;;;;;;;;;:::i;3879:778::-;;;;;;;;;;-1:-1:-1;3879:778:0;;;;;;;;:::i;2253:806::-;;;;;;;;;:::i;3065:808::-;;;;;;;;;;-1:-1:-1;3065:808:0;;;;;;;;:::i;7400:988::-;7516:22;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;548:9;:16;;-1:-1:-1;;548:16:39;560:4;548:16;;;;;;7598:6:0;;7569:55:::1;::::0;-1:-1:-1;;;7569:55:0;;-1:-1:-1;;;;;548:16:39;7578:10:0;;::::1;::::0;::::1;::::0;7569:28:::1;::::0;:55:::1;::::0;7598:6;::::1;::::0;7606:17;;7569:55:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7554:70:::0;-1:-1:-1;;;;;;7642:18:0;::::1;7634:45;;;;-1:-1:-1::0;;;7634:45:0::1;;;;;;;;;7689:18;7716:4;-1:-1:-1::0;;;;;7710:32:0::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7689:55;;7800:17;7827:10;-1:-1:-1::0;;;;;7820:28:0::1;;7849:10;7820:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7870:69;::::0;-1:-1:-1;;;7870:69:0;;7800:60;;-1:-1:-1;;;;;;7870:31:0;::::1;::::0;::::1;::::0;:69:::1;::::0;7902:10:::1;::::0;7922:4:::1;::::0;7800:60;;7870:69:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7955:4;-1:-1:-1::0;;;;;7949:27:0::1;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;8170:6:0::1;::::0;8163:39:::1;::::0;-1:-1:-1;;;8163:39:0;;8142:18:::1;::::0;-1:-1:-1;;;;;8170:6:0::1;::::0;8163:24:::1;::::0;:39:::1;::::0;8196:4:::1;::::0;8163:39:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8218:6;::::0;8212:34:::1;::::0;-1:-1:-1;;;8212:34:0;;8142:60;;-1:-1:-1;;;;;;8218:6:0::1;::::0;8212:22:::1;::::0;:34:::1;::::0;8142:60;;8212:34:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8256:31:0::1;::::0;:10:::1;::::0;-1:-1:-1;8256:31:0;::::1;;;::::0;-1:-1:-1;8276:10:0;;8256:31:::1;::::0;;;8276:10;8256;:31;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8337:4;-1:-1:-1::0;;;;;8302:52:0::1;8325:10;-1:-1:-1::0;;;;;8302:52:0::1;;8343:10;8302:52;;;;;;;;;;;;;;;597:5:39::0;585:17;;-1:-1:-1;;585:17:39;;;8371:10:0;7400:988;-1:-1:-1;;;;;7400:988:0:o;779:29::-;;;-1:-1:-1;;;;;779:29:0;;:::o;4663:967::-;4833:20;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;548:9;:16;;-1:-1:-1;;548:16:39;560:4;548:16;;;4873:9:0::1;:28:::0;::::1;4865:61;;;;-1:-1:-1::0;;;4865:61:0::1;;;;;;;;;4936:12;4960:10:::0;;::::1;4998:6:::0;4951:54:::1;::::0;-1:-1:-1;;;4951:54:0;;4960:10:::1;::::0;;::::1;-1:-1:-1::0;;;;;4960:10:0;;::::1;::::0;4951:28:::1;::::0;:54:::1;::::0;4980:16;;4998:6;::::1;::::0;4951:54:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4936:69:::0;-1:-1:-1;;;;;;5023:18:0;::::1;5015:45;;;;-1:-1:-1::0;;;5015:45:0::1;;;;;;;;;5085:42;::::0;-1:-1:-1;;;5085:42:0;;-1:-1:-1;;;;;5085:29:0;::::1;::::0;::::1;::::0;:42:::1;::::0;5115:11;;5085:42:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5070:57;;5143:6;;;;;;;;;-1:-1:-1::0;;;;;5143:6:0::1;-1:-1:-1::0;;;;;5137:21:0::1;;5166:12;5137:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5197:6:0::1;::::0;5191:41:::1;::::0;-1:-1:-1;;;5191:41:0;;-1:-1:-1;;;;;5197:6:0;;::::1;::::0;-1:-1:-1;5191:21:0::1;::::0;-1:-1:-1;5191:41:0::1;::::0;-1:-1:-1;5213:4:0;;5219:12;;5191:41:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;5242:58:0::1;::::0;-1:-1:-1;;;5242:58:0;;-1:-1:-1;;;;;5242:24:0;::::1;::::0;::::1;::::0;:58:::1;::::0;5267:11;;5280:15;;5242:58:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5310:55;5323:16;5341:10;5353:11;5310:12;:55::i;:::-;5375:14;5392:33;:15:::0;5412:12;5392:33:::1;:19;:33;:::i;:::-;5375:50:::0;-1:-1:-1;5439:10:0;;5435:68:::1;;5465:27;::::0;:10:::1;::::0;:27;::::1;;;::::0;5485:6;;5465:27:::1;::::0;;;5485:6;5465:10;:27;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;5435:68;5550:16;-1:-1:-1::0;;;;;5517:77:0::1;5538:10;-1:-1:-1::0;;;;;5517:77:0::1;;5568:11;5581:12;5517:77;;;;;;;;;;;;;;;;-1:-1:-1::0;;597:5:39;585:17;;-1:-1:-1;;585:17:39;;;4663:967:0;;-1:-1:-1;;;4663:967:0:o;748:25::-;;;;;;-1:-1:-1;;;;;748:25:0;;:::o;10161:990::-;10277:22;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;548:9;:16;;-1:-1:-1;;548:16:39;560:4;548:16;;;;;;10377:6:0;;10330:54:::1;::::0;-1:-1:-1;;;10330:54:0;;-1:-1:-1;;;;;548:16:39;10339:10:0;;::::1;::::0;::::1;::::0;10330:28:::1;::::0;:54:::1;::::0;10359:16;;10377:6;;;::::1;::::0;10330:54:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10315:69:::0;-1:-1:-1;;;;;;10402:18:0;::::1;10394:45;;;;-1:-1:-1::0;;;10394:45:0::1;;;;;;;;;10449:18;10476:4;-1:-1:-1::0;;;;;10470:33:0::1;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10449:56;;10561:17;10588:10;-1:-1:-1::0;;;;;10581:28:0::1;;10610:10;10581:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10631:69;::::0;-1:-1:-1;;;10631:69:0;;10561:60;;-1:-1:-1;;;;;;10631:31:0;::::1;::::0;::::1;::::0;:69:::1;::::0;10663:10:::1;::::0;10683:4:::1;::::0;10561:60;;10631:69:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10716:4;-1:-1:-1::0;;;;;10710:28:0::1;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;10932:6:0::1;::::0;10925:39:::1;::::0;-1:-1:-1;;;10925:39:0;;10904:18:::1;::::0;-1:-1:-1;;;;;10932:6:0::1;::::0;10925:24:::1;::::0;:39:::1;::::0;10958:4:::1;::::0;10925:39:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10980:6;::::0;10974:34:::1;::::0;-1:-1:-1;;;10974:34:0;;10904:60;;-1:-1:-1;;;;;;10980:6:0::1;::::0;10974:22:::1;::::0;:34:::1;::::0;10904:60;;10974:34:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;11018:31:0::1;::::0;:10:::1;::::0;-1:-1:-1;11018:31:0;::::1;;;::::0;-1:-1:-1;11038:10:0;;11018:31:::1;::::0;;;11038:10;11018;:31;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11100:4;-1:-1:-1::0;;;;;11064:53:0::1;11088:10;-1:-1:-1::0;;;;;11064:53:0::1;;11106:10;11064:53;;;;;;;8964:1191:::0;9096:22;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;548:9;:16;;-1:-1:-1;;548:16:39;560:4;548:16;;;;;;9196:6:0;;9149:54:::1;::::0;-1:-1:-1;;;9149:54:0;;-1:-1:-1;;;;;548:16:39;9158:10:0;;::::1;::::0;::::1;::::0;9149:28:::1;::::0;:54:::1;::::0;9178:16;;9196:6;;;::::1;::::0;9149:54:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9134:69:::0;-1:-1:-1;;;;;;9221:18:0;::::1;9213:45;;;;-1:-1:-1::0;;;9213:45:0::1;;;;;;;;;9268:18;9295:4;-1:-1:-1::0;;;;;9289:33:0::1;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9268:56;;9380:17;9407:10;-1:-1:-1::0;;;;;9400:28:0::1;;9429:10;9400:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9450:69;::::0;-1:-1:-1;;;9450:69:0;;9380:60;;-1:-1:-1;;;;;;9450:31:0;::::1;::::0;::::1;::::0;:69:::1;::::0;9482:10:::1;::::0;9502:4:::1;::::0;9380:60;;9450:69:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;9529:36:0::1;::::0;-1:-1:-1;;;9529:36:0;;-1:-1:-1;;;;;9529:25:0;::::1;::::0;::::1;::::0;:36:::1;::::0;9555:9;;9529:36:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;9641:43:0::1;::::0;-1:-1:-1;;;9641:43:0;;-1:-1:-1;;;;;9641:28:0;::::1;::::0;::::1;::::0;:43:::1;::::0;9678:4:::1;::::0;9641:43:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9694:50;::::0;-1:-1:-1;;;9694:50:0;;9629:55;;-1:-1:-1;;;;;;9694:27:0;::::1;::::0;::::1;::::0;:50:::1;::::0;9722:10:::1;::::0;9629:55;;9694:50:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;9936:6:0::1;::::0;9929:39:::1;::::0;-1:-1:-1;;;9929:39:0;;9908:18:::1;::::0;-1:-1:-1;;;;;9936:6:0::1;::::0;9929:24:::1;::::0;:39:::1;::::0;9962:4:::1;::::0;9929:39:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9984:6;::::0;9978:34:::1;::::0;-1:-1:-1;;;9978:34:0;;9908:60;;-1:-1:-1;;;;;;9984:6:0::1;::::0;9978:22:::1;::::0;:34:::1;::::0;9908:60;;9978:34:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;10022:31:0::1;::::0;:10:::1;::::0;-1:-1:-1;10022:31:0;::::1;;;::::0;-1:-1:-1;10042:10:0;;10022:31:::1;::::0;;;10042:10;10022;:31;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10104:4;-1:-1:-1::0;;;;;10068:53:0::1;10092:10;-1:-1:-1::0;;;;;10068:53:0::1;;10110:10;10068:53;;;;;;;;;;;;;;;597:5:39::0;585:17;;-1:-1:-1;;585:17:39;;;10138:10:0;8964:1191;-1:-1:-1;;;;;;8964:1191:0:o;6205:1189::-;6337:22;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;548:9;:16;;-1:-1:-1;;548:16:39;560:4;548:16;;;;;;6419:6:0;;6390:55:::1;::::0;-1:-1:-1;;;6390:55:0;;-1:-1:-1;;;;;548:16:39;6399:10:0;;::::1;::::0;::::1;::::0;6390:28:::1;::::0;:55:::1;::::0;6419:6;::::1;::::0;6427:17;;6390:55:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6375:70:::0;-1:-1:-1;;;;;;6463:18:0;::::1;6455:45;;;;-1:-1:-1::0;;;6455:45:0::1;;;;;;;;;6510:18;6537:4;-1:-1:-1::0;;;;;6531:32:0::1;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6510:55;;6621:17;6648:10;-1:-1:-1::0;;;;;6641:28:0::1;;6670:10;6641:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6691:69;::::0;-1:-1:-1;;;6691:69:0;;6621:60;;-1:-1:-1;;;;;;6691:31:0;::::1;::::0;::::1;::::0;:69:::1;::::0;6723:10:::1;::::0;6743:4:::1;::::0;6621:60;;6691:69:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;6770:35:0::1;::::0;-1:-1:-1;;;6770:35:0;;-1:-1:-1;;;;;6770:24:0;::::1;::::0;::::1;::::0;:35:::1;::::0;6795:9;;6770:35:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;6881:43:0::1;::::0;-1:-1:-1;;;6881:43:0;;-1:-1:-1;;;;;6881:28:0;::::1;::::0;::::1;::::0;:43:::1;::::0;6918:4:::1;::::0;6881:43:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6934:50;::::0;-1:-1:-1;;;6934:50:0;;6869:55;;-1:-1:-1;;;;;;6934:27:0;::::1;::::0;::::1;::::0;:50:::1;::::0;6962:10:::1;::::0;6869:55;;6934:50:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;7176:6:0::1;::::0;7169:39:::1;::::0;-1:-1:-1;;;7169:39:0;;7148:18:::1;::::0;-1:-1:-1;;;;;7176:6:0::1;::::0;7169:24:::1;::::0;:39:::1;::::0;7202:4:::1;::::0;7169:39:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7224:6;::::0;7218:34:::1;::::0;-1:-1:-1;;;7218:34:0;;7148:60;;-1:-1:-1;;;;;;7224:6:0::1;::::0;7218:22:::1;::::0;:34:::1;::::0;7148:60;;7218:34:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7262:31:0::1;::::0;:10:::1;::::0;-1:-1:-1;7262:31:0;::::1;;;::::0;-1:-1:-1;7282:10:0;;7262:31:::1;::::0;;;7282:10;7262;:31;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;7343:4;-1:-1:-1::0;;;;;7308:52:0::1;7331:10;-1:-1:-1::0;;;;;7308:52:0::1;;7349:10;7308:52;;;;;;;5636:563:::0;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;548:9;:16;;-1:-1:-1;;548:16:39;560:4;548:16;;;5788:9:0::1;:22:::0;::::1;5780:55;;;;-1:-1:-1::0;;;5780:55:0::1;;;;;;;;;5845:12;5869:10:::0;;::::1;5889:6:::0;5860:55:::1;::::0;-1:-1:-1;;;5860:55:0;;-1:-1:-1;;;;;5869:10:0::1;::::0;;::::1;::::0;::::1;::::0;5860:28:::1;::::0;:55:::1;::::0;5889:6;::::1;::::0;5897:17;;5860:55:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5845:70:::0;-1:-1:-1;;;;;;5933:18:0;::::1;5925:45;;;;-1:-1:-1::0;;;5925:45:0::1;;;;;;;;;5986:6;;;;;;;;;-1:-1:-1::0;;;;;5986:6:0::1;-1:-1:-1::0;;;;;5980:21:0::1;;6009:9;5980:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6037:6:0::1;::::0;6031:38:::1;::::0;-1:-1:-1;;;6031:38:0;;-1:-1:-1;;;;;6037:6:0;;::::1;::::0;-1:-1:-1;6031:21:0::1;::::0;-1:-1:-1;6031:38:0::1;::::0;-1:-1:-1;6053:4:0;;6059:9;;6031:38:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;6079:48:0::1;::::0;-1:-1:-1;;;6079:48:0;;-1:-1:-1;;;;;6079:25:0;::::1;::::0;::::1;::::0;:48:::1;::::0;6105:10:::1;::::0;6117:9;;6079:48:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6176:4;-1:-1:-1::0;;;;;6142:50:0::1;6164:10;-1:-1:-1::0;;;;;6142:50:0::1;;6182:9;6142:50;;;;;;;;;;;;;;;-1:-1:-1::0;;597:5:39;585:17;;-1:-1:-1;;585:17:39;;;-1:-1:-1;5636:563:0:o;8394:564::-;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;548:9;:16;;-1:-1:-1;;548:16:39;560:4;548:16;;;8546:9:0::1;:22:::0;::::1;8538:55;;;;-1:-1:-1::0;;;8538:55:0::1;;;;;;;;;8603:12;8627:10:::0;;::::1;8665:6:::0;8618:54:::1;::::0;-1:-1:-1;;;8618:54:0;;8627:10:::1;::::0;;::::1;-1:-1:-1::0;;;;;8627:10:0;;::::1;::::0;8618:28:::1;::::0;:54:::1;::::0;8647:16;;8665:6;::::1;::::0;8618:54:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8603:69:::0;-1:-1:-1;;;;;;8690:18:0;::::1;8682:45;;;;-1:-1:-1::0;;;8682:45:0::1;;;;;;;;;8743:6;;;;;;;;;-1:-1:-1::0;;;;;8743:6:0::1;-1:-1:-1::0;;;;;8737:21:0::1;;8766:9;8737:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8794:6:0::1;::::0;8788:38:::1;::::0;-1:-1:-1;;;8788:38:0;;-1:-1:-1;;;;;8794:6:0;;::::1;::::0;-1:-1:-1;8788:21:0::1;::::0;-1:-1:-1;8788:38:0::1;::::0;-1:-1:-1;8810:4:0;;8816:9;;8788:38:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;8836:49:0::1;::::0;-1:-1:-1;;;8836:49:0;;-1:-1:-1;;;;;8836:26:0;::::1;::::0;::::1;::::0;:49:::1;::::0;8863:10:::1;::::0;8875:9;;8836:49:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8935:4;-1:-1:-1::0;;;;;8900:51:0::1;8923:10;-1:-1:-1::0;;;;;8900:51:0::1;;8941:9;8900:51;;;;;;;3879:778:::0;4044:24;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;548:9;:16;;-1:-1:-1;;548:16:39;560:4;548:16;;;;;;4142:6:0;;4095:54:::1;::::0;-1:-1:-1;;;4095:54:0;;-1:-1:-1;;;;;548:16:39;4104:10:0;;::::1;::::0;::::1;::::0;4095:28:::1;::::0;:54:::1;::::0;4124:16;;4142:6;;;::::1;::::0;4095:54:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4080:69:::0;-1:-1:-1;;;;;;4167:18:0;::::1;4159:45;;;;-1:-1:-1::0;;;4159:45:0::1;;;;;;;;;4214:55;-1:-1:-1::0;;;;;4214:36:0;::::1;4251:4:::0;4257:11;4214:55:::1;:36;:55;:::i;:::-;4279:54;4291:16;4309:10;4321:11;4279;:54::i;:::-;4362:63;::::0;-1:-1:-1;;;4362:63:0;;-1:-1:-1;;;;;4362:25:0;::::1;::::0;::::1;::::0;:63:::1;::::0;4388:11;;4401:19;;4362:63:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4441:6;::::0;4435:40:::1;::::0;-1:-1:-1;;;4435:40:0;;4343:82;;-1:-1:-1;;;;;;4441:6:0::1;::::0;4435:22:::1;::::0;:40:::1;::::0;4343:82;;4435:40:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4485:37:0::1;::::0;:10:::1;::::0;-1:-1:-1;4485:37:0;::::1;;;::::0;-1:-1:-1;4505:16:0;;4485:37:::1;::::0;;;4505:16;4485:10;:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;4569:16;-1:-1:-1::0;;;;;4537:80:0::1;4557:10;-1:-1:-1::0;;;;;4537:80:0::1;;4587:11;4600:16;4537:80;;;;;;;;;;;;;;;;-1:-1:-1::0;597:5:39;585:17;;-1:-1:-1;;585:17:39;;;3879:778:0;;-1:-1:-1;;;3879:778:0:o;2253:806::-;2427:26;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;548:9;:16;;-1:-1:-1;;548:16:39;560:4;548:16;;;2473:9:0::1;:22:::0;::::1;2465:55;;;;-1:-1:-1::0;;;2465:55:0::1;;;;;;;;;2530:12;2554:10:::0;;::::1;2574:6:::0;2545:55:::1;::::0;-1:-1:-1;;;2545:55:0;;-1:-1:-1;;;;;2554:10:0::1;::::0;;::::1;::::0;::::1;::::0;2545:28:::1;::::0;:55:::1;::::0;2574:6;::::1;::::0;2582:17;;2545:55:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2530:70:::0;-1:-1:-1;;;;;;2618:18:0;::::1;2610:45;;;;-1:-1:-1::0;;;2610:45:0::1;;;;;;;;;2671:6;;;;;;;;;-1:-1:-1::0;;;;;2671:6:0::1;-1:-1:-1::0;;;;;2665:21:0::1;;2694:9;2665:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2722:6:0::1;::::0;2716:38:::1;::::0;-1:-1:-1;;;2716:38:0;;-1:-1:-1;;;;;2722:6:0;;::::1;::::0;-1:-1:-1;2716:21:0::1;::::0;-1:-1:-1;2716:38:0::1;::::0;-1:-1:-1;2738:4:0;;2744:9;;2716:38:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;2785:63:0::1;::::0;-1:-1:-1;;;2785:63:0;;-1:-1:-1;;;;;2785:25:0;::::1;::::0;::::1;::::0;:63:::1;::::0;2811:9;;2822:21;;2785:63:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2764:84;;2858:63;2871:17;2890:10;2902:18;2858:12;:63::i;:::-;2968:17;-1:-1:-1::0;;;;;2936:81:0::1;2956:10;-1:-1:-1::0;;;;;2936:81:0::1;;2987:9;2998:18;2936:81;;;;;;;;3065:808:::0;3228:22;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;548:9;:16;;-1:-1:-1;;548:16:39;560:4;548:16;;;;;;3306:6:0;;3277:55:::1;::::0;-1:-1:-1;;;3277:55:0;;-1:-1:-1;;;;;548:16:39;3286:10:0;;::::1;::::0;::::1;::::0;3277:28:::1;::::0;:55:::1;::::0;3306:6;::::1;::::0;3314:17;;3277:55:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3262:70:::0;-1:-1:-1;;;;;;3350:18:0;::::1;3342:45;;;;-1:-1:-1::0;;;3342:45:0::1;;;;;;;;;3414:40;::::0;-1:-1:-1;;;3414:40:0;;-1:-1:-1;;;;;3414:29:0;::::1;::::0;::::1;::::0;:40:::1;::::0;3444:9;;3414:40:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3397:57;;3464:58;3476:17;3495:10;3507:14;3464:11;:58::i;:::-;3532:59;-1:-1:-1::0;;;;;3532:37:0;::::1;3570:4:::0;3576:14;3532:59:::1;:37;:59;:::i;:::-;3601:58;::::0;-1:-1:-1;;;3601:58:0;;-1:-1:-1;;;;;3601:24:0;::::1;::::0;::::1;::::0;:58:::1;::::0;3626:9;;3637:17;;3601:58:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;3675:6:0::1;::::0;3669:33:::1;::::0;-1:-1:-1;;;3669:33:0;;-1:-1:-1;;;;;3675:6:0;;::::1;::::0;3669:22:::1;::::0;:33:::1;::::0;3692:9;;3669:33:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;3712:30:0::1;::::0;:10:::1;::::0;-1:-1:-1;3712:30:0;::::1;;;::::0;-1:-1:-1;3732:9:0;;3712:30:::1;::::0;;;3732:9;3712:10;:30;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;3790:17;-1:-1:-1::0;;;;;3757:78:0::1;3778:10;-1:-1:-1::0;;;;;3757:78:0::1;;3809:9;3820:14;3757:78;;;;;;;;11409:173:::0;11530:45;-1:-1:-1;;;;;11530:33:0;;11564:2;11568:6;11530:45;:33;:45;:::i;:::-;11409:173;;;:::o;934:134:41:-;992:7;1024:1;1019;:6;;1011:28;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;1296:656:40:-;1704:10;;;1703:62;;-1:-1:-1;1720:39:40;;-1:-1:-1;;;1720:39:40;;-1:-1:-1;;;;;1720:15:40;;;;;:39;;1744:4;;1751:7;;1720:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:44;1703:62;1682:163;;;;-1:-1:-1;;;1682:163:40;;;;;;;;;1855:90;1875:5;1905:22;;;1929:7;1938:5;1882:62;;;;;;;;;;;;;;-1:-1:-1;;1882:62:40;;;;;;;;;;;;;;-1:-1:-1;;;;;1882:62:40;-1:-1:-1;;;;;;1882:62:40;;;;;;;;;;1855:19;:90::i;11208:195:0:-;11330:66;-1:-1:-1;;;;;11330:37:0;;11368:4;11382;11389:6;11330:66;:37;:66;:::i;804:205:40:-;916:86;936:5;966:23;;;991:2;995:5;943:58;;;;;;;;;;2335:1027;2984:12;2998:23;3033:5;-1:-1:-1;;;;;3025:19:40;3045:4;3025:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2983:67;;;;3068:7;3060:52;;;;-1:-1:-1;;;3060:52:40;;;;;;;;;3127:17;;:21;3123:233;;3279:10;3268:30;;;;;;;;;;;;;;3260:85;;;;-1:-1:-1;;;3260:85:40;;;;;;;;;2335:1027;;;;:::o;1015:275::-;1153:130;1186:5;1228:27;;;1257:4;1263:2;1267:5;1205:68;;;;;;;;;;;696:241:-1;;800:2;788:9;779:7;775:23;771:32;768:2;;;-1:-1;;806:12;768:2;85:6;72:20;97:33;124:5;97:33;;;858:63;762:175;-1:-1;;;762:175;944:263;;1059:2;1047:9;1038:7;1034:23;1030:32;1027:2;;;-1:-1;;1065:12;1027:2;226:6;220:13;238:33;265:5;238:33;;1214:491;;;;1352:2;1340:9;1331:7;1327:23;1323:32;1320:2;;;-1:-1;;1358:12;1320:2;85:6;72:20;97:33;124:5;97:33;;;1410:63;1510:2;1549:22;;485:20;;-1:-1;1618:2;1657:22;;;485:20;;1314:391;-1:-1;;;1314:391;1712:257;;1824:2;1812:9;1803:7;1799:23;1795:32;1792:2;;;-1:-1;;1830:12;1792:2;364:6;358:13;16807:5;15713:13;15706:21;16785:5;16782:32;16772:2;;-1:-1;;16818:12;1976:263;;2091:2;2079:9;2070:7;2066:23;2062:32;2059:2;;;-1:-1;;2097:12;2059:2;-1:-1;633:13;;2053:186;-1:-1;2053:186;2246:366;;;2367:2;2355:9;2346:7;2342:23;2338:32;2335:2;;;-1:-1;;2373:12;2335:2;498:6;485:20;2425:63;;2525:2;2568:9;2564:22;72:20;97:33;124:5;97:33;;;2533:63;;;;2329:283;;;;;;6528:271;;3192:5;14906:12;-1:-1;16398:101;16412:6;16409:1;16406:13;16398:101;;;3336:4;16479:11;;;;;16473:18;16460:11;;;16453:39;16427:10;16398:101;;;16514:6;16511:1;16508:13;16505:2;;;-1:-1;16570:6;16565:3;16561:16;16554:27;16505:2;-1:-1;3367:16;;;;;6662:137;-1:-1;;6662:137;6806:222;-1:-1;;;;;15801:54;;;;2855:45;;6933:2;6918:18;;6904:124;7541:349;-1:-1;;;;;15801:54;;;2698:58;;15801:54;;7876:2;7861:18;;2855:45;7704:2;7689:18;;7675:215;7897:476;-1:-1;;;;;15801:54;;;2698:58;;15801:54;;;;8276:2;8261:18;;2698:58;8359:2;8344:18;;6479:37;;;;8096:2;8081:18;;8067:306;8380:349;-1:-1;;;;;15801:54;;;;2698:58;;8715:2;8700:18;;6479:37;8543:2;8528:18;;8514:215;10223:416;10423:2;10437:47;;;3620:2;10408:18;;;15050:19;-1:-1;;;15090:14;;;3636:37;3692:12;;;10394:245;10646:416;10846:2;10860:47;;;3943:1;10831:18;;;15050:19;-1:-1;;;15090:14;;;3958:32;4009:12;;;10817:245;11069:416;11269:2;11283:47;;;11254:18;;;15050:19;4296:34;15090:14;;;4276:55;4350:12;;;11240:245;11492:416;11692:2;11706:47;;;4601:1;11677:18;;;15050:19;-1:-1;;;15090:14;;;4616:32;4667:12;;;11663:245;11915:416;12115:2;12129:47;;;4918:2;12100:18;;;15050:19;-1:-1;;;15090:14;;;4934:43;4996:12;;;12086:245;12338:416;12538:2;12552:47;;;5516:2;12523:18;;;15050:19;-1:-1;;;15090:14;;;5532:43;5594:12;;;12509:245;12761:416;12961:2;12975:47;;;5845:2;12946:18;;;15050:19;5881:34;15090:14;;;5861:55;-1:-1;;;5936:12;;;5929:34;5982:12;;;12932:245;13184:416;13384:2;13398:47;;;6233:2;13369:18;;;15050:19;6269:34;15090:14;;;6249:55;-1:-1;;;6324:12;;;6317:46;6382:12;;;13355:245;13607:222;6479:37;;;13734:2;13719:18;;13705:124;13836:333;6479:37;;;14155:2;14140:18;;6479:37;13991:2;13976:18;;13962:207;14176:636;6479:37;;;14595:2;14580:18;;6479:37;14431:2;14632;14617:18;;14610:48;;;14176:636;14416:18;;;15050:19;15090:14;;;14402:410;16602:117;-1:-1;;;;;15801:54;;16661:35;;16651:2;;16710:1;;16700:12;16651:2;16645:74;", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {ReentrancyGuard} from \"./lib/ReentrancyGuard.sol\";\nimport {SafeERC20} from \"./lib/SafeERC20.sol\";\nimport {SafeMath} from \"./lib/SafeMath.sol\";\nimport {IDODO} from \"./intf/IDODO.sol\";\nimport {IERC20} from \"./intf/IERC20.sol\";\nimport {IWETH} from \"./intf/IWETH.sol\";\n\ninterface IDODOZoo {\n function getDODO(address baseToken, address quoteToken) external view returns (address);\n}\n\n/**\n * @title DODO Eth Proxy\n * @author DODO Breeder\n *\n * @notice Handle ETH-WETH converting for users.\n */\ncontract DODOEthProxy is ReentrancyGuard {\n using SafeERC20 for IERC20;\n using SafeMath for uint256;\n\n address public _DODO_ZOO_;\n address payable public _WETH_;\n\n // ============ Events ============\n\n event ProxySellEthToToken(\n address indexed seller,\n address indexed quoteToken,\n uint256 payEth,\n uint256 receiveToken\n );\n\n event ProxyBuyEthWithToken(\n address indexed buyer,\n address indexed quoteToken,\n uint256 receiveEth,\n uint256 payToken\n );\n\n event ProxySellTokenToEth(\n address indexed seller,\n address indexed baseToken,\n uint256 payToken,\n uint256 receiveEth\n );\n\n event ProxyBuyTokenWithEth(\n address indexed buyer,\n address indexed baseToken,\n uint256 receiveToken,\n uint256 payEth\n );\n\n event ProxyDepositEthAsBase(address indexed lp, address indexed DODO, uint256 ethAmount);\n\n event ProxyWithdrawEthAsBase(address indexed lp, address indexed DODO, uint256 ethAmount);\n\n event ProxyDepositEthAsQuote(address indexed lp, address indexed DODO, uint256 ethAmount);\n\n event ProxyWithdrawEthAsQuote(address indexed lp, address indexed DODO, uint256 ethAmount);\n\n // ============ Functions ============\n\n constructor(address dodoZoo, address payable weth) public {\n _DODO_ZOO_ = dodoZoo;\n _WETH_ = weth;\n }\n\n fallback() external payable {\n require(msg.sender == _WETH_, \"WE_SAVED_YOUR_ETH_:)\");\n }\n\n receive() external payable {\n require(msg.sender == _WETH_, \"WE_SAVED_YOUR_ETH_:)\");\n }\n\n function sellEthToToken(\n address quoteTokenAddress,\n uint256 ethAmount,\n uint256 minReceiveTokenAmount\n ) external payable preventReentrant returns (uint256 receiveTokenAmount) {\n require(msg.value == ethAmount, \"ETH_AMOUNT_NOT_MATCH\");\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(_WETH_, quoteTokenAddress);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n IWETH(_WETH_).deposit{value: ethAmount}();\n IWETH(_WETH_).approve(DODO, ethAmount);\n receiveTokenAmount = IDODO(DODO).sellBaseToken(ethAmount, minReceiveTokenAmount, \"\");\n _transferOut(quoteTokenAddress, msg.sender, receiveTokenAmount);\n emit ProxySellEthToToken(msg.sender, quoteTokenAddress, ethAmount, receiveTokenAmount);\n return receiveTokenAmount;\n }\n\n function buyEthWithToken(\n address quoteTokenAddress,\n uint256 ethAmount,\n uint256 maxPayTokenAmount\n ) external preventReentrant returns (uint256 payTokenAmount) {\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(_WETH_, quoteTokenAddress);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n payTokenAmount = IDODO(DODO).queryBuyBaseToken(ethAmount);\n _transferIn(quoteTokenAddress, msg.sender, payTokenAmount);\n IERC20(quoteTokenAddress).safeApprove(DODO, payTokenAmount);\n IDODO(DODO).buyBaseToken(ethAmount, maxPayTokenAmount, \"\");\n IWETH(_WETH_).withdraw(ethAmount);\n msg.sender.transfer(ethAmount);\n emit ProxyBuyEthWithToken(msg.sender, quoteTokenAddress, ethAmount, payTokenAmount);\n return payTokenAmount;\n }\n\n function sellTokenToEth(\n address baseTokenAddress,\n uint256 tokenAmount,\n uint256 minReceiveEthAmount\n ) external preventReentrant returns (uint256 receiveEthAmount) {\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(baseTokenAddress, _WETH_);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n IERC20(baseTokenAddress).safeApprove(DODO, tokenAmount);\n _transferIn(baseTokenAddress, msg.sender, tokenAmount);\n receiveEthAmount = IDODO(DODO).sellBaseToken(tokenAmount, minReceiveEthAmount, \"\");\n IWETH(_WETH_).withdraw(receiveEthAmount);\n msg.sender.transfer(receiveEthAmount);\n emit ProxySellTokenToEth(msg.sender, baseTokenAddress, tokenAmount, receiveEthAmount);\n return receiveEthAmount;\n }\n\n function buyTokenWithEth(\n address baseTokenAddress,\n uint256 tokenAmount,\n uint256 maxPayEthAmount\n ) external payable preventReentrant returns (uint256 payEthAmount) {\n require(msg.value == maxPayEthAmount, \"ETH_AMOUNT_NOT_MATCH\");\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(baseTokenAddress, _WETH_);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n payEthAmount = IDODO(DODO).queryBuyBaseToken(tokenAmount);\n IWETH(_WETH_).deposit{value: payEthAmount}();\n IWETH(_WETH_).approve(DODO, payEthAmount);\n IDODO(DODO).buyBaseToken(tokenAmount, maxPayEthAmount, \"\");\n _transferOut(baseTokenAddress, msg.sender, tokenAmount);\n uint256 refund = maxPayEthAmount.sub(payEthAmount);\n if (refund > 0) {\n msg.sender.transfer(refund);\n }\n emit ProxyBuyTokenWithEth(msg.sender, baseTokenAddress, tokenAmount, payEthAmount);\n return payEthAmount;\n }\n\n function depositEthAsBase(uint256 ethAmount, address quoteTokenAddress)\n external\n payable\n preventReentrant\n {\n require(msg.value == ethAmount, \"ETH_AMOUNT_NOT_MATCH\");\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(_WETH_, quoteTokenAddress);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n IWETH(_WETH_).deposit{value: ethAmount}();\n IWETH(_WETH_).approve(DODO, ethAmount);\n IDODO(DODO).depositBaseTo(msg.sender, ethAmount);\n emit ProxyDepositEthAsBase(msg.sender, DODO, ethAmount);\n }\n\n function withdrawEthAsBase(uint256 ethAmount, address quoteTokenAddress)\n external\n preventReentrant\n returns (uint256 withdrawAmount)\n {\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(_WETH_, quoteTokenAddress);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n address ethLpToken = IDODO(DODO)._BASE_CAPITAL_TOKEN_();\n\n // transfer all pool shares to proxy\n uint256 lpBalance = IERC20(ethLpToken).balanceOf(msg.sender);\n IERC20(ethLpToken).transferFrom(msg.sender, address(this), lpBalance);\n IDODO(DODO).withdrawBase(ethAmount);\n\n // transfer remain shares back to msg.sender\n lpBalance = IERC20(ethLpToken).balanceOf(address(this));\n IERC20(ethLpToken).transfer(msg.sender, lpBalance);\n\n // because of withdraw penalty, withdrawAmount may not equal to ethAmount\n // query weth amount first and than transfer ETH to msg.sender\n uint256 wethAmount = IERC20(_WETH_).balanceOf(address(this));\n IWETH(_WETH_).withdraw(wethAmount);\n msg.sender.transfer(wethAmount);\n emit ProxyWithdrawEthAsBase(msg.sender, DODO, wethAmount);\n return wethAmount;\n }\n\n function withdrawAllEthAsBase(address quoteTokenAddress)\n external\n preventReentrant\n returns (uint256 withdrawAmount)\n {\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(_WETH_, quoteTokenAddress);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n address ethLpToken = IDODO(DODO)._BASE_CAPITAL_TOKEN_();\n\n // transfer all pool shares to proxy\n uint256 lpBalance = IERC20(ethLpToken).balanceOf(msg.sender);\n IERC20(ethLpToken).transferFrom(msg.sender, address(this), lpBalance);\n IDODO(DODO).withdrawAllBase();\n\n // because of withdraw penalty, withdrawAmount may not equal to ethAmount\n // query weth amount first and than transfer ETH to msg.sender\n uint256 wethAmount = IERC20(_WETH_).balanceOf(address(this));\n IWETH(_WETH_).withdraw(wethAmount);\n msg.sender.transfer(wethAmount);\n emit ProxyWithdrawEthAsBase(msg.sender, DODO, wethAmount);\n return wethAmount;\n }\n\n function depositEthAsQuote(uint256 ethAmount, address baseTokenAddress)\n external\n payable\n preventReentrant\n {\n require(msg.value == ethAmount, \"ETH_AMOUNT_NOT_MATCH\");\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(baseTokenAddress, _WETH_);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n IWETH(_WETH_).deposit{value: ethAmount}();\n IWETH(_WETH_).approve(DODO, ethAmount);\n IDODO(DODO).depositQuoteTo(msg.sender, ethAmount);\n emit ProxyDepositEthAsQuote(msg.sender, DODO, ethAmount);\n }\n\n function withdrawEthAsQuote(uint256 ethAmount, address baseTokenAddress)\n external\n preventReentrant\n returns (uint256 withdrawAmount)\n {\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(baseTokenAddress, _WETH_);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n address ethLpToken = IDODO(DODO)._QUOTE_CAPITAL_TOKEN_();\n\n // transfer all pool shares to proxy\n uint256 lpBalance = IERC20(ethLpToken).balanceOf(msg.sender);\n IERC20(ethLpToken).transferFrom(msg.sender, address(this), lpBalance);\n IDODO(DODO).withdrawQuote(ethAmount);\n\n // transfer remain shares back to msg.sender\n lpBalance = IERC20(ethLpToken).balanceOf(address(this));\n IERC20(ethLpToken).transfer(msg.sender, lpBalance);\n\n // because of withdraw penalty, withdrawAmount may not equal to ethAmount\n // query weth amount first and than transfer ETH to msg.sender\n uint256 wethAmount = IERC20(_WETH_).balanceOf(address(this));\n IWETH(_WETH_).withdraw(wethAmount);\n msg.sender.transfer(wethAmount);\n emit ProxyWithdrawEthAsQuote(msg.sender, DODO, wethAmount);\n return wethAmount;\n }\n\n function withdrawAllEthAsQuote(address baseTokenAddress)\n external\n preventReentrant\n returns (uint256 withdrawAmount)\n {\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(baseTokenAddress, _WETH_);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n address ethLpToken = IDODO(DODO)._QUOTE_CAPITAL_TOKEN_();\n\n // transfer all pool shares to proxy\n uint256 lpBalance = IERC20(ethLpToken).balanceOf(msg.sender);\n IERC20(ethLpToken).transferFrom(msg.sender, address(this), lpBalance);\n IDODO(DODO).withdrawAllQuote();\n\n // because of withdraw penalty, withdrawAmount may not equal to ethAmount\n // query weth amount first and than transfer ETH to msg.sender\n uint256 wethAmount = IERC20(_WETH_).balanceOf(address(this));\n IWETH(_WETH_).withdraw(wethAmount);\n msg.sender.transfer(wethAmount);\n emit ProxyWithdrawEthAsQuote(msg.sender, DODO, wethAmount);\n return wethAmount;\n }\n\n // ============ Helper Functions ============\n\n function _transferIn(\n address tokenAddress,\n address from,\n uint256 amount\n ) internal {\n IERC20(tokenAddress).safeTransferFrom(from, address(this), amount);\n }\n\n function _transferOut(\n address tokenAddress,\n address to,\n uint256 amount\n ) internal {\n IERC20(tokenAddress).safeTransfer(to, amount);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOEthProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOEthProxy.sol", + "exportedSymbols": { + "DODOEthProxy": [ + 1166 + ], + "IDODOZoo": [ + 24 + ] + }, + "id": 1167, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:0" + }, + { + "id": 2, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:0" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol", + "file": "./lib/ReentrancyGuard.sol", + "id": 4, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 11297, + "src": "136:58:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3, + "name": "ReentrancyGuard", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:15:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "./lib/SafeERC20.sol", + "id": 6, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 11441, + "src": "195:46:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 5, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "203:9:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "./lib/SafeMath.sol", + "id": 8, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 11624, + "src": "242:44:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "250:8:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "file": "./intf/IDODO.sol", + "id": 10, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 10492, + "src": "287:39:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "295:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "./intf/IERC20.sol", + "id": 12, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 10608, + "src": "327:41:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "335:6:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IWETH.sol", + "file": "./intf/IWETH.sol", + "id": 14, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 10679, + "src": "369:39:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "377:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 24, + "linearizedBaseContracts": [ + 24 + ], + "name": "IDODOZoo", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "1273b0c6", + "id": 23, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getDODO", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 23, + "src": "452:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "452:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 23, + "src": "471:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "471:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "451:39:0" + }, + "returnParameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 23, + "src": "514:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "514:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "513:9:0" + }, + "scope": 24, + "src": "435:88:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1167, + "src": "410:115:0" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 26, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11296, + "src": "661:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$11296", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 27, + "nodeType": "InheritanceSpecifier", + "src": "661:15:0" + } + ], + "contractDependencies": [ + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 25, + "nodeType": "StructuredDocumentation", + "src": "527:108:0", + "text": " @title DODO Eth Proxy\n @author DODO Breeder\n @notice Handle ETH-WETH converting for users." + }, + "fullyImplemented": true, + "id": 1166, + "linearizedBaseContracts": [ + 1166, + 11296 + ], + "name": "DODOEthProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 30, + "libraryName": { + "contractScope": null, + "id": 28, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "689:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "683:27:0", + "typeName": { + "contractScope": null, + "id": 29, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "703:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "id": 33, + "libraryName": { + "contractScope": null, + "id": 31, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "721:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "715:27:0", + "typeName": { + "id": 32, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "734:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "39239f72", + "id": 35, + "mutability": "mutable", + "name": "_DODO_ZOO_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1166, + "src": "748:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "748:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0d4eec8f", + "id": 37, + "mutability": "mutable", + "name": "_WETH_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1166, + "src": "779:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 36, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "779:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 47, + "name": "ProxySellEthToToken", + "nodeType": "EventDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "891:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 38, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "891:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 41, + "indexed": true, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "923:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 40, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "923:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 43, + "indexed": false, + "mutability": "mutable", + "name": "payEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "959:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 42, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "959:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 45, + "indexed": false, + "mutability": "mutable", + "name": "receiveToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "983:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "983:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "881:128:0" + }, + "src": "856:154:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 57, + "name": "ProxyBuyEthWithToken", + "nodeType": "EventDefinition", + "parameters": { + "id": 56, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "indexed": true, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1052:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 48, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1052:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 51, + "indexed": true, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1083:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 50, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1083:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 53, + "indexed": false, + "mutability": "mutable", + "name": "receiveEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1119:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 52, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1119:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "indexed": false, + "mutability": "mutable", + "name": "payToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1147:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1147:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1042:127:0" + }, + "src": "1016:154:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 67, + "name": "ProxySellTokenToEth", + "nodeType": "EventDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 59, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1211:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 58, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "indexed": true, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1243:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1243:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": false, + "mutability": "mutable", + "name": "payToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1278:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 62, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "receiveEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1304:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1304:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1201:127:0" + }, + "src": "1176:153:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 77, + "name": "ProxyBuyTokenWithEth", + "nodeType": "EventDefinition", + "parameters": { + "id": 76, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "indexed": true, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1371:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1371:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 71, + "indexed": true, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1402:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 70, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1402:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 73, + "indexed": false, + "mutability": "mutable", + "name": "receiveToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1437:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 72, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 75, + "indexed": false, + "mutability": "mutable", + "name": "payEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1467:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 74, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1467:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1361:126:0" + }, + "src": "1335:153:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 85, + "name": "ProxyDepositEthAsBase", + "nodeType": "EventDefinition", + "parameters": { + "id": 84, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 85, + "src": "1522:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 78, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1522:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 85, + "src": "1542:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1542:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 83, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 85, + "src": "1564:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 82, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1564:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1521:61:0" + }, + "src": "1494:89:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 93, + "name": "ProxyWithdrawEthAsBase", + "nodeType": "EventDefinition", + "parameters": { + "id": 92, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 87, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 93, + "src": "1618:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 86, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1618:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 93, + "src": "1638:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1638:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 93, + "src": "1660:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1660:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1617:61:0" + }, + "src": "1589:90:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 101, + "name": "ProxyDepositEthAsQuote", + "nodeType": "EventDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 95, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "1714:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 94, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1714:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "1734:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 96, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1734:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "1756:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1756:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1713:61:0" + }, + "src": "1685:90:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 109, + "name": "ProxyWithdrawEthAsQuote", + "nodeType": "EventDefinition", + "parameters": { + "id": 108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 103, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 109, + "src": "1811:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1811:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 105, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 109, + "src": "1831:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 104, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1831:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 107, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 109, + "src": "1853:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1853:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1810:61:0" + }, + "src": "1781:91:0" + }, + { + "body": { + "id": 124, + "nodeType": "Block", + "src": "1980:60:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 116, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "1990:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 117, + "name": "dodoZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "2003:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1990:20:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 119, + "nodeType": "ExpressionStatement", + "src": "1990:20:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 120, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2020:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 121, + "name": "weth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 113, + "src": "2029:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2020:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 123, + "nodeType": "ExpressionStatement", + "src": "2020:13:0" + } + ] + }, + "documentation": null, + "id": 125, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 111, + "mutability": "mutable", + "name": "dodoZoo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "1934:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 110, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1934:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 113, + "mutability": "mutable", + "name": "weth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "1951:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1951:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1933:39:0" + }, + "returnParameters": { + "id": 115, + "nodeType": "ParameterList", + "parameters": [], + "src": "1980:0:0" + }, + "scope": 1166, + "src": "1922:118:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 136, + "nodeType": "Block", + "src": "2074:70:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 129, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2092:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2092:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 131, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2106:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2092:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "57455f53415645445f594f55525f4554485f3a29", + "id": 133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2114:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + }, + "value": "WE_SAVED_YOUR_ETH_:)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + } + ], + "id": 128, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2084:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2084:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 135, + "nodeType": "ExpressionStatement", + "src": "2084:53:0" + } + ] + }, + "documentation": null, + "id": 137, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 126, + "nodeType": "ParameterList", + "parameters": [], + "src": "2054:2:0" + }, + "returnParameters": { + "id": 127, + "nodeType": "ParameterList", + "parameters": [], + "src": "2074:0:0" + }, + "scope": 1166, + "src": "2046:98:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 148, + "nodeType": "Block", + "src": "2177:70:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2195:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2195:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 143, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2209:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2195:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "57455f53415645445f594f55525f4554485f3a29", + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2217:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + }, + "value": "WE_SAVED_YOUR_ETH_:)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + } + ], + "id": 140, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2187:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 147, + "nodeType": "ExpressionStatement", + "src": "2187:53:0" + } + ] + }, + "documentation": null, + "id": 149, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 138, + "nodeType": "ParameterList", + "parameters": [], + "src": "2157:2:0" + }, + "returnParameters": { + "id": 139, + "nodeType": "ParameterList", + "parameters": [], + "src": "2177:0:0" + }, + "scope": 1166, + "src": "2150:97:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 234, + "nodeType": "Block", + "src": "2455:604:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 163, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2473:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2473:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 165, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2486:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2473:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2497:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2465:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2465:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 169, + "nodeType": "ExpressionStatement", + "src": "2465:55:0" + }, + { + "assignments": [ + 171 + ], + "declarations": [ + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 234, + "src": "2530:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2530:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 179, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 176, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2574:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 177, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2582:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 173, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "2554:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 172, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2545:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2545:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "2545:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2545:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2530:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 181, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2618:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2634:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2626:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2626:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2618:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2638:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 180, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2610:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2610:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 189, + "nodeType": "ExpressionStatement", + "src": "2610:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 191, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2671:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 190, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "2665:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2665:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "2665:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 194, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2694:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2665:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2665:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 197, + "nodeType": "ExpressionStatement", + "src": "2665:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 202, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2738:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 203, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2744:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 199, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2722:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 198, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "2716:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2716:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "2716:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2716:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 205, + "nodeType": "ExpressionStatement", + "src": "2716:38:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 206, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2764:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 211, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2811:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 212, + "name": "minReceiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 155, + "src": "2822:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2845:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 208, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2791:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 207, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "2785:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2785:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sellBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10396, + "src": "2785:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2785:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2764:84:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 216, + "nodeType": "ExpressionStatement", + "src": "2764:84:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 218, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2871:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 219, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2890:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2890:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 221, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2902:18:0", + "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": 217, + "name": "_transferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "2858:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2858:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 223, + "nodeType": "ExpressionStatement", + "src": "2858:63:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2956:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2956:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 227, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2968:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 228, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2987:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 229, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2998:18:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 224, + "name": "ProxySellEthToToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "2936:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2936:81:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 231, + "nodeType": "EmitStatement", + "src": "2931:86:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 232, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "3034:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 161, + "id": 233, + "nodeType": "Return", + "src": "3027:25:0" + } + ] + }, + "documentation": null, + "functionSelector": "e5134628", + "id": 235, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 158, + "modifierName": { + "argumentTypes": null, + "id": 157, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "2401:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2401:16:0" + } + ], + "name": "sellEthToToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2286:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 153, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2321:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2321:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 155, + "mutability": "mutable", + "name": "minReceiveTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2348:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2348:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2276:107:0" + }, + "returnParameters": { + "id": 161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 160, + "mutability": "mutable", + "name": "receiveTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2427:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2427:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2426:28:0" + }, + "scope": 1166, + "src": "2253:806:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 326, + "nodeType": "Block", + "src": "3252:621:0", + "statements": [ + { + "assignments": [ + 249 + ], + "declarations": [ + { + "constant": false, + "id": 249, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 326, + "src": "3262:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3262:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 257, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 254, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "3306:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 255, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3314:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 251, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "3286:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 250, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "3277:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3277:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "3277:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3277:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3262:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 259, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3350:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3366:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3358:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3358:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3358:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3350:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3370:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3342:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 267, + "nodeType": "ExpressionStatement", + "src": "3342:45:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 268, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3397:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 273, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3444:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 270, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3420:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 269, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "3414:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queryBuyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10421, + "src": "3414:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view external returns (uint256)" + } + }, + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3397:57:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 276, + "nodeType": "ExpressionStatement", + "src": "3397:57:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 278, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3476:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 279, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3495:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3495:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 281, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3507:14:0", + "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": 277, + "name": "_transferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "3464:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3464:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 283, + "nodeType": "ExpressionStatement", + "src": "3464:58:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 288, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3570:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 289, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3576:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 285, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3539:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 284, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "3532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3532:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeApprove", + "nodeType": "MemberAccess", + "referencedDeclaration": 11396, + "src": "3532:37:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3532:59:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 291, + "nodeType": "ExpressionStatement", + "src": "3532:59:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 296, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3626:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 297, + "name": "maxPayTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "3637:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3656:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 293, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3607:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 292, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "3601:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3601:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "buyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10407, + "src": "3601:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3601:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 300, + "nodeType": "ExpressionStatement", + "src": "3601:58:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 305, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3692:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 302, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "3675:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 301, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "3669:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3669:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "3669:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3669:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 307, + "nodeType": "ExpressionStatement", + "src": "3669:33:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 313, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3732:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 308, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3712:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3712:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3712:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3712:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 315, + "nodeType": "ExpressionStatement", + "src": "3712:30:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 317, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3778:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3778:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 319, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3790:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 320, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3809:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 321, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3820:14:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 316, + "name": "ProxyBuyEthWithToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 57, + "src": "3757:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3757:78:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 323, + "nodeType": "EmitStatement", + "src": "3752:83:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 324, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3852:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 247, + "id": 325, + "nodeType": "Return", + "src": "3845:21:0" + } + ] + }, + "documentation": null, + "functionSelector": "e8d522bb", + "id": 327, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 244, + "modifierName": { + "argumentTypes": null, + "id": 243, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "3202:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3202:16:0" + } + ], + "name": "buyEthWithToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3099:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3099:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 239, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3134:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3134:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 241, + "mutability": "mutable", + "name": "maxPayTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3161:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3161:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3089:103:0" + }, + "returnParameters": { + "id": 247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 246, + "mutability": "mutable", + "name": "payTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3228:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3228:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3227:24:0" + }, + "scope": 1166, + "src": "3065:808:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 411, + "nodeType": "Block", + "src": "4070:587:0", + "statements": [ + { + "assignments": [ + 341 + ], + "declarations": [ + { + "constant": false, + "id": 341, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 411, + "src": "4080:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4080:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 349, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 346, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4124:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 347, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4142:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 343, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "4104:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 342, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "4095:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "4095:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4080:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 351, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "4167:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4183:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4175:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 352, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4175:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4175:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4167:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4187:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4159:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4159:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 359, + "nodeType": "ExpressionStatement", + "src": "4159:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 364, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "4251:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 365, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4257:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 361, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4221:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 360, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "4214:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4214:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeApprove", + "nodeType": "MemberAccess", + "referencedDeclaration": 11396, + "src": "4214:36:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4214:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 367, + "nodeType": "ExpressionStatement", + "src": "4214:55:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 369, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4291:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 370, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4309:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4309:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 372, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4321:11:0", + "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": 368, + "name": "_transferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "4279:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4279:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 374, + "nodeType": "ExpressionStatement", + "src": "4279:54:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 375, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4343:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 380, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4388:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 381, + "name": "minReceiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "4401:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4422:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 377, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "4368:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 376, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "4362:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4362:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sellBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10396, + "src": "4362:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4362:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4343:82:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 385, + "nodeType": "ExpressionStatement", + "src": "4343:82:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 390, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4458:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 387, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4441:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 386, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "4435:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4435:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "4435:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4435:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 392, + "nodeType": "ExpressionStatement", + "src": "4435:40:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 398, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4505:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4485:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4485:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4485:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4485:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 400, + "nodeType": "ExpressionStatement", + "src": "4485:37:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 402, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4557:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4557:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 404, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4569:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 405, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4587:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 406, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4600:16:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 401, + "name": "ProxySellTokenToEth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "4537:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4537:80:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 408, + "nodeType": "EmitStatement", + "src": "4532:85:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 409, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4634:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 339, + "id": 410, + "nodeType": "Return", + "src": "4627:23:0" + } + ] + }, + "documentation": null, + "functionSelector": "d668e026", + "id": 412, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 336, + "modifierName": { + "argumentTypes": null, + "id": 335, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "4018:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4018:16:0" + } + ], + "name": "sellTokenToEth", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "3912:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 328, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3912:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "mutability": "mutable", + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "3946:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3946:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 333, + "mutability": "mutable", + "name": "minReceiveEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "3975:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 332, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3975:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3902:106:0" + }, + "returnParameters": { + "id": 339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "receiveEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "4044:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 337, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4044:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4043:26:0" + }, + "scope": 1166, + "src": "3879:778:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 524, + "nodeType": "Block", + "src": "4855:775:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 426, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4873:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4873:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 428, + "name": "maxPayEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "4886:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4873:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4903:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 425, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4865:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4865:61:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 432, + "nodeType": "ExpressionStatement", + "src": "4865:61:0" + }, + { + "assignments": [ + 434 + ], + "declarations": [ + { + "constant": false, + "id": 434, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 524, + "src": "4936:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4936:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 442, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 439, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "4980:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 440, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4998:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 436, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "4960:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 435, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "4951:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4951:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "4951:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4951:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4936:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 444, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5023:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5039:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5031:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 445, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5031:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5031:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5023:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5043:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 443, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5015:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5015:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 452, + "nodeType": "ExpressionStatement", + "src": "5015:45:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 453, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5070:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 458, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5115:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 455, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5091:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 454, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "5085:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5085:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queryBuyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10421, + "src": "5085:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view external returns (uint256)" + } + }, + "id": 459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5085:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5070:57:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 461, + "nodeType": "ExpressionStatement", + "src": "5070:57:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 463, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5143:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 462, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "5137:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5137:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "5137:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 466, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5166:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5137:42:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5137:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 469, + "nodeType": "ExpressionStatement", + "src": "5137:44:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 474, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5213:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 475, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5219:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 471, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5197:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 470, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "5191:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5191:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "5191:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5191:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 477, + "nodeType": "ExpressionStatement", + "src": "5191:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 482, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5267:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 483, + "name": "maxPayEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "5280:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5297:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 479, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5248:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 478, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "5242:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5242:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "buyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10407, + "src": "5242:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5242:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 486, + "nodeType": "ExpressionStatement", + "src": "5242:58:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 488, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "5323:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 489, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5341:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5341:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 491, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5353:11:0", + "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": 487, + "name": "_transferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "5310:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5310:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 493, + "nodeType": "ExpressionStatement", + "src": "5310:55:0" + }, + { + "assignments": [ + 495 + ], + "declarations": [ + { + "constant": false, + "id": 495, + "mutability": "mutable", + "name": "refund", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 524, + "src": "5375:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5375:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 500, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 498, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5412:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 496, + "name": "maxPayEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "5392:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5392:19:0", + "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": 499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5392:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5375:50:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 501, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "5439:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5448:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5439:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 513, + "nodeType": "IfStatement", + "src": "5435:68:0", + "trueBody": { + "id": 512, + "nodeType": "Block", + "src": "5451:52:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 509, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "5485:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 504, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5465:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5465:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5465:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5465:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 511, + "nodeType": "ExpressionStatement", + "src": "5465:27:0" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 515, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5538:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5538:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 517, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "5550:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 518, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5568:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 519, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5581:12:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 514, + "name": "ProxyBuyTokenWithEth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "5517:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5517:77:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 521, + "nodeType": "EmitStatement", + "src": "5512:82:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 522, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5611:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 424, + "id": 523, + "nodeType": "Return", + "src": "5604:19:0" + } + ] + }, + "documentation": null, + "functionSelector": "33e00053", + "id": 525, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 421, + "modifierName": { + "argumentTypes": null, + "id": 420, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "4807:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4807:16:0" + } + ], + "name": "buyTokenWithEth", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 414, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4697:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4697:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 416, + "mutability": "mutable", + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4731:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4731:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 418, + "mutability": "mutable", + "name": "maxPayEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4760:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 417, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4760:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4687:102:0" + }, + "returnParameters": { + "id": 424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 423, + "mutability": "mutable", + "name": "payEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4833:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4833:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4832:22:0" + }, + "scope": 1166, + "src": "4663:967:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 594, + "nodeType": "Block", + "src": "5770:429:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 535, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5788:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5788:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 537, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "5801:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5788:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5812:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 534, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5780:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5780:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 541, + "nodeType": "ExpressionStatement", + "src": "5780:55:0" + }, + { + "assignments": [ + 543 + ], + "declarations": [ + { + "constant": false, + "id": 543, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 594, + "src": "5845:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 542, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5845:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 551, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 548, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5889:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 549, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "5897:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 545, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "5869:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 544, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "5860:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5860:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "5860:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5860:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5845:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 553, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "5933:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5949:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5941:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 554, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5941:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5941:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5933:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5953:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 552, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5925:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5925:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 561, + "nodeType": "ExpressionStatement", + "src": "5925:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 563, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5986:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 562, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "5980:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5980:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "5980:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 566, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6009:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5980:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5980:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 569, + "nodeType": "ExpressionStatement", + "src": "5980:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 574, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "6053:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 575, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6059:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 571, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "6037:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 570, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "6031:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6031:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "6031:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6031:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 577, + "nodeType": "ExpressionStatement", + "src": "6031:38:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 582, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6105:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6105:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 584, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6117:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 579, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "6085:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 578, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "6079:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6079:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "depositBaseTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 10437, + "src": "6079:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) external returns (uint256)" + } + }, + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6079:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 586, + "nodeType": "ExpressionStatement", + "src": "6079:48:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 588, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6164:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6164:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 590, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "6176:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 591, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6182:9:0", + "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": 587, + "name": "ProxyDepositEthAsBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "6142:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6142:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 593, + "nodeType": "EmitStatement", + "src": "6137:55:0" + } + ] + }, + "documentation": null, + "functionSelector": "b56a1d03", + "id": 595, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 532, + "modifierName": { + "argumentTypes": null, + "id": 531, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "5749:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5749:16:0" + } + ], + "name": "depositEthAsBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 595, + "src": "5662:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 526, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5662:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 595, + "src": "5681:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5681:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5661:46:0" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [], + "src": "5770:0:0" + }, + "scope": 1166, + "src": "5636:563:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 721, + "nodeType": "Block", + "src": "6365:1029:0", + "statements": [ + { + "assignments": [ + 607 + ], + "declarations": [ + { + "constant": false, + "id": 607, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "6375:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6375:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 615, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 612, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "6419:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 613, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "6427:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 609, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "6399:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 608, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "6390:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6390:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "6390:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6390:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6375:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 617, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "6463:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6479:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6471:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6471:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6471:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6463:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6483:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 616, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6455:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6455:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 625, + "nodeType": "ExpressionStatement", + "src": "6455:45:0" + }, + { + "assignments": [ + 627 + ], + "declarations": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "6510:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6510:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 633, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 629, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "6537:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 628, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "6531:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6531:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10475, + "src": "6531:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6531:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6510:55:0" + }, + { + "assignments": [ + 635 + ], + "declarations": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "6621:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6621:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 643, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 640, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6670:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6670:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 637, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6648:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 636, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6641:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "6641:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6641:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6621:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 648, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6723:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6723:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 652, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6743:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6735:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6735:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 654, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "6750:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 645, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6698:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 644, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6691:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6691:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "6691:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6691:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 656, + "nodeType": "ExpressionStatement", + "src": "6691:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 661, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "6795:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 658, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "6776:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 657, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "6770:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6770:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 10444, + "src": "6770:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) external returns (uint256)" + } + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6770:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 663, + "nodeType": "ExpressionStatement", + "src": "6770:35:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 664, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "6869:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 671, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6918:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6910:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6910:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6910:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 666, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6888:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 665, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6881:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6881:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "6881:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6881:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6869:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 675, + "nodeType": "ExpressionStatement", + "src": "6869:55:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 680, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6962:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6962:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 682, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "6974:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 677, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6941:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 676, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6934:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6934:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "6934:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6934:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 684, + "nodeType": "ExpressionStatement", + "src": "6934:50:0" + }, + { + "assignments": [ + 686 + ], + "declarations": [ + { + "constant": false, + "id": 686, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "7148:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7148:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 696, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 693, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7202:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7194:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7194:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7194:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 688, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "7176:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 687, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7169:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7169:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "7169:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7169:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7148:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 701, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7241:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 698, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "7224:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 697, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "7218:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7218:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "7218:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7218:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 703, + "nodeType": "ExpressionStatement", + "src": "7218:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 709, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7282:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 704, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7262:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7262:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7262:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7262:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 711, + "nodeType": "ExpressionStatement", + "src": "7262:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 713, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7331:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7331:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 715, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "7343:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 716, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7349:10:0", + "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": 712, + "name": "ProxyWithdrawEthAsBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "7308:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 718, + "nodeType": "EmitStatement", + "src": "7303:57:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 719, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7377:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 605, + "id": 720, + "nodeType": "Return", + "src": "7370:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "827df194", + "id": 722, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 602, + "modifierName": { + "argumentTypes": null, + "id": 601, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "6303:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6303:16:0" + } + ], + "name": "withdrawEthAsBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 597, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 722, + "src": "6232:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6232:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 722, + "src": "6251:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6251:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6231:46:0" + }, + "returnParameters": { + "id": 605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 604, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 722, + "src": "6337:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6337:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6336:24:0" + }, + "scope": 1166, + "src": "6205:1189:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 824, + "nodeType": "Block", + "src": "7544:844:0", + "statements": [ + { + "assignments": [ + 732 + ], + "declarations": [ + { + "constant": false, + "id": 732, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "7554:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7554:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 740, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 737, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "7598:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 738, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 724, + "src": "7606:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 734, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "7578:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 733, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "7569:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7569:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "7569:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7569:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7554:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 742, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "7642:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7658:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7650:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7650:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7650:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7642:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7662:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 741, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7634:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 750, + "nodeType": "ExpressionStatement", + "src": "7634:45:0" + }, + { + "assignments": [ + 752 + ], + "declarations": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "7689:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7689:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 758, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 754, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "7716:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 753, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "7710:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7710:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10475, + "src": "7710:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7710:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7689:55:0" + }, + { + "assignments": [ + 760 + ], + "declarations": [ + { + "constant": false, + "id": 760, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "7800:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7800:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 768, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7849:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7849:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 762, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "7827:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 761, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7820:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7820:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "7820:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7820:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7800:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 773, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7902:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7902:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 777, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7922:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7914:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7914:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7914:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 779, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 760, + "src": "7929:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 770, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "7877:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 769, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7870:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7870:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "7870:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7870:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 781, + "nodeType": "ExpressionStatement", + "src": "7870:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 783, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "7955:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 782, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "7949:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7949:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawAllBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 10449, + "src": "7949:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7949:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 787, + "nodeType": "ExpressionStatement", + "src": "7949:29:0" + }, + { + "assignments": [ + 789 + ], + "declarations": [ + { + "constant": false, + "id": 789, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "8142:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8142:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 799, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 796, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8196:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8188:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 794, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8188:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8188:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 791, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8170:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 790, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "8163:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8163:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "8163:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8163:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8142:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 804, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8235:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 801, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8218:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 800, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "8212:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8212:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "8212:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8212:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 806, + "nodeType": "ExpressionStatement", + "src": "8212:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 812, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8276:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 807, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8256:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8256:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8256:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8256:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 814, + "nodeType": "ExpressionStatement", + "src": "8256:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 816, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8325:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8325:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 818, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "8337:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 819, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8343:10:0", + "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": 815, + "name": "ProxyWithdrawEthAsBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "8302:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8302:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 821, + "nodeType": "EmitStatement", + "src": "8297:57:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 822, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8371:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 730, + "id": 823, + "nodeType": "Return", + "src": "8364:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "0ae4b86d", + "id": 825, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 727, + "modifierName": { + "argumentTypes": null, + "id": 726, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "7482:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7482:16:0" + } + ], + "name": "withdrawAllEthAsBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 725, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 825, + "src": "7430:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7430:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7429:27:0" + }, + "returnParameters": { + "id": 730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 729, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 825, + "src": "7516:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 728, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7516:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7515:24:0" + }, + "scope": 1166, + "src": "7400:988:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 894, + "nodeType": "Block", + "src": "8528:430:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 835, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8546:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8546:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 837, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8559:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8546:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8570:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 834, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8538:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8538:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 841, + "nodeType": "ExpressionStatement", + "src": "8538:55:0" + }, + { + "assignments": [ + 843 + ], + "declarations": [ + { + "constant": false, + "id": 843, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 894, + "src": "8603:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 842, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8603:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 851, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 848, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "8647:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 849, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8665:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 845, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "8627:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 844, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "8618:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8618:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "8618:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8618:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8603:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 853, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8690:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8706:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8698:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8698:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8698:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8690:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8710:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 852, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8682:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8682:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 861, + "nodeType": "ExpressionStatement", + "src": "8682:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 863, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8743:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 862, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "8737:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8737:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "8737:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 866, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8766:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "8737:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8737:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 869, + "nodeType": "ExpressionStatement", + "src": "8737:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 874, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8810:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 875, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8816:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 871, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8794:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 870, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "8788:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8788:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "8788:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8788:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 877, + "nodeType": "ExpressionStatement", + "src": "8788:38:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 882, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8863:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8863:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 884, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8875:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 879, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8842:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 878, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "8836:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8836:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "depositQuoteTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 10458, + "src": "8836:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) external returns (uint256)" + } + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8836:49:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 886, + "nodeType": "ExpressionStatement", + "src": "8836:49:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 888, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8923:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8923:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 890, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8935:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 891, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8941:9:0", + "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": 887, + "name": "ProxyDepositEthAsQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "8900:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8900:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 893, + "nodeType": "EmitStatement", + "src": "8895:56:0" + } + ] + }, + "documentation": null, + "functionSelector": "ba9344a4", + "id": 895, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 832, + "modifierName": { + "argumentTypes": null, + "id": 831, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "8507:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8507:16:0" + } + ], + "name": "depositEthAsQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 827, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 895, + "src": "8421:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 826, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8421:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 895, + "src": "8440:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8440:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8420:45:0" + }, + "returnParameters": { + "id": 833, + "nodeType": "ParameterList", + "parameters": [], + "src": "8528:0:0" + }, + "scope": 1166, + "src": "8394:564:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1021, + "nodeType": "Block", + "src": "9124:1031:0", + "statements": [ + { + "assignments": [ + 907 + ], + "declarations": [ + { + "constant": false, + "id": 907, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9134:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 906, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9134:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 915, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 912, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 899, + "src": "9178:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 913, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "9196:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 909, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "9158:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 908, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "9149:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9149:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "9149:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9149:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9134:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 917, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9221:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9237:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9229:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9229:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9229:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9221:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9241:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 916, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9213:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9213:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 925, + "nodeType": "ExpressionStatement", + "src": "9213:45:0" + }, + { + "assignments": [ + 927 + ], + "declarations": [ + { + "constant": false, + "id": 927, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9268:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 926, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9268:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 933, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 929, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9295:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 928, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "9289:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9289:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10480, + "src": "9289:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9289:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9268:56:0" + }, + { + "assignments": [ + 935 + ], + "declarations": [ + { + "constant": false, + "id": 935, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9380:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 934, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9380:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 943, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 940, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9429:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9429:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 937, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9407:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 936, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9400:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9400:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "9400:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9400:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9380:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 948, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9482:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9482:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 952, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9502:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9494:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9494:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 954, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "9509:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 945, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9457:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 944, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9450:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9450:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "9450:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9450:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 956, + "nodeType": "ExpressionStatement", + "src": "9450:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 961, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 897, + "src": "9555:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 958, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9535:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 957, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "9529:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9529:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawQuote", + "nodeType": "MemberAccess", + "referencedDeclaration": 10465, + "src": "9529:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) external returns (uint256)" + } + }, + "id": 962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9529:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 963, + "nodeType": "ExpressionStatement", + "src": "9529:36:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 964, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "9629:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 971, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9678:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9670:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 969, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9670:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9670:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 966, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9648:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 965, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9641:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "9641:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9641:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9629:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 975, + "nodeType": "ExpressionStatement", + "src": "9629:55:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 980, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9722:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9722:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 982, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "9734:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 977, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9701:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 976, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9694:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9694:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "9694:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9694:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 984, + "nodeType": "ExpressionStatement", + "src": "9694:50:0" + }, + { + "assignments": [ + 986 + ], + "declarations": [ + { + "constant": false, + "id": 986, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9908:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 985, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9908:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 996, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 993, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9962:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9954:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9954:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9954:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 988, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "9936:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 987, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9929:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9929:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "9929:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9929:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9908:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1001, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10001:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 998, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "9984:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 997, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "9978:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9978:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "9978:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9978:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1003, + "nodeType": "ExpressionStatement", + "src": "9978:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1009, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10042:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1004, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10022:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10022:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10022:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10022:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1011, + "nodeType": "ExpressionStatement", + "src": "10022:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1013, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10092:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10092:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1015, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "10104:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1016, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10110:10:0", + "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": 1012, + "name": "ProxyWithdrawEthAsQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "10068:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10068:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1018, + "nodeType": "EmitStatement", + "src": "10063:58:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 1019, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10138:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 905, + "id": 1020, + "nodeType": "Return", + "src": "10131:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "770e96d3", + "id": 1022, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 902, + "modifierName": { + "argumentTypes": null, + "id": 901, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "9062:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9062:16:0" + } + ], + "name": "withdrawEthAsQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 897, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1022, + "src": "8992:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8992:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 899, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1022, + "src": "9011:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 898, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9011:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8991:45:0" + }, + "returnParameters": { + "id": 905, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 904, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1022, + "src": "9096:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 903, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9096:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9095:24:0" + }, + "scope": 1166, + "src": "8964:1191:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1124, + "nodeType": "Block", + "src": "10305:846:0", + "statements": [ + { + "assignments": [ + 1032 + ], + "declarations": [ + { + "constant": false, + "id": 1032, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10315:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1031, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10315:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1040, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1037, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1024, + "src": "10359:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1038, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "10377:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1034, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "10339:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1033, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "10330:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 1035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10330:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 1036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "10330:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10330:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10315:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1042, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "10402:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10418:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10410:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10410:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10410:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10402:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 1048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10422:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 1041, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10394:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10394:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "10394:45:0" + }, + { + "assignments": [ + 1052 + ], + "declarations": [ + { + "constant": false, + "id": 1052, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10449:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10449:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1058, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1054, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "10476:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1053, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "10470:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10470:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10480, + "src": "10470:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10470:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10449:56:0" + }, + { + "assignments": [ + 1060 + ], + "declarations": [ + { + "constant": false, + "id": 1060, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10561:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10561:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1068, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1065, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10610:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10610:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1062, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1052, + "src": "10588:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1061, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10581:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10581:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "10581:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10581:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10561:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1073, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10663:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10663:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1077, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "10683:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10675:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10675:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10675:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1079, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "10690:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1070, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1052, + "src": "10638:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1069, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10631:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10631:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "10631:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10631:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1081, + "nodeType": "ExpressionStatement", + "src": "10631:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1083, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "10716:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1082, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "10710:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10710:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawAllQuote", + "nodeType": "MemberAccess", + "referencedDeclaration": 10470, + "src": "10710:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10710:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1087, + "nodeType": "ExpressionStatement", + "src": "10710:30:0" + }, + { + "assignments": [ + 1089 + ], + "declarations": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10904:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10904:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1099, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1096, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "10958:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10950:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1094, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10950:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10950:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1091, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "10932:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1090, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10925:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10925:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "10925:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10925:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10904:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1104, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "10997:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1101, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "10980:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1100, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "10974:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10974:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "10974:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10974:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1106, + "nodeType": "ExpressionStatement", + "src": "10974:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1112, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "11038:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1107, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11018:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11018:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11018:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11018:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1114, + "nodeType": "ExpressionStatement", + "src": "11018:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1116, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11088:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11088:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1118, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "11100:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1119, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "11106:10:0", + "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": 1115, + "name": "ProxyWithdrawEthAsQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "11064:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11064:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1121, + "nodeType": "EmitStatement", + "src": "11059:58:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 1122, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "11134:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1030, + "id": 1123, + "nodeType": "Return", + "src": "11127:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "3cff9b56", + "id": 1125, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1027, + "modifierName": { + "argumentTypes": null, + "id": 1026, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "10243:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10243:16:0" + } + ], + "name": "withdrawAllEthAsQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1024, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1125, + "src": "10192:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1023, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10192:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10191:26:0" + }, + "returnParameters": { + "id": 1030, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1029, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1125, + "src": "10277:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1028, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10277:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10276:24:0" + }, + "scope": 1166, + "src": "10161:990:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1146, + "nodeType": "Block", + "src": "11320:83:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1138, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1129, + "src": "11368:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1141, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "11382:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 1140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11374:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11374:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1143, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "11389:6:0", + "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" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1135, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1127, + "src": "11337:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1134, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "11330:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11330:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11354, + "src": "11330:37:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11330:66:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1145, + "nodeType": "ExpressionStatement", + "src": "11330:66:0" + } + ] + }, + "documentation": null, + "id": 1147, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferIn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1127, + "mutability": "mutable", + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1147, + "src": "11238:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11238:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1129, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1147, + "src": "11268:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11268:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1131, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1147, + "src": "11290:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11290:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11228:82:0" + }, + "returnParameters": { + "id": 1133, + "nodeType": "ParameterList", + "parameters": [], + "src": "11320:0:0" + }, + "scope": 1166, + "src": "11208:195:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1164, + "nodeType": "Block", + "src": "11520:62:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "11564:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1161, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "11568:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1157, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "11537:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1156, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "11530:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11530:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "11530:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11530:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1163, + "nodeType": "ExpressionStatement", + "src": "11530:45:0" + } + ] + }, + "documentation": null, + "id": 1165, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOut", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1149, + "mutability": "mutable", + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1165, + "src": "11440:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1148, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11440:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1151, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1165, + "src": "11470:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11470:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1153, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1165, + "src": "11490:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11490:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11430:80:0" + }, + "returnParameters": { + "id": 1155, + "nodeType": "ParameterList", + "parameters": [], + "src": "11520:0:0" + }, + "scope": 1166, + "src": "11409:173:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1167, + "src": "636:10948:0" + } + ], + "src": "78:11507:0" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOEthProxy.sol", + "exportedSymbols": { + "DODOEthProxy": [ + 1166 + ], + "IDODOZoo": [ + 24 + ] + }, + "id": 1167, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:0" + }, + { + "id": 2, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:0" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol", + "file": "./lib/ReentrancyGuard.sol", + "id": 4, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 11297, + "src": "136:58:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3, + "name": "ReentrancyGuard", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:15:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "./lib/SafeERC20.sol", + "id": 6, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 11441, + "src": "195:46:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 5, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "203:9:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "./lib/SafeMath.sol", + "id": 8, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 11624, + "src": "242:44:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "250:8:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "file": "./intf/IDODO.sol", + "id": 10, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 10492, + "src": "287:39:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "295:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "./intf/IERC20.sol", + "id": 12, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 10608, + "src": "327:41:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "335:6:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IWETH.sol", + "file": "./intf/IWETH.sol", + "id": 14, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 10679, + "src": "369:39:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "377:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 24, + "linearizedBaseContracts": [ + 24 + ], + "name": "IDODOZoo", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "1273b0c6", + "id": 23, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getDODO", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 23, + "src": "452:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "452:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 23, + "src": "471:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "471:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "451:39:0" + }, + "returnParameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 23, + "src": "514:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "514:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "513:9:0" + }, + "scope": 24, + "src": "435:88:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1167, + "src": "410:115:0" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 26, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11296, + "src": "661:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$11296", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 27, + "nodeType": "InheritanceSpecifier", + "src": "661:15:0" + } + ], + "contractDependencies": [ + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 25, + "nodeType": "StructuredDocumentation", + "src": "527:108:0", + "text": " @title DODO Eth Proxy\n @author DODO Breeder\n @notice Handle ETH-WETH converting for users." + }, + "fullyImplemented": true, + "id": 1166, + "linearizedBaseContracts": [ + 1166, + 11296 + ], + "name": "DODOEthProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 30, + "libraryName": { + "contractScope": null, + "id": 28, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "689:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "683:27:0", + "typeName": { + "contractScope": null, + "id": 29, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "703:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "id": 33, + "libraryName": { + "contractScope": null, + "id": 31, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "721:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "715:27:0", + "typeName": { + "id": 32, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "734:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "39239f72", + "id": 35, + "mutability": "mutable", + "name": "_DODO_ZOO_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1166, + "src": "748:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "748:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0d4eec8f", + "id": 37, + "mutability": "mutable", + "name": "_WETH_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1166, + "src": "779:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 36, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "779:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 47, + "name": "ProxySellEthToToken", + "nodeType": "EventDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "891:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 38, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "891:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 41, + "indexed": true, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "923:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 40, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "923:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 43, + "indexed": false, + "mutability": "mutable", + "name": "payEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "959:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 42, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "959:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 45, + "indexed": false, + "mutability": "mutable", + "name": "receiveToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "983:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "983:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "881:128:0" + }, + "src": "856:154:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 57, + "name": "ProxyBuyEthWithToken", + "nodeType": "EventDefinition", + "parameters": { + "id": 56, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "indexed": true, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1052:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 48, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1052:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 51, + "indexed": true, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1083:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 50, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1083:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 53, + "indexed": false, + "mutability": "mutable", + "name": "receiveEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1119:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 52, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1119:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "indexed": false, + "mutability": "mutable", + "name": "payToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1147:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1147:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1042:127:0" + }, + "src": "1016:154:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 67, + "name": "ProxySellTokenToEth", + "nodeType": "EventDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 59, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1211:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 58, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "indexed": true, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1243:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1243:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": false, + "mutability": "mutable", + "name": "payToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1278:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 62, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "receiveEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1304:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1304:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1201:127:0" + }, + "src": "1176:153:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 77, + "name": "ProxyBuyTokenWithEth", + "nodeType": "EventDefinition", + "parameters": { + "id": 76, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "indexed": true, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1371:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1371:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 71, + "indexed": true, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1402:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 70, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1402:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 73, + "indexed": false, + "mutability": "mutable", + "name": "receiveToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1437:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 72, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 75, + "indexed": false, + "mutability": "mutable", + "name": "payEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1467:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 74, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1467:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1361:126:0" + }, + "src": "1335:153:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 85, + "name": "ProxyDepositEthAsBase", + "nodeType": "EventDefinition", + "parameters": { + "id": 84, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 85, + "src": "1522:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 78, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1522:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 85, + "src": "1542:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1542:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 83, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 85, + "src": "1564:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 82, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1564:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1521:61:0" + }, + "src": "1494:89:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 93, + "name": "ProxyWithdrawEthAsBase", + "nodeType": "EventDefinition", + "parameters": { + "id": 92, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 87, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 93, + "src": "1618:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 86, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1618:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 93, + "src": "1638:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1638:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 93, + "src": "1660:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1660:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1617:61:0" + }, + "src": "1589:90:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 101, + "name": "ProxyDepositEthAsQuote", + "nodeType": "EventDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 95, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "1714:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 94, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1714:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "1734:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 96, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1734:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "1756:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1756:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1713:61:0" + }, + "src": "1685:90:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 109, + "name": "ProxyWithdrawEthAsQuote", + "nodeType": "EventDefinition", + "parameters": { + "id": 108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 103, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 109, + "src": "1811:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1811:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 105, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 109, + "src": "1831:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 104, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1831:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 107, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 109, + "src": "1853:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1853:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1810:61:0" + }, + "src": "1781:91:0" + }, + { + "body": { + "id": 124, + "nodeType": "Block", + "src": "1980:60:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 116, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "1990:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 117, + "name": "dodoZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "2003:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1990:20:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 119, + "nodeType": "ExpressionStatement", + "src": "1990:20:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 120, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2020:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 121, + "name": "weth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 113, + "src": "2029:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2020:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 123, + "nodeType": "ExpressionStatement", + "src": "2020:13:0" + } + ] + }, + "documentation": null, + "id": 125, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 111, + "mutability": "mutable", + "name": "dodoZoo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "1934:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 110, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1934:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 113, + "mutability": "mutable", + "name": "weth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "1951:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1951:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1933:39:0" + }, + "returnParameters": { + "id": 115, + "nodeType": "ParameterList", + "parameters": [], + "src": "1980:0:0" + }, + "scope": 1166, + "src": "1922:118:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 136, + "nodeType": "Block", + "src": "2074:70:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 129, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2092:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2092:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 131, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2106:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2092:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "57455f53415645445f594f55525f4554485f3a29", + "id": 133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2114:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + }, + "value": "WE_SAVED_YOUR_ETH_:)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + } + ], + "id": 128, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2084:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2084:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 135, + "nodeType": "ExpressionStatement", + "src": "2084:53:0" + } + ] + }, + "documentation": null, + "id": 137, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 126, + "nodeType": "ParameterList", + "parameters": [], + "src": "2054:2:0" + }, + "returnParameters": { + "id": 127, + "nodeType": "ParameterList", + "parameters": [], + "src": "2074:0:0" + }, + "scope": 1166, + "src": "2046:98:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 148, + "nodeType": "Block", + "src": "2177:70:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2195:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2195:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 143, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2209:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2195:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "57455f53415645445f594f55525f4554485f3a29", + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2217:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + }, + "value": "WE_SAVED_YOUR_ETH_:)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + } + ], + "id": 140, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2187:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 147, + "nodeType": "ExpressionStatement", + "src": "2187:53:0" + } + ] + }, + "documentation": null, + "id": 149, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 138, + "nodeType": "ParameterList", + "parameters": [], + "src": "2157:2:0" + }, + "returnParameters": { + "id": 139, + "nodeType": "ParameterList", + "parameters": [], + "src": "2177:0:0" + }, + "scope": 1166, + "src": "2150:97:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 234, + "nodeType": "Block", + "src": "2455:604:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 163, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2473:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2473:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 165, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2486:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2473:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2497:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2465:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2465:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 169, + "nodeType": "ExpressionStatement", + "src": "2465:55:0" + }, + { + "assignments": [ + 171 + ], + "declarations": [ + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 234, + "src": "2530:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2530:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 179, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 176, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2574:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 177, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2582:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 173, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "2554:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 172, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2545:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2545:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "2545:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2545:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2530:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 181, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2618:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2634:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2626:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2626:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2618:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2638:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 180, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2610:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2610:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 189, + "nodeType": "ExpressionStatement", + "src": "2610:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 191, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2671:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 190, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "2665:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2665:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "2665:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 194, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2694:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2665:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2665:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 197, + "nodeType": "ExpressionStatement", + "src": "2665:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 202, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2738:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 203, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2744:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 199, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2722:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 198, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "2716:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2716:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "2716:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2716:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 205, + "nodeType": "ExpressionStatement", + "src": "2716:38:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 206, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2764:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 211, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2811:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 212, + "name": "minReceiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 155, + "src": "2822:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2845:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 208, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2791:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 207, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "2785:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2785:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sellBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10396, + "src": "2785:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2785:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2764:84:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 216, + "nodeType": "ExpressionStatement", + "src": "2764:84:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 218, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2871:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 219, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2890:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2890:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 221, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2902:18:0", + "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": 217, + "name": "_transferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "2858:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2858:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 223, + "nodeType": "ExpressionStatement", + "src": "2858:63:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2956:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2956:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 227, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2968:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 228, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2987:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 229, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2998:18:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 224, + "name": "ProxySellEthToToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "2936:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2936:81:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 231, + "nodeType": "EmitStatement", + "src": "2931:86:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 232, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "3034:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 161, + "id": 233, + "nodeType": "Return", + "src": "3027:25:0" + } + ] + }, + "documentation": null, + "functionSelector": "e5134628", + "id": 235, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 158, + "modifierName": { + "argumentTypes": null, + "id": 157, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "2401:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2401:16:0" + } + ], + "name": "sellEthToToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2286:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 153, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2321:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2321:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 155, + "mutability": "mutable", + "name": "minReceiveTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2348:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2348:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2276:107:0" + }, + "returnParameters": { + "id": 161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 160, + "mutability": "mutable", + "name": "receiveTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2427:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2427:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2426:28:0" + }, + "scope": 1166, + "src": "2253:806:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 326, + "nodeType": "Block", + "src": "3252:621:0", + "statements": [ + { + "assignments": [ + 249 + ], + "declarations": [ + { + "constant": false, + "id": 249, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 326, + "src": "3262:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3262:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 257, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 254, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "3306:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 255, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3314:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 251, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "3286:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 250, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "3277:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3277:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "3277:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3277:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3262:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 259, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3350:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3366:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3358:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3358:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3358:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3350:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3370:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3342:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 267, + "nodeType": "ExpressionStatement", + "src": "3342:45:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 268, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3397:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 273, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3444:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 270, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3420:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 269, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "3414:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queryBuyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10421, + "src": "3414:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view external returns (uint256)" + } + }, + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3397:57:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 276, + "nodeType": "ExpressionStatement", + "src": "3397:57:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 278, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3476:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 279, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3495:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3495:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 281, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3507:14:0", + "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": 277, + "name": "_transferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "3464:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3464:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 283, + "nodeType": "ExpressionStatement", + "src": "3464:58:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 288, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3570:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 289, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3576:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 285, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3539:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 284, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "3532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3532:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeApprove", + "nodeType": "MemberAccess", + "referencedDeclaration": 11396, + "src": "3532:37:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3532:59:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 291, + "nodeType": "ExpressionStatement", + "src": "3532:59:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 296, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3626:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 297, + "name": "maxPayTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "3637:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3656:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 293, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3607:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 292, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "3601:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3601:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "buyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10407, + "src": "3601:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3601:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 300, + "nodeType": "ExpressionStatement", + "src": "3601:58:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 305, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3692:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 302, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "3675:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 301, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "3669:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3669:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "3669:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3669:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 307, + "nodeType": "ExpressionStatement", + "src": "3669:33:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 313, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3732:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 308, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3712:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3712:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3712:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3712:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 315, + "nodeType": "ExpressionStatement", + "src": "3712:30:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 317, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3778:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3778:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 319, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3790:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 320, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3809:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 321, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3820:14:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 316, + "name": "ProxyBuyEthWithToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 57, + "src": "3757:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3757:78:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 323, + "nodeType": "EmitStatement", + "src": "3752:83:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 324, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3852:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 247, + "id": 325, + "nodeType": "Return", + "src": "3845:21:0" + } + ] + }, + "documentation": null, + "functionSelector": "e8d522bb", + "id": 327, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 244, + "modifierName": { + "argumentTypes": null, + "id": 243, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "3202:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3202:16:0" + } + ], + "name": "buyEthWithToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3099:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3099:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 239, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3134:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3134:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 241, + "mutability": "mutable", + "name": "maxPayTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3161:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3161:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3089:103:0" + }, + "returnParameters": { + "id": 247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 246, + "mutability": "mutable", + "name": "payTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3228:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3228:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3227:24:0" + }, + "scope": 1166, + "src": "3065:808:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 411, + "nodeType": "Block", + "src": "4070:587:0", + "statements": [ + { + "assignments": [ + 341 + ], + "declarations": [ + { + "constant": false, + "id": 341, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 411, + "src": "4080:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4080:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 349, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 346, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4124:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 347, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4142:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 343, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "4104:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 342, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "4095:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "4095:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4080:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 351, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "4167:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4183:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4175:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 352, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4175:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4175:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4167:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4187:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4159:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4159:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 359, + "nodeType": "ExpressionStatement", + "src": "4159:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 364, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "4251:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 365, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4257:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 361, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4221:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 360, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "4214:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4214:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeApprove", + "nodeType": "MemberAccess", + "referencedDeclaration": 11396, + "src": "4214:36:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4214:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 367, + "nodeType": "ExpressionStatement", + "src": "4214:55:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 369, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4291:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 370, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4309:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4309:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 372, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4321:11:0", + "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": 368, + "name": "_transferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "4279:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4279:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 374, + "nodeType": "ExpressionStatement", + "src": "4279:54:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 375, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4343:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 380, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4388:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 381, + "name": "minReceiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "4401:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4422:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 377, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "4368:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 376, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "4362:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4362:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sellBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10396, + "src": "4362:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4362:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4343:82:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 385, + "nodeType": "ExpressionStatement", + "src": "4343:82:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 390, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4458:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 387, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4441:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 386, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "4435:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4435:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "4435:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4435:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 392, + "nodeType": "ExpressionStatement", + "src": "4435:40:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 398, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4505:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4485:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4485:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4485:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4485:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 400, + "nodeType": "ExpressionStatement", + "src": "4485:37:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 402, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4557:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4557:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 404, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4569:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 405, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4587:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 406, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4600:16:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 401, + "name": "ProxySellTokenToEth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "4537:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4537:80:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 408, + "nodeType": "EmitStatement", + "src": "4532:85:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 409, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4634:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 339, + "id": 410, + "nodeType": "Return", + "src": "4627:23:0" + } + ] + }, + "documentation": null, + "functionSelector": "d668e026", + "id": 412, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 336, + "modifierName": { + "argumentTypes": null, + "id": 335, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "4018:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4018:16:0" + } + ], + "name": "sellTokenToEth", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "3912:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 328, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3912:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "mutability": "mutable", + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "3946:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3946:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 333, + "mutability": "mutable", + "name": "minReceiveEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "3975:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 332, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3975:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3902:106:0" + }, + "returnParameters": { + "id": 339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "receiveEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "4044:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 337, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4044:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4043:26:0" + }, + "scope": 1166, + "src": "3879:778:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 524, + "nodeType": "Block", + "src": "4855:775:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 426, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4873:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4873:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 428, + "name": "maxPayEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "4886:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4873:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4903:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 425, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4865:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4865:61:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 432, + "nodeType": "ExpressionStatement", + "src": "4865:61:0" + }, + { + "assignments": [ + 434 + ], + "declarations": [ + { + "constant": false, + "id": 434, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 524, + "src": "4936:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4936:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 442, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 439, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "4980:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 440, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4998:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 436, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "4960:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 435, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "4951:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4951:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "4951:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4951:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4936:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 444, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5023:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5039:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5031:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 445, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5031:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5031:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5023:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5043:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 443, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5015:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5015:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 452, + "nodeType": "ExpressionStatement", + "src": "5015:45:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 453, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5070:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 458, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5115:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 455, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5091:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 454, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "5085:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5085:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queryBuyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10421, + "src": "5085:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view external returns (uint256)" + } + }, + "id": 459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5085:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5070:57:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 461, + "nodeType": "ExpressionStatement", + "src": "5070:57:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 463, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5143:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 462, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "5137:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5137:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "5137:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 466, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5166:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5137:42:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5137:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 469, + "nodeType": "ExpressionStatement", + "src": "5137:44:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 474, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5213:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 475, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5219:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 471, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5197:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 470, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "5191:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5191:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "5191:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5191:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 477, + "nodeType": "ExpressionStatement", + "src": "5191:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 482, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5267:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 483, + "name": "maxPayEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "5280:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5297:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 479, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5248:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 478, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "5242:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5242:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "buyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10407, + "src": "5242:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5242:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 486, + "nodeType": "ExpressionStatement", + "src": "5242:58:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 488, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "5323:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 489, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5341:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5341:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 491, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5353:11:0", + "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": 487, + "name": "_transferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "5310:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5310:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 493, + "nodeType": "ExpressionStatement", + "src": "5310:55:0" + }, + { + "assignments": [ + 495 + ], + "declarations": [ + { + "constant": false, + "id": 495, + "mutability": "mutable", + "name": "refund", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 524, + "src": "5375:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5375:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 500, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 498, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5412:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 496, + "name": "maxPayEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "5392:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5392:19:0", + "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": 499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5392:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5375:50:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 501, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "5439:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5448:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5439:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 513, + "nodeType": "IfStatement", + "src": "5435:68:0", + "trueBody": { + "id": 512, + "nodeType": "Block", + "src": "5451:52:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 509, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "5485:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 504, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5465:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5465:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5465:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5465:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 511, + "nodeType": "ExpressionStatement", + "src": "5465:27:0" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 515, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5538:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5538:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 517, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "5550:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 518, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5568:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 519, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5581:12:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 514, + "name": "ProxyBuyTokenWithEth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "5517:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5517:77:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 521, + "nodeType": "EmitStatement", + "src": "5512:82:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 522, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5611:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 424, + "id": 523, + "nodeType": "Return", + "src": "5604:19:0" + } + ] + }, + "documentation": null, + "functionSelector": "33e00053", + "id": 525, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 421, + "modifierName": { + "argumentTypes": null, + "id": 420, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "4807:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4807:16:0" + } + ], + "name": "buyTokenWithEth", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 414, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4697:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4697:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 416, + "mutability": "mutable", + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4731:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4731:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 418, + "mutability": "mutable", + "name": "maxPayEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4760:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 417, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4760:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4687:102:0" + }, + "returnParameters": { + "id": 424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 423, + "mutability": "mutable", + "name": "payEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4833:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4833:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4832:22:0" + }, + "scope": 1166, + "src": "4663:967:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 594, + "nodeType": "Block", + "src": "5770:429:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 535, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5788:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5788:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 537, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "5801:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5788:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5812:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 534, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5780:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5780:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 541, + "nodeType": "ExpressionStatement", + "src": "5780:55:0" + }, + { + "assignments": [ + 543 + ], + "declarations": [ + { + "constant": false, + "id": 543, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 594, + "src": "5845:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 542, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5845:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 551, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 548, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5889:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 549, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "5897:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 545, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "5869:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 544, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "5860:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5860:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "5860:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5860:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5845:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 553, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "5933:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5949:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5941:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 554, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5941:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5941:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5933:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5953:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 552, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5925:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5925:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 561, + "nodeType": "ExpressionStatement", + "src": "5925:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 563, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5986:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 562, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "5980:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5980:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "5980:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 566, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6009:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5980:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5980:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 569, + "nodeType": "ExpressionStatement", + "src": "5980:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 574, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "6053:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 575, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6059:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 571, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "6037:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 570, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "6031:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6031:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "6031:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6031:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 577, + "nodeType": "ExpressionStatement", + "src": "6031:38:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 582, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6105:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6105:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 584, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6117:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 579, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "6085:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 578, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "6079:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6079:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "depositBaseTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 10437, + "src": "6079:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) external returns (uint256)" + } + }, + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6079:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 586, + "nodeType": "ExpressionStatement", + "src": "6079:48:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 588, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6164:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6164:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 590, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "6176:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 591, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6182:9:0", + "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": 587, + "name": "ProxyDepositEthAsBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "6142:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6142:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 593, + "nodeType": "EmitStatement", + "src": "6137:55:0" + } + ] + }, + "documentation": null, + "functionSelector": "b56a1d03", + "id": 595, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 532, + "modifierName": { + "argumentTypes": null, + "id": 531, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "5749:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5749:16:0" + } + ], + "name": "depositEthAsBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 595, + "src": "5662:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 526, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5662:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 595, + "src": "5681:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5681:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5661:46:0" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [], + "src": "5770:0:0" + }, + "scope": 1166, + "src": "5636:563:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 721, + "nodeType": "Block", + "src": "6365:1029:0", + "statements": [ + { + "assignments": [ + 607 + ], + "declarations": [ + { + "constant": false, + "id": 607, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "6375:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6375:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 615, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 612, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "6419:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 613, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "6427:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 609, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "6399:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 608, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "6390:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6390:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "6390:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6390:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6375:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 617, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "6463:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6479:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6471:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6471:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6471:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6463:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6483:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 616, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6455:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6455:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 625, + "nodeType": "ExpressionStatement", + "src": "6455:45:0" + }, + { + "assignments": [ + 627 + ], + "declarations": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "6510:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6510:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 633, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 629, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "6537:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 628, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "6531:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6531:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10475, + "src": "6531:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6531:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6510:55:0" + }, + { + "assignments": [ + 635 + ], + "declarations": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "6621:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6621:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 643, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 640, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6670:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6670:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 637, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6648:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 636, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6641:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "6641:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6641:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6621:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 648, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6723:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6723:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 652, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6743:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6735:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6735:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 654, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "6750:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 645, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6698:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 644, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6691:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6691:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "6691:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6691:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 656, + "nodeType": "ExpressionStatement", + "src": "6691:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 661, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "6795:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 658, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "6776:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 657, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "6770:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6770:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 10444, + "src": "6770:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) external returns (uint256)" + } + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6770:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 663, + "nodeType": "ExpressionStatement", + "src": "6770:35:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 664, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "6869:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 671, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6918:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6910:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6910:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6910:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 666, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6888:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 665, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6881:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6881:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "6881:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6881:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6869:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 675, + "nodeType": "ExpressionStatement", + "src": "6869:55:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 680, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6962:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6962:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 682, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "6974:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 677, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6941:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 676, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6934:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6934:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "6934:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6934:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 684, + "nodeType": "ExpressionStatement", + "src": "6934:50:0" + }, + { + "assignments": [ + 686 + ], + "declarations": [ + { + "constant": false, + "id": 686, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "7148:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7148:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 696, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 693, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7202:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7194:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7194:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7194:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 688, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "7176:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 687, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7169:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7169:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "7169:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7169:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7148:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 701, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7241:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 698, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "7224:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 697, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "7218:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7218:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "7218:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7218:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 703, + "nodeType": "ExpressionStatement", + "src": "7218:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 709, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7282:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 704, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7262:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7262:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7262:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7262:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 711, + "nodeType": "ExpressionStatement", + "src": "7262:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 713, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7331:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7331:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 715, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "7343:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 716, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7349:10:0", + "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": 712, + "name": "ProxyWithdrawEthAsBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "7308:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 718, + "nodeType": "EmitStatement", + "src": "7303:57:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 719, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7377:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 605, + "id": 720, + "nodeType": "Return", + "src": "7370:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "827df194", + "id": 722, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 602, + "modifierName": { + "argumentTypes": null, + "id": 601, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "6303:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6303:16:0" + } + ], + "name": "withdrawEthAsBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 597, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 722, + "src": "6232:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6232:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 722, + "src": "6251:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6251:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6231:46:0" + }, + "returnParameters": { + "id": 605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 604, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 722, + "src": "6337:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6337:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6336:24:0" + }, + "scope": 1166, + "src": "6205:1189:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 824, + "nodeType": "Block", + "src": "7544:844:0", + "statements": [ + { + "assignments": [ + 732 + ], + "declarations": [ + { + "constant": false, + "id": 732, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "7554:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7554:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 740, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 737, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "7598:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 738, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 724, + "src": "7606:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 734, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "7578:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 733, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "7569:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7569:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "7569:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7569:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7554:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 742, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "7642:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7658:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7650:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7650:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7650:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7642:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7662:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 741, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7634:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 750, + "nodeType": "ExpressionStatement", + "src": "7634:45:0" + }, + { + "assignments": [ + 752 + ], + "declarations": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "7689:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7689:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 758, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 754, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "7716:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 753, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "7710:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7710:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10475, + "src": "7710:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7710:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7689:55:0" + }, + { + "assignments": [ + 760 + ], + "declarations": [ + { + "constant": false, + "id": 760, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "7800:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7800:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 768, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7849:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7849:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 762, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "7827:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 761, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7820:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7820:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "7820:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7820:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7800:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 773, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7902:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7902:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 777, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7922:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7914:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7914:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7914:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 779, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 760, + "src": "7929:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 770, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "7877:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 769, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7870:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7870:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "7870:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7870:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 781, + "nodeType": "ExpressionStatement", + "src": "7870:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 783, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "7955:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 782, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "7949:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7949:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawAllBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 10449, + "src": "7949:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7949:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 787, + "nodeType": "ExpressionStatement", + "src": "7949:29:0" + }, + { + "assignments": [ + 789 + ], + "declarations": [ + { + "constant": false, + "id": 789, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "8142:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8142:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 799, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 796, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8196:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8188:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 794, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8188:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8188:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 791, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8170:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 790, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "8163:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8163:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "8163:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8163:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8142:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 804, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8235:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 801, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8218:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 800, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "8212:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8212:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "8212:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8212:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 806, + "nodeType": "ExpressionStatement", + "src": "8212:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 812, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8276:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 807, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8256:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8256:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8256:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8256:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 814, + "nodeType": "ExpressionStatement", + "src": "8256:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 816, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8325:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8325:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 818, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "8337:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 819, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8343:10:0", + "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": 815, + "name": "ProxyWithdrawEthAsBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "8302:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8302:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 821, + "nodeType": "EmitStatement", + "src": "8297:57:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 822, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8371:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 730, + "id": 823, + "nodeType": "Return", + "src": "8364:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "0ae4b86d", + "id": 825, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 727, + "modifierName": { + "argumentTypes": null, + "id": 726, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "7482:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7482:16:0" + } + ], + "name": "withdrawAllEthAsBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 725, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 825, + "src": "7430:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7430:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7429:27:0" + }, + "returnParameters": { + "id": 730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 729, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 825, + "src": "7516:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 728, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7516:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7515:24:0" + }, + "scope": 1166, + "src": "7400:988:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 894, + "nodeType": "Block", + "src": "8528:430:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 835, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8546:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8546:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 837, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8559:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8546:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8570:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 834, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8538:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8538:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 841, + "nodeType": "ExpressionStatement", + "src": "8538:55:0" + }, + { + "assignments": [ + 843 + ], + "declarations": [ + { + "constant": false, + "id": 843, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 894, + "src": "8603:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 842, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8603:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 851, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 848, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "8647:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 849, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8665:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 845, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "8627:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 844, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "8618:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8618:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "8618:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8618:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8603:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 853, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8690:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8706:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8698:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8698:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8698:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8690:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8710:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 852, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8682:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8682:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 861, + "nodeType": "ExpressionStatement", + "src": "8682:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 863, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8743:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 862, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "8737:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8737:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "8737:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 866, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8766:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "8737:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8737:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 869, + "nodeType": "ExpressionStatement", + "src": "8737:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 874, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8810:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 875, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8816:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 871, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8794:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 870, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "8788:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8788:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "8788:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8788:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 877, + "nodeType": "ExpressionStatement", + "src": "8788:38:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 882, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8863:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8863:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 884, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8875:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 879, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8842:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 878, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "8836:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8836:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "depositQuoteTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 10458, + "src": "8836:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) external returns (uint256)" + } + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8836:49:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 886, + "nodeType": "ExpressionStatement", + "src": "8836:49:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 888, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8923:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8923:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 890, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8935:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 891, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8941:9:0", + "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": 887, + "name": "ProxyDepositEthAsQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "8900:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8900:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 893, + "nodeType": "EmitStatement", + "src": "8895:56:0" + } + ] + }, + "documentation": null, + "functionSelector": "ba9344a4", + "id": 895, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 832, + "modifierName": { + "argumentTypes": null, + "id": 831, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "8507:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8507:16:0" + } + ], + "name": "depositEthAsQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 827, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 895, + "src": "8421:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 826, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8421:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 895, + "src": "8440:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8440:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8420:45:0" + }, + "returnParameters": { + "id": 833, + "nodeType": "ParameterList", + "parameters": [], + "src": "8528:0:0" + }, + "scope": 1166, + "src": "8394:564:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1021, + "nodeType": "Block", + "src": "9124:1031:0", + "statements": [ + { + "assignments": [ + 907 + ], + "declarations": [ + { + "constant": false, + "id": 907, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9134:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 906, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9134:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 915, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 912, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 899, + "src": "9178:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 913, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "9196:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 909, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "9158:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 908, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "9149:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9149:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "9149:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9149:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9134:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 917, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9221:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9237:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9229:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9229:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9229:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9221:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9241:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 916, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9213:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9213:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 925, + "nodeType": "ExpressionStatement", + "src": "9213:45:0" + }, + { + "assignments": [ + 927 + ], + "declarations": [ + { + "constant": false, + "id": 927, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9268:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 926, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9268:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 933, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 929, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9295:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 928, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "9289:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9289:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10480, + "src": "9289:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9289:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9268:56:0" + }, + { + "assignments": [ + 935 + ], + "declarations": [ + { + "constant": false, + "id": 935, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9380:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 934, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9380:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 943, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 940, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9429:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9429:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 937, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9407:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 936, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9400:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9400:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "9400:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9400:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9380:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 948, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9482:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9482:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 952, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9502:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9494:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9494:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 954, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "9509:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 945, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9457:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 944, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9450:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9450:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "9450:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9450:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 956, + "nodeType": "ExpressionStatement", + "src": "9450:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 961, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 897, + "src": "9555:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 958, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9535:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 957, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "9529:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9529:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawQuote", + "nodeType": "MemberAccess", + "referencedDeclaration": 10465, + "src": "9529:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) external returns (uint256)" + } + }, + "id": 962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9529:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 963, + "nodeType": "ExpressionStatement", + "src": "9529:36:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 964, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "9629:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 971, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9678:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9670:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 969, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9670:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9670:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 966, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9648:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 965, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9641:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "9641:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9641:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9629:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 975, + "nodeType": "ExpressionStatement", + "src": "9629:55:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 980, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9722:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9722:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 982, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "9734:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 977, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9701:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 976, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9694:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9694:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "9694:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9694:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 984, + "nodeType": "ExpressionStatement", + "src": "9694:50:0" + }, + { + "assignments": [ + 986 + ], + "declarations": [ + { + "constant": false, + "id": 986, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9908:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 985, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9908:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 996, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 993, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9962:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9954:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9954:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9954:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 988, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "9936:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 987, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9929:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9929:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "9929:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9929:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9908:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1001, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10001:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 998, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "9984:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 997, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "9978:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9978:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "9978:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9978:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1003, + "nodeType": "ExpressionStatement", + "src": "9978:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1009, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10042:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1004, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10022:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10022:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10022:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10022:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1011, + "nodeType": "ExpressionStatement", + "src": "10022:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1013, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10092:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10092:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1015, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "10104:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1016, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10110:10:0", + "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": 1012, + "name": "ProxyWithdrawEthAsQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "10068:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10068:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1018, + "nodeType": "EmitStatement", + "src": "10063:58:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 1019, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10138:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 905, + "id": 1020, + "nodeType": "Return", + "src": "10131:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "770e96d3", + "id": 1022, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 902, + "modifierName": { + "argumentTypes": null, + "id": 901, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "9062:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9062:16:0" + } + ], + "name": "withdrawEthAsQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 897, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1022, + "src": "8992:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8992:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 899, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1022, + "src": "9011:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 898, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9011:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8991:45:0" + }, + "returnParameters": { + "id": 905, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 904, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1022, + "src": "9096:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 903, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9096:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9095:24:0" + }, + "scope": 1166, + "src": "8964:1191:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1124, + "nodeType": "Block", + "src": "10305:846:0", + "statements": [ + { + "assignments": [ + 1032 + ], + "declarations": [ + { + "constant": false, + "id": 1032, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10315:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1031, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10315:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1040, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1037, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1024, + "src": "10359:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1038, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "10377:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1034, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "10339:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1033, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "10330:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 1035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10330:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 1036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "10330:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10330:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10315:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1042, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "10402:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10418:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10410:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10410:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10410:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10402:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 1048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10422:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 1041, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10394:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10394:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "10394:45:0" + }, + { + "assignments": [ + 1052 + ], + "declarations": [ + { + "constant": false, + "id": 1052, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10449:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10449:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1058, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1054, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "10476:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1053, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "10470:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10470:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10480, + "src": "10470:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10470:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10449:56:0" + }, + { + "assignments": [ + 1060 + ], + "declarations": [ + { + "constant": false, + "id": 1060, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10561:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10561:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1068, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1065, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10610:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10610:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1062, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1052, + "src": "10588:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1061, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10581:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10581:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "10581:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10581:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10561:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1073, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10663:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10663:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1077, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "10683:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10675:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10675:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10675:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1079, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "10690:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1070, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1052, + "src": "10638:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1069, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10631:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10631:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "10631:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10631:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1081, + "nodeType": "ExpressionStatement", + "src": "10631:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1083, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "10716:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1082, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "10710:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10710:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawAllQuote", + "nodeType": "MemberAccess", + "referencedDeclaration": 10470, + "src": "10710:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10710:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1087, + "nodeType": "ExpressionStatement", + "src": "10710:30:0" + }, + { + "assignments": [ + 1089 + ], + "declarations": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10904:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10904:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1099, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1096, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "10958:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10950:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1094, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10950:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10950:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1091, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "10932:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1090, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10925:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10925:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "10925:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10925:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10904:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1104, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "10997:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1101, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "10980:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1100, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "10974:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10974:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "10974:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10974:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1106, + "nodeType": "ExpressionStatement", + "src": "10974:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1112, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "11038:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1107, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11018:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11018:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11018:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11018:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1114, + "nodeType": "ExpressionStatement", + "src": "11018:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1116, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11088:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11088:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1118, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "11100:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1119, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "11106:10:0", + "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": 1115, + "name": "ProxyWithdrawEthAsQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "11064:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11064:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1121, + "nodeType": "EmitStatement", + "src": "11059:58:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 1122, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "11134:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1030, + "id": 1123, + "nodeType": "Return", + "src": "11127:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "3cff9b56", + "id": 1125, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1027, + "modifierName": { + "argumentTypes": null, + "id": 1026, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "10243:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10243:16:0" + } + ], + "name": "withdrawAllEthAsQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1024, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1125, + "src": "10192:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1023, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10192:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10191:26:0" + }, + "returnParameters": { + "id": 1030, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1029, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1125, + "src": "10277:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1028, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10277:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10276:24:0" + }, + "scope": 1166, + "src": "10161:990:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1146, + "nodeType": "Block", + "src": "11320:83:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1138, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1129, + "src": "11368:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1141, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "11382:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 1140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11374:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11374:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1143, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "11389:6:0", + "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" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1135, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1127, + "src": "11337:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1134, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "11330:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11330:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11354, + "src": "11330:37:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11330:66:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1145, + "nodeType": "ExpressionStatement", + "src": "11330:66:0" + } + ] + }, + "documentation": null, + "id": 1147, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferIn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1127, + "mutability": "mutable", + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1147, + "src": "11238:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11238:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1129, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1147, + "src": "11268:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11268:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1131, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1147, + "src": "11290:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11290:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11228:82:0" + }, + "returnParameters": { + "id": 1133, + "nodeType": "ParameterList", + "parameters": [], + "src": "11320:0:0" + }, + "scope": 1166, + "src": "11208:195:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1164, + "nodeType": "Block", + "src": "11520:62:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "11564:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1161, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "11568:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1157, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "11537:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1156, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "11530:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11530:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "11530:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11530:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1163, + "nodeType": "ExpressionStatement", + "src": "11530:45:0" + } + ] + }, + "documentation": null, + "id": 1165, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOut", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1149, + "mutability": "mutable", + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1165, + "src": "11440:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1148, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11440:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1151, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1165, + "src": "11470:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11470:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1153, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1165, + "src": "11490:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11490:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11430:80:0" + }, + "returnParameters": { + "id": 1155, + "nodeType": "ParameterList", + "parameters": [], + "src": "11520:0:0" + }, + "scope": 1166, + "src": "11409:173:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1167, + "src": "636:10948:0" + } + ], + "src": "78:11507:0" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.452Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "DODO Eth Proxy" + }, + "userdoc": { + "methods": {}, + "notice": "Handle ETH-WETH converting for users." + } +} \ No newline at end of file diff --git a/build-v1/contracts/DODOLpToken.json b/build-v1/contracts/DODOLpToken.json new file mode 100644 index 0000000..b2ea611 --- /dev/null +++ b/build-v1/contracts/DODOLpToken.json @@ -0,0 +1,10705 @@ +{ + "contractName": "DODOLpToken", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_originToken", + "type": "address" + } + ], + "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": "amount", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Mint", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "originToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "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": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "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": "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": "user", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_originToken\",\"type\":\"address\"}],\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"originToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"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\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\",\"params\":{\"owner\":\"address The address which owns the funds.\",\"spender\":\"address The address which will spend the funds.\"},\"returns\":{\"_0\":\"A uint256 specifying the amount of tokens still available for the spender.\"}},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\",\"params\":{\"amount\":\"The amount of tokens to be spent.\",\"spender\":\"The address which will spend the funds.\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\",\"params\":{\"owner\":\"The address to query the the balance of.\"},\"returns\":{\"balance\":\"An uint256 representing the amount owned by the passed address.\"}},\"transfer(address,uint256)\":{\"details\":\"transfer token for a specified address\",\"params\":{\"amount\":\"The amount to be transferred.\",\"to\":\"The address to transfer to.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another\",\"params\":{\"amount\":\"uint256 the amount of tokens to be transferred\",\"from\":\"address The address which you want to send tokens from\",\"to\":\"address The address which you want to transfer to\"}}},\"title\":\"DODOLpToken\"},\"userdoc\":{\"methods\":{},\"notice\":\"Tokenize liquidity pool assets. An ordinary ERC20 contract with mint and burn functions\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/DODOLpToken.sol\":\"DODOLpToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/DODOLpToken.sol\":{\"keccak256\":\"0x93bb74398b96b44febba31ad63435edae743142088311a325215aaa34d35b512\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://0991fee8f385b3266ff39672b209906557d1be7308b5a35749f3f8453f427d2b\",\"dweb:/ipfs/Qmf8sKLSQkcniYin94QfNGc8GLMaVrLzQUq2grV5Hu7JyU\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol\":{\"keccak256\":\"0xb7a2ca6570834e4784e86d19fd5a4b6b1eff22a4586dc240659943396a365aa5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5855a493c78e787d7effd87d9c661acbcd19ca1e1ba72dbeaa91c3c8db29cbb4\",\"dweb:/ipfs/QmSddEexZ5okMatgoQ5JZRoJqe7BwsJwwWA2o1kKx7vbTH\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]}},\"version\":1}", + "bytecode": "0x60c060405260036080819052620444c560ec1b60a0908152620000269160029190620000c6565b503480156200003457600080fd5b506040516200102d3803806200102d83398101604081905262000057916200016b565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600380546001600160a01b0319166001600160a01b03929092169190911790556200019b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200010957805160ff191683800117855562000139565b8280016001018555821562000139579182015b82811115620001395782518255916020019190600101906200011c565b50620001479291506200014b565b5090565b6200016891905b8082111562000147576000815560010162000152565b90565b6000602082840312156200017d578081fd5b81516001600160a01b038116811462000194578182fd5b9392505050565b610e8280620001ab6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80634e71e0c8116100975780639dc29fac116100665780639dc29fac146101dd578063a9059cbb146101f0578063dd62ed3e14610203578063f2fde38b1461021657610100565b80634e71e0c8146101b257806370a08231146101ba5780638456db15146101cd57806395d89b41146101d557610100565b806318160ddd116100d357806318160ddd1461016057806323b872dd14610175578063313ce5671461018857806340c10f191461019d57610100565b806306fdde0314610105578063095ea7b31461012357806313096a411461014357806316048bc414610158575b600080fd5b61010d610229565b60405161011a9190610c89565b60405180910390f35b610136610131366004610b56565b6102f6565b60405161011a9190610c7e565b61014b610361565b60405161011a9190610c6a565b61014b610370565b61016861037f565b60405161011a9190610dcd565b610136610183366004610b16565b610385565b610190610509565b60405161011a9190610dd6565b6101b06101ab366004610b56565b61058b565b005b6101b061068e565b6101686101c8366004610ac7565b61071c565b61014b610737565b61010d610746565b6101b06101eb366004610b56565b6107d1565b6101366101fe366004610b56565b6108c8565b610168610211366004610ae2565b610986565b6101b0610224366004610ac7565b6109b1565b604080518082018252600f81526e5f444f444f5f4c505f544f4b454e5f60881b602082015260035482516306fdde0360e01b815292516060936001600160a01b03909216916306fdde03916004808301926000929190829003018186803b15801561029357600080fd5b505afa1580156102a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102cf9190810190610b80565b816040516020016102e1929190610c3c565b60405160208183030381529060405291505090565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061034f908690610dcd565b60405180910390a35060015b92915050565b6003546001600160a01b031681565b6000546001600160a01b031681565b60045481565b6001600160a01b0383166000908152600560205260408120548211156103c65760405162461bcd60e51b81526004016103bd90610d5b565b60405180910390fd5b6001600160a01b03841660009081526006602090815260408083203384529091529020548211156104095760405162461bcd60e51b81526004016103bd90610ce3565b6001600160a01b038416600090815260056020526040902054610432908363ffffffff610a5c16565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610467908363ffffffff610a8416565b6001600160a01b0380851660009081526005602090815260408083209490945591871681526006825282812033825290915220546104ab908363ffffffff610a5c16565b6001600160a01b038086166000818152600660209081526040808320338452909152908190209390935591519085169190600080516020610e2d833981519152906104f7908690610dcd565b60405180910390a35060019392505050565b6003546040805163313ce56760e01b815290516000926001600160a01b03169163313ce567916004808301926020929190829003018186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190610c1b565b905090565b6000546001600160a01b031633146105b55760405162461bcd60e51b81526004016103bd90610d87565b6001600160a01b0382166000908152600560205260409020546105de908263ffffffff610a8416565b6001600160a01b03831660009081526005602052604090205560045461060a908263ffffffff610a8416565b6004556040516001600160a01b038316907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688590610648908490610dcd565b60405180910390a2816001600160a01b031660006001600160a01b0316600080516020610e2d833981519152836040516106829190610dcd565b60405180910390a35050565b6001546001600160a01b031633146106b85760405162461bcd60e51b81526004016103bd90610cbc565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b031660009081526005602052604090205490565b6001546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107c95780601f1061079e576101008083540402835291602001916107c9565b820191906000526020600020905b8154815290600101906020018083116107ac57829003601f168201915b505050505081565b6000546001600160a01b031633146107fb5760405162461bcd60e51b81526004016103bd90610d87565b6001600160a01b038216600090815260056020526040902054610824908263ffffffff610a5c16565b6001600160a01b038316600090815260056020526040902055600454610850908263ffffffff610a5c16565b6004556040516001600160a01b038316907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59061088e908490610dcd565b60405180910390a260006001600160a01b0316826001600160a01b0316600080516020610e2d833981519152836040516106829190610dcd565b336000908152600560205260408120548211156108f75760405162461bcd60e51b81526004016103bd90610d5b565b33600090815260056020526040902054610917908363ffffffff610a5c16565b33600090815260056020526040808220929092556001600160a01b03851681522054610949908363ffffffff610a8416565b6001600160a01b038416600081815260056020526040908190209290925590513390600080516020610e2d8339815191529061034f908690610dcd565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000546001600160a01b031633146109db5760405162461bcd60e51b81526004016103bd90610d87565b6001600160a01b038116610a015760405162461bcd60e51b81526004016103bd90610d34565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600082821115610a7e5760405162461bcd60e51b81526004016103bd90610d11565b50900390565b600082820183811015610aa95760405162461bcd60e51b81526004016103bd90610daa565b9392505050565b80356001600160a01b038116811461035b57600080fd5b600060208284031215610ad8578081fd5b610aa98383610ab0565b60008060408385031215610af4578081fd5b610afe8484610ab0565b9150610b0d8460208501610ab0565b90509250929050565b600080600060608486031215610b2a578081fd5b8335610b3581610e14565b92506020840135610b4581610e14565b929592945050506040919091013590565b60008060408385031215610b68578182fd5b610b728484610ab0565b946020939093013593505050565b600060208284031215610b91578081fd5b815167ffffffffffffffff80821115610ba8578283fd5b81840185601f820112610bb9578384fd5b8051925081831115610bc9578384fd5b604051601f8401601f191681016020018381118282101715610be9578586fd5b604052838152818401602001871015610c00578485fd5b610c11846020830160208501610de4565b9695505050505050565b600060208284031215610c2c578081fd5b815160ff81168114610aa9578182fd5b60008351610c4e818460208801610de4565b8351908301610c61828260208801610de4565b01949350505050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602082528251806020840152610ca8816040850160208701610de4565b601f01601f19169190910160400192915050565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526014908201527308298989eae829c868abe9c9ea8be8a9c9eaa8e960631b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601290820152710848298829c868abe9c9ea8be8a9c9eaa8e960731b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b90815260200190565b60ff91909116815260200190565b60005b83811015610dff578181015183820152602001610de7565b83811115610e0e576000848401525b50505050565b6001600160a01b0381168114610e2957600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209cf0d1d887af2d1880badc337ef0f270c8675b4bfd794dc60bdaa78dec3bd19664736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c80634e71e0c8116100975780639dc29fac116100665780639dc29fac146101dd578063a9059cbb146101f0578063dd62ed3e14610203578063f2fde38b1461021657610100565b80634e71e0c8146101b257806370a08231146101ba5780638456db15146101cd57806395d89b41146101d557610100565b806318160ddd116100d357806318160ddd1461016057806323b872dd14610175578063313ce5671461018857806340c10f191461019d57610100565b806306fdde0314610105578063095ea7b31461012357806313096a411461014357806316048bc414610158575b600080fd5b61010d610229565b60405161011a9190610c89565b60405180910390f35b610136610131366004610b56565b6102f6565b60405161011a9190610c7e565b61014b610361565b60405161011a9190610c6a565b61014b610370565b61016861037f565b60405161011a9190610dcd565b610136610183366004610b16565b610385565b610190610509565b60405161011a9190610dd6565b6101b06101ab366004610b56565b61058b565b005b6101b061068e565b6101686101c8366004610ac7565b61071c565b61014b610737565b61010d610746565b6101b06101eb366004610b56565b6107d1565b6101366101fe366004610b56565b6108c8565b610168610211366004610ae2565b610986565b6101b0610224366004610ac7565b6109b1565b604080518082018252600f81526e5f444f444f5f4c505f544f4b454e5f60881b602082015260035482516306fdde0360e01b815292516060936001600160a01b03909216916306fdde03916004808301926000929190829003018186803b15801561029357600080fd5b505afa1580156102a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102cf9190810190610b80565b816040516020016102e1929190610c3c565b60405160208183030381529060405291505090565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061034f908690610dcd565b60405180910390a35060015b92915050565b6003546001600160a01b031681565b6000546001600160a01b031681565b60045481565b6001600160a01b0383166000908152600560205260408120548211156103c65760405162461bcd60e51b81526004016103bd90610d5b565b60405180910390fd5b6001600160a01b03841660009081526006602090815260408083203384529091529020548211156104095760405162461bcd60e51b81526004016103bd90610ce3565b6001600160a01b038416600090815260056020526040902054610432908363ffffffff610a5c16565b6001600160a01b038086166000908152600560205260408082209390935590851681522054610467908363ffffffff610a8416565b6001600160a01b0380851660009081526005602090815260408083209490945591871681526006825282812033825290915220546104ab908363ffffffff610a5c16565b6001600160a01b038086166000818152600660209081526040808320338452909152908190209390935591519085169190600080516020610e2d833981519152906104f7908690610dcd565b60405180910390a35060019392505050565b6003546040805163313ce56760e01b815290516000926001600160a01b03169163313ce567916004808301926020929190829003018186803b15801561054e57600080fd5b505afa158015610562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105869190610c1b565b905090565b6000546001600160a01b031633146105b55760405162461bcd60e51b81526004016103bd90610d87565b6001600160a01b0382166000908152600560205260409020546105de908263ffffffff610a8416565b6001600160a01b03831660009081526005602052604090205560045461060a908263ffffffff610a8416565b6004556040516001600160a01b038316907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688590610648908490610dcd565b60405180910390a2816001600160a01b031660006001600160a01b0316600080516020610e2d833981519152836040516106829190610dcd565b60405180910390a35050565b6001546001600160a01b031633146106b85760405162461bcd60e51b81526004016103bd90610cbc565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b031660009081526005602052604090205490565b6001546001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107c95780601f1061079e576101008083540402835291602001916107c9565b820191906000526020600020905b8154815290600101906020018083116107ac57829003601f168201915b505050505081565b6000546001600160a01b031633146107fb5760405162461bcd60e51b81526004016103bd90610d87565b6001600160a01b038216600090815260056020526040902054610824908263ffffffff610a5c16565b6001600160a01b038316600090815260056020526040902055600454610850908263ffffffff610a5c16565b6004556040516001600160a01b038316907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59061088e908490610dcd565b60405180910390a260006001600160a01b0316826001600160a01b0316600080516020610e2d833981519152836040516106829190610dcd565b336000908152600560205260408120548211156108f75760405162461bcd60e51b81526004016103bd90610d5b565b33600090815260056020526040902054610917908363ffffffff610a5c16565b33600090815260056020526040808220929092556001600160a01b03851681522054610949908363ffffffff610a8416565b6001600160a01b038416600081815260056020526040908190209290925590513390600080516020610e2d8339815191529061034f908690610dcd565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b6000546001600160a01b031633146109db5760405162461bcd60e51b81526004016103bd90610d87565b6001600160a01b038116610a015760405162461bcd60e51b81526004016103bd90610d34565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600082821115610a7e5760405162461bcd60e51b81526004016103bd90610d11565b50900390565b600082820183811015610aa95760405162461bcd60e51b81526004016103bd90610daa565b9392505050565b80356001600160a01b038116811461035b57600080fd5b600060208284031215610ad8578081fd5b610aa98383610ab0565b60008060408385031215610af4578081fd5b610afe8484610ab0565b9150610b0d8460208501610ab0565b90509250929050565b600080600060608486031215610b2a578081fd5b8335610b3581610e14565b92506020840135610b4581610e14565b929592945050506040919091013590565b60008060408385031215610b68578182fd5b610b728484610ab0565b946020939093013593505050565b600060208284031215610b91578081fd5b815167ffffffffffffffff80821115610ba8578283fd5b81840185601f820112610bb9578384fd5b8051925081831115610bc9578384fd5b604051601f8401601f191681016020018381118282101715610be9578586fd5b604052838152818401602001871015610c00578485fd5b610c11846020830160208501610de4565b9695505050505050565b600060208284031215610c2c578081fd5b815160ff81168114610aa9578182fd5b60008351610c4e818460208801610de4565b8351908301610c61828260208801610de4565b01949350505050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602082528251806020840152610ca8816040850160208701610de4565b601f01601f19169190910160400192915050565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526014908201527308298989eae829c868abe9c9ea8be8a9c9eaa8e960631b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601290820152710848298829c868abe9c9ea8be8a9c9eaa8e960731b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b90815260200190565b60ff91909116815260200190565b60005b83811015610dff578181015183820152602001610de7565b83811115610e0e576000848401525b50505050565b6001600160a01b0381168114610e2957600080fd5b5056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209cf0d1d887af2d1880badc337ef0f270c8675b4bfd794dc60bdaa78dec3bd19664736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "497:28:23:-:0;426:4085;497:28;;426:4085;497:28;;;-1:-1:-1;;;497:28:23;;;;;;;;;;:::i;:::-;;1075:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;757:7:38;:20;;-1:-1:-1;;;;;;757:20:38;767:10;757:20;;;;792:41;;-1:-1:-1;;;;;825:7:38;;;;757;792:41;;757:7;;792:41;1126:11:23;:26;;-1:-1:-1;;;;;;1126:26:23;-1:-1:-1;;;;;1126:26:23;;;;;;;;;;426:4085;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;426:4085:23;;;-1:-1:-1;426:4085:23;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;146:263:-1:-;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;83:13;;-1:-1;;;;;576:54;;701:35;;691:2;;-1:-1;;740:12;691:2;319:74;223:186;-1:-1;;;223:186;;426:4085:23;;;;;;", + "deployedSourceMap": "426:4085:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1165:200;;;:::i;:::-;;;;;;;;;;;;;;;;3345:199;;;;;;;;;:::i;:::-;;;;;;;;531:26;;;:::i;:::-;;;;;;;;251:22:38;;;:::i;564:26:23:-;;;:::i;:::-;;;;;;;;2596:506;;;;;;;;;:::i;1371:102::-;;;:::i;:::-;;;;;;;;4009:247;;;;;;;;;:::i;:::-;;1072:225:38;;;:::i;2196:113:23:-;;;;;;;;;:::i;279:26:38:-;;;:::i;497:28:23:-;;;:::i;4262:247::-;;;;;;;;;:::i;1642:329::-;;;;;;;;;:::i;3875:128::-;;;;;;;;;:::i;846:220:38:-;;;;;;;;;:::i;1165:200:23:-;1227:47;;;;;;;;;;;-1:-1:-1;;;1227:47:23;;;;1322:11;;1315:26;;-1:-1:-1;;;1315:26:23;;;;1202:13;;-1:-1:-1;;;;;1322:11:23;;;;-1:-1:-1;;1315:26:23;;;;;-1:-1:-1;;1315:26:23;;;;;;;1322:11;1315:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1315:26:23;;;;;;;;;;;;;;1343:13;1298:59;;;;;;;;;;;;;;;;;;;;;;;1284:74;;;1165:200;:::o;3345:199::-;3435:10;3411:4;3427:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3427:28:23;;;;;;;;;;:37;;;3479;3411:4;;3427:28;;3479:37;;;;3427;;3479;;;;;;;;;;-1:-1:-1;3533:4:23;3345:199;;;;;:::o;531:26::-;;;-1:-1:-1;;;;;531:26:23;;:::o;251:22:38:-;;;-1:-1:-1;;;;;251:22:38;;:::o;564:26:23:-;;;;:::o;2596:506::-;-1:-1:-1;;;;;2740:14:23;;2706:4;2740:14;;;:8;:14;;;;;;2730:24;;;2722:55;;;;-1:-1:-1;;;2722:55:23;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2805:13:23;;;;;;:7;:13;;;;;;;;2819:10;2805:25;;;;;;;;2795:35;;;2787:68;;;;-1:-1:-1;;;2787:68:23;;;;;;;;;-1:-1:-1;;;;;2883:14:23;;;;;;:8;:14;;;;;;:26;;2902:6;2883:18;:26::i;:::-;-1:-1:-1;;;;;2866:14:23;;;;;;;:8;:14;;;;;;:43;;;;2934:12;;;;;;;:24;;2951:6;2934:16;:24::i;:::-;-1:-1:-1;;;;;2919:12:23;;;;;;;:8;:12;;;;;;;;:39;;;;2996:13;;;;;:7;:13;;;;;3010:10;2996:25;;;;;;;:37;;3026:6;2996:29;:37::i;:::-;-1:-1:-1;;;;;2968:13:23;;;;;;;:7;:13;;;;;;;;2982:10;2968:25;;;;;;;;;:65;;;;3048:26;;;;;2968:13;;3048:26;2982:10;-1:-1:-1;2968:13:23;-1:-1:-1;;;;;3048:26:23;;;3067:6;;3048:26;;;;;;;;;;-1:-1:-1;3091:4:23;2596:506;;;;;:::o;1371:102::-;1443:11;;1436:30;;;-1:-1:-1;;;1436:30:23;;;;1412:5;;-1:-1:-1;;;;;1443:11:23;;-1:-1:-1;;1436:30:23;;;;;;;;;;;;;;1443:11;1436:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1429:37;;1371:102;:::o;4009:247::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;-1:-1:-1;;;;;4098:14:23;::::1;;::::0;;;:8:::1;:14;::::0;;;;;:25:::1;::::0;4117:5;4098:18:::1;:25::i;:::-;-1:-1:-1::0;;;;;4081:14:23;::::1;;::::0;;;:8:::1;:14;::::0;;;;:42;4147:11:::1;::::0;:22:::1;::::0;4163:5;4147:15:::1;:22::i;:::-;4133:11;:36:::0;4184:17:::1;::::0;-1:-1:-1;;;;;4184:17:23;::::1;::::0;::::1;::::0;::::1;::::0;4195:5;;4184:17:::1;;;;;;;;;;4233:1;-1:-1:-1::0;;;;;;;4216:33:23;::::1;::::0;4233:1;;;-1:-1:-1;;4233:1:23;-1:-1:-1;;;;;4243:5:23::1;4216:33;;;;;;;;;;;;;;;4009:247:::0;;:::o;1072:225:38:-;1139:11;;-1:-1:-1;;;;;1139:11:38;1125:10;:25;1117:51;;;;-1:-1:-1;;;1117:51:38;;;;;;;;;1213:11;;;1204:7;;1183:42;;-1:-1:-1;;;;;1213:11:38;;;;1204:7;;;;1183:42;;;1245:11;;;;1235:21;;-1:-1:-1;;;;;1245:11:38;;-1:-1:-1;;;;;;1235:21:38;;;;;;;1266:24;;;1072:225::o;2196:113:23:-;-1:-1:-1;;;;;2287:15:23;2253;2287;;;:8;:15;;;;;;;2196:113::o;279:26:38:-;;;-1:-1:-1;;;;;279:26:38;;:::o;497:28:23:-;;;;;;;;;;;;;;-1:-1:-1;;497:28:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4262:247::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;-1:-1:-1;;;;;4351:14:23;::::1;;::::0;;;:8:::1;:14;::::0;;;;;:25:::1;::::0;4370:5;4351:18:::1;:25::i;:::-;-1:-1:-1::0;;;;;4334:14:23;::::1;;::::0;;;:8:::1;:14;::::0;;;;:42;4400:11:::1;::::0;:22:::1;::::0;4416:5;4400:15:::1;:22::i;:::-;4386:11;:36:::0;4437:17:::1;::::0;-1:-1:-1;;;;;4437:17:23;::::1;::::0;::::1;::::0;::::1;::::0;4448:5;;4437:17:::1;;;;;;;;;;4492:1;-1:-1:-1::0;;;;;;;4469:33:23;::::1;::::0;4492:1;;-1:-1:-1;;4492:1:23;-1:-1:-1;;;;;4496:5:23::1;4469:33;;;;;;;1642:329:::0;1747:10;1704:4;1738:20;;;:8;:20;;;;;;1728:30;;;1720:61;;;;-1:-1:-1;;;1720:61:23;;;;;;;;;1824:10;1815:20;;;;:8;:20;;;;;;:32;;1840:6;1815:32;:24;:32;:::i;:::-;1801:10;1792:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;1872:12:23;;;;;;:24;;1889:6;1872:16;:24::i;:::-;-1:-1:-1;;;;;1857:12:23;;;;;;:8;:12;;;;;;;;:39;;;;1911:32;;1857:12;;1920:10;;1911:32;1857:12;;;-1:-1:-1;1857:12:23;-1:-1:-1;;;;;1911:32:23;;;1936:6;;1911:32;;3875:128;-1:-1:-1;;;;;3973:14:23;;;3947:7;3973:14;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;3875:128::o;846:220:38:-;635:7;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;-1:-1:-1;;;;;928:22:38;::::1;920:48;;;::::0;-1:-1:-1;;;920:48:38;;::::1;::::0;::::1;;;;;1009:7;::::0;;983:44:::1;::::0;-1:-1:-1;;;;;983:44:38;;::::1;::::0;1009:7;::::1;::::0;983:44:::1;::::0;::::1;1037:11;:22:::0;;-1:-1:-1;;;;;;1037:22:38::1;-1:-1:-1::0;;;;;1037:22:38;;;::::1;::::0;;;::::1;::::0;;846:220::o;934:134:41:-;992:7;1024:1;1019;:6;;1011:28;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;1074:157::-;1132:7;1163:5;;;1186:6;;;;1178:28;;;;-1:-1:-1;;;1178:28:41;;;;;;;;;1223:1;1074:157;-1:-1:-1;;;1074:157:41:o;5:130:-1:-;72:20;;-1:-1;;;;;12349:54;;13023:35;;13013:2;;13072:1;;13062:12;869:241;;973:2;961:9;952:7;948:23;944:32;941:2;;;-1:-1;;979:12;941:2;1041:53;1086:7;1062:22;1041:53;;1117:366;;;1238:2;1226:9;1217:7;1213:23;1209:32;1206:2;;;-1:-1;;1244:12;1206:2;1306:53;1351:7;1327:22;1306:53;;;1296:63;;1414:53;1459:7;1396:2;1439:9;1435:22;1414:53;;;1404:63;;1200:283;;;;;;1490:491;;;;1628:2;1616:9;1607:7;1603:23;1599:32;1596:2;;;-1:-1;;1634:12;1596:2;85:6;72:20;97:33;124:5;97:33;;;1686:63;-1:-1;1786:2;1825:22;;72:20;97:33;72:20;97:33;;;1590:391;;1794:63;;-1:-1;;;1894:2;1933:22;;;;662:20;;1590:391;1988:366;;;2109:2;2097:9;2088:7;2084:23;2080:32;2077:2;;;-1:-1;;2115:12;2077:2;2177:53;2222:7;2198:22;2177:53;;;2167:63;2267:2;2306:22;;;;662:20;;-1:-1;;;2071:283;2361:362;;2486:2;2474:9;2465:7;2461:23;2457:32;2454:2;;;-1:-1;;2492:12;2454:2;2543:17;2537:24;2581:18;;2573:6;2570:30;2567:2;;;-1:-1;;2603:12;2567:2;2690:6;2679:9;2675:22;256:3;249:4;241:6;237:17;233:27;223:2;;-1:-1;;264:12;223:2;304:6;298:13;284:27;;2581:18;11449:6;11446:30;11443:2;;;-1:-1;;11479:12;11443:2;11112;11106:9;2486:2;-1:-1;;11552:9;11533:17;;11529:33;11138:17;;;11234:22;;;11198:34;;;11195:62;11192:2;;;-1:-1;;11260:12;11192:2;11112;11279:22;397:21;;;497:16;;;2486:2;497:16;494:25;-1:-1;491:2;;;-1:-1;;522:12;491:2;542:39;574:6;2486:2;473:5;469:16;2486:2;439:6;435:17;542:39;;;2623:84;2448:275;-1:-1;;;;;;2448:275;2730:259;;2843:2;2831:9;2822:7;2818:23;2814:32;2811:2;;;-1:-1;;2849:12;2811:2;814:6;808:13;12565:4;13295:5;12554:16;13272:5;13269:33;13259:2;;-1:-1;;13306:12;6433:436;;3744:5;11730:12;3856:52;3901:6;3896:3;3889:4;3882:5;3878:16;3856:52;;;11730:12;;;3920:16;;3856:52;11730:12;3920:16;3889:4;3878:16;;3856:52;;;3920:16;;6617:252;-1:-1;;;;6617:252;6876:222;-1:-1;;;;;12349:54;;;;3067:37;;7003:2;6988:18;;6974:124;7105:210;12261:13;;12254:21;3181:34;;7226:2;7211:18;;7197:118;7322:310;;7469:2;7490:17;7483:47;3372:5;11730:12;11887:6;7469:2;7458:9;7454:18;11875:19;3466:52;3511:6;11915:14;7458:9;11915:14;7469:2;3492:5;3488:16;3466:52;;;11552:9;12927:14;-1:-1;;12923:28;3530:39;;;;11915:14;3530:39;;7440:192;-1:-1;;7440:192;7639:416;7839:2;7853:47;;;4173:2;7824:18;;;11875:19;-1:-1;;;11915:14;;;4189:36;4244:12;;;7810:245;8062:416;8262:2;8276:47;;;4495:2;8247:18;;;11875:19;-1:-1;;;11915:14;;;4511:43;4573:12;;;8233:245;8485:416;8685:2;8699:47;;;4824:1;8670:18;;;11875:19;-1:-1;;;11915:14;;;4839:32;4890:12;;;8656:245;8908:416;9108:2;9122:47;;;5141:2;9093:18;;;11875:19;-1:-1;;;11915:14;;;5157:36;5212:12;;;9079:245;9331:416;9531:2;9545:47;;;5463:2;9516:18;;;11875:19;-1:-1;;;11915:14;;;5479:41;5539:12;;;9502:245;9754:416;9954:2;9968:47;;;5790:1;9939:18;;;11875:19;-1:-1;;;11915:14;;;5805:32;5856:12;;;9925:245;10177:416;10377:2;10391:47;;;6107:1;10362:18;;;11875:19;-1:-1;;;11915:14;;;6122:32;6173:12;;;10348:245;10600:222;6270:37;;;10727:2;10712:18;;10698:124;10829:214;12565:4;12554:16;;;;6386:35;;10952:2;10937:18;;10923:120;12583:268;12648:1;12655:101;12669:6;12666:1;12663:13;12655:101;;;12736:11;;;12730:18;12717:11;;;12710:39;12691:2;12684:10;12655:101;;;12771:6;12768:1;12765:13;12762:2;;;12648:1;12827:6;12822:3;12818:16;12811:27;12762:2;;12632:219;;;;12964:117;-1:-1;;;;;12349:54;;13023:35;;13013:2;;13072:1;;13062:12;13013:2;13007:74;", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {IERC20} from \"../intf/IERC20.sol\";\nimport {SafeMath} from \"../lib/SafeMath.sol\";\nimport {Ownable} from \"../lib/Ownable.sol\";\n\n/**\n * @title DODOLpToken\n * @author DODO Breeder\n *\n * @notice Tokenize liquidity pool assets. An ordinary ERC20 contract with mint and burn functions\n */\ncontract DODOLpToken is Ownable {\n using SafeMath for uint256;\n\n string public symbol = \"DLP\";\n address public originToken;\n\n uint256 public totalSupply;\n mapping(address => uint256) internal balances;\n mapping(address => mapping(address => uint256)) internal allowed;\n\n // ============ Events ============\n\n event Transfer(address indexed from, address indexed to, uint256 amount);\n\n event Approval(address indexed owner, address indexed spender, uint256 amount);\n\n event Mint(address indexed user, uint256 value);\n\n event Burn(address indexed user, uint256 value);\n\n // ============ Functions ============\n\n constructor(address _originToken) public {\n originToken = _originToken;\n }\n\n function name() public view returns (string memory) {\n string memory lpTokenSuffix = \"_DODO_LP_TOKEN_\";\n return string(abi.encodePacked(IERC20(originToken).name(), lpTokenSuffix));\n }\n\n function decimals() public view returns (uint8) {\n return IERC20(originToken).decimals();\n }\n\n /**\n * @dev transfer token for a specified address\n * @param to The address to transfer to.\n * @param amount The amount to be transferred.\n */\n function transfer(address to, uint256 amount) public returns (bool) {\n require(amount <= balances[msg.sender], \"BALANCE_NOT_ENOUGH\");\n\n balances[msg.sender] = balances[msg.sender].sub(amount);\n balances[to] = balances[to].add(amount);\n emit Transfer(msg.sender, to, amount);\n return true;\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner The address to query the the balance of.\n * @return balance An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address owner) external view returns (uint256 balance) {\n return balances[owner];\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @param from address The address which you want to send tokens from\n * @param to address The address which you want to transfer to\n * @param amount uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public returns (bool) {\n require(amount <= balances[from], \"BALANCE_NOT_ENOUGH\");\n require(amount <= allowed[from][msg.sender], \"ALLOWANCE_NOT_ENOUGH\");\n\n balances[from] = balances[from].sub(amount);\n balances[to] = balances[to].add(amount);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(amount);\n emit Transfer(from, to, amount);\n return true;\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * @param spender The address which will spend the funds.\n * @param amount The amount of tokens to be spent.\n */\n function approve(address spender, uint256 amount) public returns (bool) {\n allowed[msg.sender][spender] = amount;\n emit Approval(msg.sender, spender, amount);\n return true;\n }\n\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param owner address The address which owns the funds.\n * @param spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(address owner, address spender) public view returns (uint256) {\n return allowed[owner][spender];\n }\n\n function mint(address user, uint256 value) external onlyOwner {\n balances[user] = balances[user].add(value);\n totalSupply = totalSupply.add(value);\n emit Mint(user, value);\n emit Transfer(address(0), user, value);\n }\n\n function burn(address user, uint256 value) external onlyOwner {\n balances[user] = balances[user].sub(value);\n totalSupply = totalSupply.sub(value);\n emit Burn(user, value);\n emit Transfer(user, address(0), value);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/DODOLpToken.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/DODOLpToken.sol", + "exportedSymbols": { + "DODOLpToken": [ + 7347 + ] + }, + "id": 7348, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6965, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:23" + }, + { + "id": 6966, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:23" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 6968, + "nodeType": "ImportDirective", + "scope": 7348, + "sourceUnit": 10608, + "src": "136:42:23", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 6967, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:6:23", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 6970, + "nodeType": "ImportDirective", + "scope": 7348, + "sourceUnit": 11624, + "src": "179:45:23", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 6969, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "187:8:23", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 6972, + "nodeType": "ImportDirective", + "scope": 7348, + "sourceUnit": 11272, + "src": "225:43:23", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 6971, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "233:7:23", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6974, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "450:7:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 6975, + "nodeType": "InheritanceSpecifier", + "src": "450:7:23" + } + ], + "contractDependencies": [ + 11271 + ], + "contractKind": "contract", + "documentation": { + "id": 6973, + "nodeType": "StructuredDocumentation", + "src": "270:155:23", + "text": " @title DODOLpToken\n @author DODO Breeder\n @notice Tokenize liquidity pool assets. An ordinary ERC20 contract with mint and burn functions" + }, + "fullyImplemented": true, + "id": 7347, + "linearizedBaseContracts": [ + 7347, + 11271 + ], + "name": "DODOLpToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 6978, + "libraryName": { + "contractScope": null, + "id": 6976, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "470:8:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "464:27:23", + "typeName": { + "id": 6977, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "483:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "95d89b41", + "id": 6981, + "mutability": "mutable", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7347, + "src": "497:28:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 6979, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "497:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "444c50", + "id": 6980, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "520:5:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ad4ac2ef6228a2adb212e98f01d891da2027029dcf86bc341ca6cc047d65e8a7", + "typeString": "literal_string \"DLP\"" + }, + "value": "DLP" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "13096a41", + "id": 6983, + "mutability": "mutable", + "name": "originToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7347, + "src": "531:26:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "531:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 6985, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7347, + "src": "564:26:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6984, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "564:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6989, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7347, + "src": "596:45:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 6988, + "keyType": { + "id": 6986, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "604:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "596:27:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 6987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "615:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6995, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7347, + "src": "647:64:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 6994, + "keyType": { + "id": 6990, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "655:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "647:47:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 6993, + "keyType": { + "id": 6991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "674:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "666:27:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 6992, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "685:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 7003, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 7002, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6997, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7003, + "src": "774:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6996, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6999, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7003, + "src": "796:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6998, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "796:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7001, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7003, + "src": "816:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "816:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "773:58:23" + }, + "src": "759:73:23" + }, + { + "anonymous": false, + "documentation": null, + "id": 7011, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 7010, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7005, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7011, + "src": "853:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7004, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "853:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7007, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7011, + "src": "876:23:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "876:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7009, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7011, + "src": "901:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "901:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "852:64:23" + }, + "src": "838:79:23" + }, + { + "anonymous": false, + "documentation": null, + "id": 7017, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 7016, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7013, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7017, + "src": "934:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "934:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7015, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7017, + "src": "956:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7014, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "956:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "933:37:23" + }, + "src": "923:48:23" + }, + { + "anonymous": false, + "documentation": null, + "id": 7023, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 7022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7019, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7023, + "src": "988:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7018, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "988:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7021, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7023, + "src": "1010:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1010:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "987:37:23" + }, + "src": "977:48:23" + }, + { + "body": { + "id": 7032, + "nodeType": "Block", + "src": "1116:43:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7028, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6983, + "src": "1126:11:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7029, + "name": "_originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7025, + "src": "1140:12:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1126:26:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7031, + "nodeType": "ExpressionStatement", + "src": "1126:26:23" + } + ] + }, + "documentation": null, + "id": 7033, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7026, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7025, + "mutability": "mutable", + "name": "_originToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7033, + "src": "1087:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7024, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1087:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1086:22:23" + }, + "returnParameters": { + "id": 7027, + "nodeType": "ParameterList", + "parameters": [], + "src": "1116:0:23" + }, + "scope": 7347, + "src": "1075:84:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7055, + "nodeType": "Block", + "src": "1217:148:23", + "statements": [ + { + "assignments": [ + 7039 + ], + "declarations": [ + { + "constant": false, + "id": 7039, + "mutability": "mutable", + "name": "lpTokenSuffix", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7055, + "src": "1227:27:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7038, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1227:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7041, + "initialValue": { + "argumentTypes": null, + "hexValue": "5f444f444f5f4c505f544f4b454e5f", + "id": 7040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1257:17:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fd33f461926c288e22976ed16405c386e401ae2dabde8aeb3b67fd7ee18035e7", + "typeString": "literal_string \"_DODO_LP_TOKEN_\"" + }, + "value": "_DODO_LP_TOKEN_" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1227:47:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7047, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6983, + "src": "1322:11:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7046, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1315:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 7048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1315:19:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 7049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 10556, + "src": "1315:24:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 7050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1315:26:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 7051, + "name": "lpTokenSuffix", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7039, + "src": "1343:13:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 7044, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1298:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 7045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1298:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 7052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1298:59:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 7043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1291:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 7042, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1291:6:23", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 7053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1291:67:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 7037, + "id": 7054, + "nodeType": "Return", + "src": "1284:74:23" + } + ] + }, + "documentation": null, + "functionSelector": "06fdde03", + "id": 7056, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7034, + "nodeType": "ParameterList", + "parameters": [], + "src": "1178:2:23" + }, + "returnParameters": { + "id": 7037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7036, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7056, + "src": "1202:13:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7035, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1202:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1201:15:23" + }, + "scope": 7347, + "src": "1165:200:23", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7067, + "nodeType": "Block", + "src": "1419:54:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7062, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6983, + "src": "1443:11:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7061, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1436:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 7063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1436:19:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 7064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 10551, + "src": "1436:28:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 7065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1436:30:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 7060, + "id": 7066, + "nodeType": "Return", + "src": "1429:37:23" + } + ] + }, + "documentation": null, + "functionSelector": "313ce567", + "id": 7068, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7057, + "nodeType": "ParameterList", + "parameters": [], + "src": "1388:2:23" + }, + "returnParameters": { + "id": 7060, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7059, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7068, + "src": "1412:5:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7058, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1412:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1411:7:23" + }, + "scope": 7347, + "src": "1371:102:23", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7121, + "nodeType": "Block", + "src": "1710:261:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7079, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7073, + "src": "1728:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7080, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "1738:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7083, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7081, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1747:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1747:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1738:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1728:30:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "42414c414e43455f4e4f545f454e4f554748", + "id": 7085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1760:20:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + }, + "value": "BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + } + ], + "id": 7078, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1720:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1720:61:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7087, + "nodeType": "ExpressionStatement", + "src": "1720:61:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7088, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "1792:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7091, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7089, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1801:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1801:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1792:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7097, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7073, + "src": "1840:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7092, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "1815:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7095, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7093, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1824:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1824:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1815:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1815:24:23", + "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": 7098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1815:32:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1792:55:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7100, + "nodeType": "ExpressionStatement", + "src": "1792:55:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7101, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "1857:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7103, + "indexExpression": { + "argumentTypes": null, + "id": 7102, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7071, + "src": "1866:2:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1857:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7108, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7073, + "src": "1889:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7104, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "1872:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7106, + "indexExpression": { + "argumentTypes": null, + "id": 7105, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7071, + "src": "1881:2:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1872:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1872:16:23", + "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": 7109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1872:24:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1857:39:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7111, + "nodeType": "ExpressionStatement", + "src": "1857:39:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7113, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1920:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1920:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7115, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7071, + "src": "1932:2:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7116, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7073, + "src": "1936:6:23", + "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": 7112, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7003, + "src": "1911:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:32:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7118, + "nodeType": "EmitStatement", + "src": "1906:37:23" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1960:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 7077, + "id": 7120, + "nodeType": "Return", + "src": "1953:11:23" + } + ] + }, + "documentation": { + "id": 7069, + "nodeType": "StructuredDocumentation", + "src": "1479:158:23", + "text": " @dev transfer token for a specified address\n @param to The address to transfer to.\n @param amount The amount to be transferred." + }, + "functionSelector": "a9059cbb", + "id": 7122, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7071, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7122, + "src": "1660:10:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7070, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1660:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7073, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7122, + "src": "1672:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1672:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1659:28:23" + }, + "returnParameters": { + "id": 7077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7076, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7122, + "src": "1704:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7075, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1704:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1703:6:23" + }, + "scope": 7347, + "src": "1642:329:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7134, + "nodeType": "Block", + "src": "2270:39:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7130, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "2287:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7132, + "indexExpression": { + "argumentTypes": null, + "id": 7131, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7125, + "src": "2296:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2287:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7129, + "id": 7133, + "nodeType": "Return", + "src": "2280:22:23" + } + ] + }, + "documentation": { + "id": 7123, + "nodeType": "StructuredDocumentation", + "src": "1977:214:23", + "text": " @dev Gets the balance of the specified address.\n @param owner The address to query the the balance of.\n @return balance An uint256 representing the amount owned by the passed address." + }, + "functionSelector": "70a08231", + "id": 7135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7125, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7135, + "src": "2215:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2215:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2214:15:23" + }, + "returnParameters": { + "id": 7129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7128, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7135, + "src": "2253:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7127, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2253:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2252:17:23" + }, + "scope": 7347, + "src": "2196:113:23", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7215, + "nodeType": "Block", + "src": "2712:390:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7148, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "2730:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7149, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "2740:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7151, + "indexExpression": { + "argumentTypes": null, + "id": 7150, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "2749:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2740:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2730:24:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "42414c414e43455f4e4f545f454e4f554748", + "id": 7153, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2756:20:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + }, + "value": "BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + } + ], + "id": 7147, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2722:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2722:55:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7155, + "nodeType": "ExpressionStatement", + "src": "2722:55:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7157, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "2795:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7158, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6995, + "src": "2805:7:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7160, + "indexExpression": { + "argumentTypes": null, + "id": 7159, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "2813:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2805:13:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7163, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7161, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2819:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2819:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2805:25:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2795:35:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414c4c4f57414e43455f4e4f545f454e4f554748", + "id": 7165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2832:22:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_28638f118cb48e54afcdd39bdb97baeb95a670cffee1fd95f73350a923dc1c6f", + "typeString": "literal_string \"ALLOWANCE_NOT_ENOUGH\"" + }, + "value": "ALLOWANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_28638f118cb48e54afcdd39bdb97baeb95a670cffee1fd95f73350a923dc1c6f", + "typeString": "literal_string \"ALLOWANCE_NOT_ENOUGH\"" + } + ], + "id": 7156, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2787:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2787:68:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7167, + "nodeType": "ExpressionStatement", + "src": "2787:68:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7168, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "2866:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7170, + "indexExpression": { + "argumentTypes": null, + "id": 7169, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "2875:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2866:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7175, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "2902:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7171, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "2883:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7173, + "indexExpression": { + "argumentTypes": null, + "id": 7172, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "2892:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2883:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2883:18:23", + "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": 7176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2883:26:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2866:43:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7178, + "nodeType": "ExpressionStatement", + "src": "2866:43:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7179, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "2919:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7181, + "indexExpression": { + "argumentTypes": null, + "id": 7180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7140, + "src": "2928:2:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2919:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7186, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "2951:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7182, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "2934:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7184, + "indexExpression": { + "argumentTypes": null, + "id": 7183, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7140, + "src": "2943:2:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2934:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2934:16:23", + "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": 7187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2934:24:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2919:39:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7189, + "nodeType": "ExpressionStatement", + "src": "2919:39:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7190, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6995, + "src": "2968:7:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7194, + "indexExpression": { + "argumentTypes": null, + "id": 7191, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "2976:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2968:13:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7195, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7192, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2982:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2982:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2968:25:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7203, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "3026:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7196, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6995, + "src": "2996:7:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7198, + "indexExpression": { + "argumentTypes": null, + "id": 7197, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "3004:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2996:13:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7201, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7199, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3010:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3010:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2996:25:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2996:29:23", + "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": 7204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2996:37:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2968:65:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7206, + "nodeType": "ExpressionStatement", + "src": "2968:65:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7208, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "3057:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7209, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7140, + "src": "3063:2:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7210, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "3067:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7207, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7003, + "src": "3048:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3048:26:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7212, + "nodeType": "EmitStatement", + "src": "3043:31:23" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3091:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 7146, + "id": 7214, + "nodeType": "Return", + "src": "3084:11:23" + } + ] + }, + "documentation": { + "id": 7136, + "nodeType": "StructuredDocumentation", + "src": "2315:276:23", + "text": " @dev Transfer tokens from one address to another\n @param from address The address which you want to send tokens from\n @param to address The address which you want to transfer to\n @param amount uint256 the amount of tokens to be transferred" + }, + "functionSelector": "23b872dd", + "id": 7216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7138, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7216, + "src": "2627:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7137, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2627:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7140, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7216, + "src": "2649:10:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2649:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7142, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7216, + "src": "2669:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2669:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2617:72:23" + }, + "returnParameters": { + "id": 7146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7145, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7216, + "src": "2706:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2706:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2705:6:23" + }, + "scope": 7347, + "src": "2596:506:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7244, + "nodeType": "Block", + "src": "3417:127:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7226, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6995, + "src": "3427:7:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7230, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7227, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3435:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3435:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3427:19:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7231, + "indexExpression": { + "argumentTypes": null, + "id": 7229, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7219, + "src": "3447:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3427:28:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7232, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7221, + "src": "3458:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3427:37:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7234, + "nodeType": "ExpressionStatement", + "src": "3427:37:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3488:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3488:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7238, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7219, + "src": "3500:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7239, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7221, + "src": "3509:6:23", + "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": 7235, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7011, + "src": "3479:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3479:37:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7241, + "nodeType": "EmitStatement", + "src": "3474:42:23" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3533:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 7225, + "id": 7243, + "nodeType": "Return", + "src": "3526:11:23" + } + ] + }, + "documentation": { + "id": 7217, + "nodeType": "StructuredDocumentation", + "src": "3108:232:23", + "text": " @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n @param spender The address which will spend the funds.\n @param amount The amount of tokens to be spent." + }, + "functionSelector": "095ea7b3", + "id": 7245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7222, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7219, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7245, + "src": "3362:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7218, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3362:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7221, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7245, + "src": "3379:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7220, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3379:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3361:33:23" + }, + "returnParameters": { + "id": 7225, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7224, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7245, + "src": "3411:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7223, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3411:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3410:6:23" + }, + "scope": 7347, + "src": "3345:199:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7261, + "nodeType": "Block", + "src": "3956:47:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7255, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6995, + "src": "3973:7:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7257, + "indexExpression": { + "argumentTypes": null, + "id": 7256, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7248, + "src": "3981:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3973:14:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7259, + "indexExpression": { + "argumentTypes": null, + "id": 7258, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7250, + "src": "3988:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3973:23:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7254, + "id": 7260, + "nodeType": "Return", + "src": "3966:30:23" + } + ] + }, + "documentation": { + "id": 7246, + "nodeType": "StructuredDocumentation", + "src": "3550:320:23", + "text": " @dev Function to check the amount of tokens that an owner allowed to a spender.\n @param owner address The address which owns the funds.\n @param spender address The address which will spend the funds.\n @return A uint256 specifying the amount of tokens still available for the spender." + }, + "functionSelector": "dd62ed3e", + "id": 7262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7248, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7262, + "src": "3894:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3894:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7250, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7262, + "src": "3909:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3909:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3893:32:23" + }, + "returnParameters": { + "id": 7254, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7253, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7262, + "src": "3947:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7252, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3947:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3946:9:23" + }, + "scope": 7347, + "src": "3875:128:23", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7303, + "nodeType": "Block", + "src": "4071:185:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7271, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "4081:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7273, + "indexExpression": { + "argumentTypes": null, + "id": 7272, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7264, + "src": "4090:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4081:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7278, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7266, + "src": "4117:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7274, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "4098:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7276, + "indexExpression": { + "argumentTypes": null, + "id": 7275, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7264, + "src": "4107:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4098:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4098:18:23", + "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": 7279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4098:25:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4081:42:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7281, + "nodeType": "ExpressionStatement", + "src": "4081:42:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7282, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6985, + "src": "4133:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7285, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7266, + "src": "4163:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7283, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6985, + "src": "4147:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4147:15:23", + "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": 7286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4147:22:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4133:36:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7288, + "nodeType": "ExpressionStatement", + "src": "4133:36:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7290, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7264, + "src": "4189:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7291, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7266, + "src": "4195:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7289, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7017, + "src": "4184:4:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4184:17:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7293, + "nodeType": "EmitStatement", + "src": "4179:22:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4233:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4225:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 7295, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4225:7:23", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 7298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4225:10:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7299, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7264, + "src": "4237:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7266, + "src": "4243:5:23", + "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": 7294, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7003, + "src": "4216:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4216:33:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7302, + "nodeType": "EmitStatement", + "src": "4211:38:23" + } + ] + }, + "documentation": null, + "functionSelector": "40c10f19", + "id": 7304, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7269, + "modifierName": { + "argumentTypes": null, + "id": 7268, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "4061:9:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4061:9:23" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7264, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7304, + "src": "4023:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4023:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7266, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7304, + "src": "4037:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4037:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4022:29:23" + }, + "returnParameters": { + "id": 7270, + "nodeType": "ParameterList", + "parameters": [], + "src": "4071:0:23" + }, + "scope": 7347, + "src": "4009:247:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7345, + "nodeType": "Block", + "src": "4324:185:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7313, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "4334:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7315, + "indexExpression": { + "argumentTypes": null, + "id": 7314, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7306, + "src": "4343:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4334:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7320, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7308, + "src": "4370:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7316, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "4351:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7318, + "indexExpression": { + "argumentTypes": null, + "id": 7317, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7306, + "src": "4360:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4351:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4351:18:23", + "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": 7321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4351:25:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4334:42:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7323, + "nodeType": "ExpressionStatement", + "src": "4334:42:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7324, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6985, + "src": "4386:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7327, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7308, + "src": "4416:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7325, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6985, + "src": "4400:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4400:15:23", + "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": 7328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4400:22:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4386:36:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7330, + "nodeType": "ExpressionStatement", + "src": "4386:36:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7332, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7306, + "src": "4442:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7333, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7308, + "src": "4448:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7331, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7023, + "src": "4437:4:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4437:17:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7335, + "nodeType": "EmitStatement", + "src": "4432:22:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7337, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7306, + "src": "4478:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4492:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4484:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 7338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4484:7:23", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 7341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4484:10:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7342, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7308, + "src": "4496:5:23", + "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": 7336, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7003, + "src": "4469:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4469:33:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7344, + "nodeType": "EmitStatement", + "src": "4464:38:23" + } + ] + }, + "documentation": null, + "functionSelector": "9dc29fac", + "id": 7346, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7311, + "modifierName": { + "argumentTypes": null, + "id": 7310, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "4314:9:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4314:9:23" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7309, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7306, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7346, + "src": "4276:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4276:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7308, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7346, + "src": "4290:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7307, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4290:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4275:29:23" + }, + "returnParameters": { + "id": 7312, + "nodeType": "ParameterList", + "parameters": [], + "src": "4324:0:23" + }, + "scope": 7347, + "src": "4262:247:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 7348, + "src": "426:4085:23" + } + ], + "src": "78:4434:23" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/DODOLpToken.sol", + "exportedSymbols": { + "DODOLpToken": [ + 7347 + ] + }, + "id": 7348, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6965, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:23" + }, + { + "id": 6966, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:23" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 6968, + "nodeType": "ImportDirective", + "scope": 7348, + "sourceUnit": 10608, + "src": "136:42:23", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 6967, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:6:23", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 6970, + "nodeType": "ImportDirective", + "scope": 7348, + "sourceUnit": 11624, + "src": "179:45:23", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 6969, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "187:8:23", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 6972, + "nodeType": "ImportDirective", + "scope": 7348, + "sourceUnit": 11272, + "src": "225:43:23", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 6971, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "233:7:23", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6974, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "450:7:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 6975, + "nodeType": "InheritanceSpecifier", + "src": "450:7:23" + } + ], + "contractDependencies": [ + 11271 + ], + "contractKind": "contract", + "documentation": { + "id": 6973, + "nodeType": "StructuredDocumentation", + "src": "270:155:23", + "text": " @title DODOLpToken\n @author DODO Breeder\n @notice Tokenize liquidity pool assets. An ordinary ERC20 contract with mint and burn functions" + }, + "fullyImplemented": true, + "id": 7347, + "linearizedBaseContracts": [ + 7347, + 11271 + ], + "name": "DODOLpToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 6978, + "libraryName": { + "contractScope": null, + "id": 6976, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "470:8:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "464:27:23", + "typeName": { + "id": 6977, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "483:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "95d89b41", + "id": 6981, + "mutability": "mutable", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7347, + "src": "497:28:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 6979, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "497:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "444c50", + "id": 6980, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "520:5:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ad4ac2ef6228a2adb212e98f01d891da2027029dcf86bc341ca6cc047d65e8a7", + "typeString": "literal_string \"DLP\"" + }, + "value": "DLP" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "13096a41", + "id": 6983, + "mutability": "mutable", + "name": "originToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7347, + "src": "531:26:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "531:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 6985, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7347, + "src": "564:26:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6984, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "564:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6989, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7347, + "src": "596:45:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 6988, + "keyType": { + "id": 6986, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "604:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "596:27:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 6987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "615:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6995, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7347, + "src": "647:64:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 6994, + "keyType": { + "id": 6990, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "655:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "647:47:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 6993, + "keyType": { + "id": 6991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "674:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "666:27:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 6992, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "685:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 7003, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 7002, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6997, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7003, + "src": "774:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6996, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6999, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7003, + "src": "796:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6998, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "796:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7001, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7003, + "src": "816:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "816:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "773:58:23" + }, + "src": "759:73:23" + }, + { + "anonymous": false, + "documentation": null, + "id": 7011, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 7010, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7005, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7011, + "src": "853:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7004, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "853:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7007, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7011, + "src": "876:23:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7006, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "876:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7009, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7011, + "src": "901:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "901:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "852:64:23" + }, + "src": "838:79:23" + }, + { + "anonymous": false, + "documentation": null, + "id": 7017, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 7016, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7013, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7017, + "src": "934:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "934:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7015, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7017, + "src": "956:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7014, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "956:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "933:37:23" + }, + "src": "923:48:23" + }, + { + "anonymous": false, + "documentation": null, + "id": 7023, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 7022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7019, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7023, + "src": "988:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7018, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "988:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7021, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7023, + "src": "1010:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1010:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "987:37:23" + }, + "src": "977:48:23" + }, + { + "body": { + "id": 7032, + "nodeType": "Block", + "src": "1116:43:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7028, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6983, + "src": "1126:11:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7029, + "name": "_originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7025, + "src": "1140:12:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1126:26:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7031, + "nodeType": "ExpressionStatement", + "src": "1126:26:23" + } + ] + }, + "documentation": null, + "id": 7033, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7026, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7025, + "mutability": "mutable", + "name": "_originToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7033, + "src": "1087:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7024, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1087:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1086:22:23" + }, + "returnParameters": { + "id": 7027, + "nodeType": "ParameterList", + "parameters": [], + "src": "1116:0:23" + }, + "scope": 7347, + "src": "1075:84:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7055, + "nodeType": "Block", + "src": "1217:148:23", + "statements": [ + { + "assignments": [ + 7039 + ], + "declarations": [ + { + "constant": false, + "id": 7039, + "mutability": "mutable", + "name": "lpTokenSuffix", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7055, + "src": "1227:27:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7038, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1227:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7041, + "initialValue": { + "argumentTypes": null, + "hexValue": "5f444f444f5f4c505f544f4b454e5f", + "id": 7040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1257:17:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fd33f461926c288e22976ed16405c386e401ae2dabde8aeb3b67fd7ee18035e7", + "typeString": "literal_string \"_DODO_LP_TOKEN_\"" + }, + "value": "_DODO_LP_TOKEN_" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1227:47:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7047, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6983, + "src": "1322:11:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7046, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1315:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 7048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1315:19:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 7049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "name", + "nodeType": "MemberAccess", + "referencedDeclaration": 10556, + "src": "1315:24:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view external returns (string memory)" + } + }, + "id": 7050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1315:26:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 7051, + "name": "lpTokenSuffix", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7039, + "src": "1343:13:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 7044, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1298:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 7045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1298:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 7052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1298:59:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 7043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1291:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 7042, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1291:6:23", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 7053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1291:67:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 7037, + "id": 7054, + "nodeType": "Return", + "src": "1284:74:23" + } + ] + }, + "documentation": null, + "functionSelector": "06fdde03", + "id": 7056, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7034, + "nodeType": "ParameterList", + "parameters": [], + "src": "1178:2:23" + }, + "returnParameters": { + "id": 7037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7036, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7056, + "src": "1202:13:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7035, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1202:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1201:15:23" + }, + "scope": 7347, + "src": "1165:200:23", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7067, + "nodeType": "Block", + "src": "1419:54:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7062, + "name": "originToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6983, + "src": "1443:11:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7061, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1436:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 7063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1436:19:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 7064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 10551, + "src": "1436:28:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 7065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1436:30:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 7060, + "id": 7066, + "nodeType": "Return", + "src": "1429:37:23" + } + ] + }, + "documentation": null, + "functionSelector": "313ce567", + "id": 7068, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7057, + "nodeType": "ParameterList", + "parameters": [], + "src": "1388:2:23" + }, + "returnParameters": { + "id": 7060, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7059, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7068, + "src": "1412:5:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7058, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1412:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1411:7:23" + }, + "scope": 7347, + "src": "1371:102:23", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7121, + "nodeType": "Block", + "src": "1710:261:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7079, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7073, + "src": "1728:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7080, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "1738:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7083, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7081, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1747:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1747:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1738:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1728:30:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "42414c414e43455f4e4f545f454e4f554748", + "id": 7085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1760:20:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + }, + "value": "BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + } + ], + "id": 7078, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1720:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1720:61:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7087, + "nodeType": "ExpressionStatement", + "src": "1720:61:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7088, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "1792:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7091, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7089, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1801:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1801:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1792:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7097, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7073, + "src": "1840:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7092, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "1815:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7095, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7093, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1824:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1824:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1815:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1815:24:23", + "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": 7098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1815:32:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1792:55:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7100, + "nodeType": "ExpressionStatement", + "src": "1792:55:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7101, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "1857:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7103, + "indexExpression": { + "argumentTypes": null, + "id": 7102, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7071, + "src": "1866:2:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1857:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7108, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7073, + "src": "1889:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7104, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "1872:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7106, + "indexExpression": { + "argumentTypes": null, + "id": 7105, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7071, + "src": "1881:2:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1872:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1872:16:23", + "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": 7109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1872:24:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1857:39:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7111, + "nodeType": "ExpressionStatement", + "src": "1857:39:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7113, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1920:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1920:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7115, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7071, + "src": "1932:2:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7116, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7073, + "src": "1936:6:23", + "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": 7112, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7003, + "src": "1911:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:32:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7118, + "nodeType": "EmitStatement", + "src": "1906:37:23" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1960:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 7077, + "id": 7120, + "nodeType": "Return", + "src": "1953:11:23" + } + ] + }, + "documentation": { + "id": 7069, + "nodeType": "StructuredDocumentation", + "src": "1479:158:23", + "text": " @dev transfer token for a specified address\n @param to The address to transfer to.\n @param amount The amount to be transferred." + }, + "functionSelector": "a9059cbb", + "id": 7122, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7071, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7122, + "src": "1660:10:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7070, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1660:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7073, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7122, + "src": "1672:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1672:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1659:28:23" + }, + "returnParameters": { + "id": 7077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7076, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7122, + "src": "1704:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7075, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1704:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1703:6:23" + }, + "scope": 7347, + "src": "1642:329:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7134, + "nodeType": "Block", + "src": "2270:39:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7130, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "2287:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7132, + "indexExpression": { + "argumentTypes": null, + "id": 7131, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7125, + "src": "2296:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2287:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7129, + "id": 7133, + "nodeType": "Return", + "src": "2280:22:23" + } + ] + }, + "documentation": { + "id": 7123, + "nodeType": "StructuredDocumentation", + "src": "1977:214:23", + "text": " @dev Gets the balance of the specified address.\n @param owner The address to query the the balance of.\n @return balance An uint256 representing the amount owned by the passed address." + }, + "functionSelector": "70a08231", + "id": 7135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7125, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7135, + "src": "2215:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2215:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2214:15:23" + }, + "returnParameters": { + "id": 7129, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7128, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7135, + "src": "2253:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7127, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2253:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2252:17:23" + }, + "scope": 7347, + "src": "2196:113:23", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7215, + "nodeType": "Block", + "src": "2712:390:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7148, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "2730:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7149, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "2740:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7151, + "indexExpression": { + "argumentTypes": null, + "id": 7150, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "2749:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2740:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2730:24:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "42414c414e43455f4e4f545f454e4f554748", + "id": 7153, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2756:20:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + }, + "value": "BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + } + ], + "id": 7147, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2722:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2722:55:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7155, + "nodeType": "ExpressionStatement", + "src": "2722:55:23" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7157, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "2795:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7158, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6995, + "src": "2805:7:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7160, + "indexExpression": { + "argumentTypes": null, + "id": 7159, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "2813:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2805:13:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7163, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7161, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2819:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2819:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2805:25:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2795:35:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414c4c4f57414e43455f4e4f545f454e4f554748", + "id": 7165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2832:22:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_28638f118cb48e54afcdd39bdb97baeb95a670cffee1fd95f73350a923dc1c6f", + "typeString": "literal_string \"ALLOWANCE_NOT_ENOUGH\"" + }, + "value": "ALLOWANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_28638f118cb48e54afcdd39bdb97baeb95a670cffee1fd95f73350a923dc1c6f", + "typeString": "literal_string \"ALLOWANCE_NOT_ENOUGH\"" + } + ], + "id": 7156, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2787:7:23", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2787:68:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7167, + "nodeType": "ExpressionStatement", + "src": "2787:68:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7168, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "2866:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7170, + "indexExpression": { + "argumentTypes": null, + "id": 7169, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "2875:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2866:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7175, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "2902:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7171, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "2883:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7173, + "indexExpression": { + "argumentTypes": null, + "id": 7172, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "2892:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2883:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2883:18:23", + "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": 7176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2883:26:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2866:43:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7178, + "nodeType": "ExpressionStatement", + "src": "2866:43:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7179, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "2919:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7181, + "indexExpression": { + "argumentTypes": null, + "id": 7180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7140, + "src": "2928:2:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2919:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7186, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "2951:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7182, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "2934:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7184, + "indexExpression": { + "argumentTypes": null, + "id": 7183, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7140, + "src": "2943:2:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2934:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2934:16:23", + "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": 7187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2934:24:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2919:39:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7189, + "nodeType": "ExpressionStatement", + "src": "2919:39:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7190, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6995, + "src": "2968:7:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7194, + "indexExpression": { + "argumentTypes": null, + "id": 7191, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "2976:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2968:13:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7195, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7192, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2982:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2982:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2968:25:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7203, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "3026:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7196, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6995, + "src": "2996:7:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7198, + "indexExpression": { + "argumentTypes": null, + "id": 7197, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "3004:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2996:13:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7201, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7199, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3010:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3010:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2996:25:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2996:29:23", + "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": 7204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2996:37:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2968:65:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7206, + "nodeType": "ExpressionStatement", + "src": "2968:65:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7208, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7138, + "src": "3057:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7209, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7140, + "src": "3063:2:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7210, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7142, + "src": "3067:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7207, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7003, + "src": "3048:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3048:26:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7212, + "nodeType": "EmitStatement", + "src": "3043:31:23" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3091:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 7146, + "id": 7214, + "nodeType": "Return", + "src": "3084:11:23" + } + ] + }, + "documentation": { + "id": 7136, + "nodeType": "StructuredDocumentation", + "src": "2315:276:23", + "text": " @dev Transfer tokens from one address to another\n @param from address The address which you want to send tokens from\n @param to address The address which you want to transfer to\n @param amount uint256 the amount of tokens to be transferred" + }, + "functionSelector": "23b872dd", + "id": 7216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7138, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7216, + "src": "2627:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7137, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2627:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7140, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7216, + "src": "2649:10:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2649:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7142, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7216, + "src": "2669:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2669:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2617:72:23" + }, + "returnParameters": { + "id": 7146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7145, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7216, + "src": "2706:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2706:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2705:6:23" + }, + "scope": 7347, + "src": "2596:506:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7244, + "nodeType": "Block", + "src": "3417:127:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7226, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6995, + "src": "3427:7:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7230, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7227, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3435:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3435:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3427:19:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7231, + "indexExpression": { + "argumentTypes": null, + "id": 7229, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7219, + "src": "3447:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3427:28:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7232, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7221, + "src": "3458:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3427:37:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7234, + "nodeType": "ExpressionStatement", + "src": "3427:37:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3488:3:23", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3488:10:23", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7238, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7219, + "src": "3500:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7239, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7221, + "src": "3509:6:23", + "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": 7235, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7011, + "src": "3479:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3479:37:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7241, + "nodeType": "EmitStatement", + "src": "3474:42:23" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3533:4:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 7225, + "id": 7243, + "nodeType": "Return", + "src": "3526:11:23" + } + ] + }, + "documentation": { + "id": 7217, + "nodeType": "StructuredDocumentation", + "src": "3108:232:23", + "text": " @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n @param spender The address which will spend the funds.\n @param amount The amount of tokens to be spent." + }, + "functionSelector": "095ea7b3", + "id": 7245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7222, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7219, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7245, + "src": "3362:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7218, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3362:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7221, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7245, + "src": "3379:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7220, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3379:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3361:33:23" + }, + "returnParameters": { + "id": 7225, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7224, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7245, + "src": "3411:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7223, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3411:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3410:6:23" + }, + "scope": 7347, + "src": "3345:199:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7261, + "nodeType": "Block", + "src": "3956:47:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7255, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6995, + "src": "3973:7:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 7257, + "indexExpression": { + "argumentTypes": null, + "id": 7256, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7248, + "src": "3981:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3973:14:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7259, + "indexExpression": { + "argumentTypes": null, + "id": 7258, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7250, + "src": "3988:7:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3973:23:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7254, + "id": 7260, + "nodeType": "Return", + "src": "3966:30:23" + } + ] + }, + "documentation": { + "id": 7246, + "nodeType": "StructuredDocumentation", + "src": "3550:320:23", + "text": " @dev Function to check the amount of tokens that an owner allowed to a spender.\n @param owner address The address which owns the funds.\n @param spender address The address which will spend the funds.\n @return A uint256 specifying the amount of tokens still available for the spender." + }, + "functionSelector": "dd62ed3e", + "id": 7262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7248, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7262, + "src": "3894:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3894:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7250, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7262, + "src": "3909:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3909:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3893:32:23" + }, + "returnParameters": { + "id": 7254, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7253, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7262, + "src": "3947:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7252, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3947:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3946:9:23" + }, + "scope": 7347, + "src": "3875:128:23", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7303, + "nodeType": "Block", + "src": "4071:185:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7271, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "4081:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7273, + "indexExpression": { + "argumentTypes": null, + "id": 7272, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7264, + "src": "4090:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4081:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7278, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7266, + "src": "4117:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7274, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "4098:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7276, + "indexExpression": { + "argumentTypes": null, + "id": 7275, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7264, + "src": "4107:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4098:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4098:18:23", + "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": 7279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4098:25:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4081:42:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7281, + "nodeType": "ExpressionStatement", + "src": "4081:42:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7282, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6985, + "src": "4133:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7285, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7266, + "src": "4163:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7283, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6985, + "src": "4147:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4147:15:23", + "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": 7286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4147:22:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4133:36:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7288, + "nodeType": "ExpressionStatement", + "src": "4133:36:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7290, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7264, + "src": "4189:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7291, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7266, + "src": "4195:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7289, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7017, + "src": "4184:4:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4184:17:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7293, + "nodeType": "EmitStatement", + "src": "4179:22:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4233:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4225:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 7295, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4225:7:23", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 7298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4225:10:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7299, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7264, + "src": "4237:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7266, + "src": "4243:5:23", + "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": 7294, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7003, + "src": "4216:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4216:33:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7302, + "nodeType": "EmitStatement", + "src": "4211:38:23" + } + ] + }, + "documentation": null, + "functionSelector": "40c10f19", + "id": 7304, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7269, + "modifierName": { + "argumentTypes": null, + "id": 7268, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "4061:9:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4061:9:23" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7267, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7264, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7304, + "src": "4023:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4023:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7266, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7304, + "src": "4037:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4037:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4022:29:23" + }, + "returnParameters": { + "id": 7270, + "nodeType": "ParameterList", + "parameters": [], + "src": "4071:0:23" + }, + "scope": 7347, + "src": "4009:247:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7345, + "nodeType": "Block", + "src": "4324:185:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7313, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "4334:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7315, + "indexExpression": { + "argumentTypes": null, + "id": 7314, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7306, + "src": "4343:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4334:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7320, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7308, + "src": "4370:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7316, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6989, + "src": "4351:8:23", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 7318, + "indexExpression": { + "argumentTypes": null, + "id": 7317, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7306, + "src": "4360:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4351:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4351:18:23", + "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": 7321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4351:25:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4334:42:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7323, + "nodeType": "ExpressionStatement", + "src": "4334:42:23" + }, + { + "expression": { + "argumentTypes": null, + "id": 7329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7324, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6985, + "src": "4386:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7327, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7308, + "src": "4416:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7325, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6985, + "src": "4400:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4400:15:23", + "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": 7328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4400:22:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4386:36:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7330, + "nodeType": "ExpressionStatement", + "src": "4386:36:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7332, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7306, + "src": "4442:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7333, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7308, + "src": "4448:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7331, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7023, + "src": "4437:4:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4437:17:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7335, + "nodeType": "EmitStatement", + "src": "4432:22:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7337, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7306, + "src": "4478:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4492:1:23", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4484:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 7338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4484:7:23", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 7341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4484:10:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7342, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7308, + "src": "4496:5:23", + "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": 7336, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7003, + "src": "4469:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4469:33:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7344, + "nodeType": "EmitStatement", + "src": "4464:38:23" + } + ] + }, + "documentation": null, + "functionSelector": "9dc29fac", + "id": 7346, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7311, + "modifierName": { + "argumentTypes": null, + "id": 7310, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "4314:9:23", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4314:9:23" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7309, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7306, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7346, + "src": "4276:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4276:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7308, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7346, + "src": "4290:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7307, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4290:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4275:29:23" + }, + "returnParameters": { + "id": 7312, + "nodeType": "ParameterList", + "parameters": [], + "src": "4324:0:23" + }, + "scope": 7347, + "src": "4262:247:23", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 7348, + "src": "426:4085:23" + } + ], + "src": "78:4434:23" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.680Z", + "devdoc": { + "author": "DODO Breeder", + "methods": { + "allowance(address,address)": { + "details": "Function to check the amount of tokens that an owner allowed to a spender.", + "params": { + "owner": "address The address which owns the funds.", + "spender": "address The address which will spend the funds." + }, + "returns": { + "_0": "A uint256 specifying the amount of tokens still available for the spender." + } + }, + "approve(address,uint256)": { + "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.", + "params": { + "amount": "The amount of tokens to be spent.", + "spender": "The address which will spend the funds." + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.", + "params": { + "owner": "The address to query the the balance of." + }, + "returns": { + "balance": "An uint256 representing the amount owned by the passed address." + } + }, + "transfer(address,uint256)": { + "details": "transfer token for a specified address", + "params": { + "amount": "The amount to be transferred.", + "to": "The address to transfer to." + } + }, + "transferFrom(address,address,uint256)": { + "details": "Transfer tokens from one address to another", + "params": { + "amount": "uint256 the amount of tokens to be transferred", + "from": "address The address which you want to send tokens from", + "to": "address The address which you want to transfer to" + } + } + }, + "title": "DODOLpToken" + }, + "userdoc": { + "methods": {}, + "notice": "Tokenize liquidity pool assets. An ordinary ERC20 contract with mint and burn functions" + } +} \ No newline at end of file diff --git a/build-v1/contracts/DODOMath.json b/build-v1/contracts/DODOMath.json new file mode 100644 index 0000000..abd3f68 --- /dev/null +++ b/build-v1/contracts/DODOMath.json @@ -0,0 +1,9192 @@ +{ + "contractName": "DODOMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"DODOMath\"},\"userdoc\":{\"methods\":{},\"notice\":\"Functions for complex calculating. Including ONE Integration and TWO Quadratic solutions\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol\":\"DODOMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol\":{\"keccak256\":\"0xe3f63c53706f21ad68ebeff69321682ffa83bb0552db7e4453dff9772724f657\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://64e385f8c3fbe9e485d0b1b0f90f9621bf50fe02ee7cb95a44828a255db3581f\",\"dweb:/ipfs/QmNesw9cspw1fDDumDy1BSrCeGVij1BAfAVXpfajKHGUcn\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":{\"keccak256\":\"0x9a093cbac4e37ed4ee5e27495dae08754bbfec81f7c0ceb57a5a7ac4f362208f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ddd9e5de1c555f0d1232e148fe18574e6adaa348e792844d9011bbd39bf908f\",\"dweb:/ipfs/QmSgZNwPNqCrQC4kJNdwH3iQNasbTfw2cbTtAtNVcpqnYc\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ab0f72f27dc6c0858ee116c73cf432296878159be55cb820fe425a836628a7064736f6c63430006090033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ab0f72f27dc6c0858ee116c73cf432296878159be55cb820fe425a836628a7064736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "379:3502:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "379:3502:35:-:0;;;;;;;;", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {SafeMath} from \"./SafeMath.sol\";\nimport {DecimalMath} from \"./DecimalMath.sol\";\n\n/**\n * @title DODOMath\n * @author DODO Breeder\n *\n * @notice Functions for complex calculating. Including ONE Integration and TWO Quadratic solutions\n */\nlibrary DODOMath {\n using SafeMath for uint256;\n\n /*\n Integrate dodo curve fron V1 to V2\n require V0>=V1>=V2>0\n res = (1-k)i(V1-V2)+ikV0*V0(1/V2-1/V1)\n let V1-V2=delta\n res = i*delta*(1-k+k(V0^2/V1/V2))\n */\n function _GeneralIntegrate(\n uint256 V0,\n uint256 V1,\n uint256 V2,\n uint256 i,\n uint256 k\n ) internal pure returns (uint256) {\n uint256 fairAmount = DecimalMath.mul(i, V1.sub(V2)); // i*delta\n uint256 V0V0V1V2 = DecimalMath.divCeil(V0.mul(V0).div(V1), V2);\n uint256 penalty = DecimalMath.mul(k, V0V0V1V2); // k(V0^2/V1/V2)\n return DecimalMath.mul(fairAmount, DecimalMath.ONE.sub(k).add(penalty));\n }\n\n /*\n The same with integration expression above, we have:\n i*deltaB = (Q2-Q1)*(1-k+kQ0^2/Q1/Q2)\n Given Q1 and deltaB, solve Q2\n This is a quadratic function and the standard version is\n aQ2^2 + bQ2 + c = 0, where\n a=1-k\n -b=(1-k)Q1-kQ0^2/Q1+i*deltaB\n c=-kQ0^2\n and Q2=(-b+sqrt(b^2+4(1-k)kQ0^2))/2(1-k)\n note: another root is negative, abondan\n if deltaBSig=true, then Q2>Q1\n if deltaBSig=false, then Q2= kQ02Q1) {\n b = b.sub(kQ02Q1);\n minusbSig = true;\n } else {\n b = kQ02Q1.sub(b);\n minusbSig = false;\n }\n\n // calculate sqrt\n uint256 squareRoot = DecimalMath.mul(\n DecimalMath.ONE.sub(k).mul(4),\n DecimalMath.mul(k, Q0).mul(Q0)\n ); // 4(1-k)kQ0^2\n squareRoot = b.mul(b).add(squareRoot).sqrt(); // sqrt(b*b+4(1-k)kQ0*Q0)\n\n // final res\n uint256 denominator = DecimalMath.ONE.sub(k).mul(2); // 2(1-k)\n uint256 numerator;\n if (minusbSig) {\n numerator = b.add(squareRoot);\n } else {\n numerator = squareRoot.sub(b);\n }\n\n if (deltaBSig) {\n return DecimalMath.divFloor(numerator, denominator);\n } else {\n return DecimalMath.divCeil(numerator, denominator);\n }\n }\n\n /*\n Start from the integration function\n i*deltaB = (Q2-Q1)*(1-k+kQ0^2/Q1/Q2)\n Assume Q2=Q0, Given Q1 and deltaB, solve Q0\n let fairAmount = i*deltaB\n */\n function _SolveQuadraticFunctionForTarget(\n uint256 V1,\n uint256 k,\n uint256 fairAmount\n ) internal pure returns (uint256 V0) {\n // V0 = V1+V1*(sqrt-1)/2k\n uint256 sqrt = DecimalMath.divCeil(DecimalMath.mul(k, fairAmount).mul(4), V1);\n sqrt = sqrt.add(DecimalMath.ONE).mul(DecimalMath.ONE).sqrt();\n uint256 premium = DecimalMath.divCeil(sqrt.sub(DecimalMath.ONE), k.mul(2));\n // V0 is greater than or equal to V1 according to the solution\n return DecimalMath.mul(V1, DecimalMath.ONE.add(premium));\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol", + "exportedSymbols": { + "DODOMath": [ + 10992 + ] + }, + "id": 10993, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10680, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:35" + }, + { + "id": 10681, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:35" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "./SafeMath.sol", + "id": 10683, + "nodeType": "ImportDirective", + "scope": 10993, + "sourceUnit": 11624, + "src": "136:40:35", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 10682, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:35", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "./DecimalMath.sol", + "id": 10685, + "nodeType": "ImportDirective", + "scope": 10993, + "sourceUnit": 11079, + "src": "177:46:35", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 10684, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "185:11:35", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 10686, + "nodeType": "StructuredDocumentation", + "src": "225:153:35", + "text": " @title DODOMath\n @author DODO Breeder\n @notice Functions for complex calculating. Including ONE Integration and TWO Quadratic solutions" + }, + "fullyImplemented": true, + "id": 10992, + "linearizedBaseContracts": [ + 10992 + ], + "name": "DODOMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 10689, + "libraryName": { + "contractScope": null, + "id": 10687, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "408:8:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "402:27:35", + "typeName": { + "id": 10688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "421:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 10750, + "nodeType": "Block", + "src": "797:305:35", + "statements": [ + { + "assignments": [ + 10705 + ], + "declarations": [ + { + "constant": false, + "id": 10705, + "mutability": "mutable", + "name": "fairAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10750, + "src": "807:18:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10704, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "807:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10714, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10708, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10697, + "src": "844:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10711, + "name": "V2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10695, + "src": "854:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10709, + "name": "V1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10693, + "src": "847:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "847:6:35", + "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": 10712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "847:10:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10706, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "828:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "828:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "828:30:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "807:51:35" + }, + { + "assignments": [ + 10716 + ], + "declarations": [ + { + "constant": false, + "id": 10716, + "mutability": "mutable", + "name": "V0V0V1V2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10750, + "src": "879:16:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "879:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10728, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10724, + "name": "V1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10693, + "src": "933:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10721, + "name": "V0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10691, + "src": "925:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10719, + "name": "V0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10691, + "src": "918:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "918:6:35", + "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": 10722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "918:10:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "918:14:35", + "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": 10725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "918:18:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10726, + "name": "V2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10695, + "src": "938:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10717, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "898:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11077, + "src": "898:19:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "898:43:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "879:62:35" + }, + { + "assignments": [ + 10730 + ], + "declarations": [ + { + "constant": false, + "id": 10730, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10750, + "src": "951:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "951:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10736, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10733, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10699, + "src": "985:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10734, + "name": "V0V0V1V2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10716, + "src": "988:8:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10731, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "969:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "969:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "969:28:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "951:46:35" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10739, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10705, + "src": "1047:10:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10746, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10730, + "src": "1086:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10743, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10699, + "src": "1079:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10740, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "1059:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "1059:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1059:19:35", + "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": 10744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1059:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1059:26:35", + "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": 10747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1059:35:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10737, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "1031:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "1031:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1031:64:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10703, + "id": 10749, + "nodeType": "Return", + "src": "1024:71:35" + } + ] + }, + "documentation": null, + "id": 10751, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_GeneralIntegrate", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10691, + "mutability": "mutable", + "name": "V0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10751, + "src": "670:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10693, + "mutability": "mutable", + "name": "V1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10751, + "src": "690:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "690:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10695, + "mutability": "mutable", + "name": "V2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10751, + "src": "710:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "710:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10697, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10751, + "src": "730:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "730:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10699, + "mutability": "mutable", + "name": "k", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10751, + "src": "749:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "749:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "660:104:35" + }, + "returnParameters": { + "id": 10703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10702, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10751, + "src": "788:7:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "788:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "787:9:35" + }, + "scope": 10992, + "src": "634:468:35", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10924, + "nodeType": "Block", + "src": "1795:1320:35", + "statements": [ + { + "assignments": [ + 10767 + ], + "declarations": [ + { + "constant": false, + "id": 10767, + "mutability": "mutable", + "name": "kQ02Q1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10924, + "src": "1885:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1885:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10779, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10777, + "name": "Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10755, + "src": "1937:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10774, + "name": "Q0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10753, + "src": "1929:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10770, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10761, + "src": "1918:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10771, + "name": "Q0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10753, + "src": "1921:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10768, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "1902:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "1902:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1902:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "1902:26:35", + "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": 10775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1902:30:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "1902:34:35", + "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": 10778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1902:38:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1885:55:35" + }, + { + "assignments": [ + 10781 + ], + "declarations": [ + { + "constant": false, + "id": 10781, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10924, + "src": "1962:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10780, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1962:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10791, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10787, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10761, + "src": "2010:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10784, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "1990:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "1990:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1990:19:35", + "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": 10788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1990:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10789, + "name": "Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10755, + "src": "2014:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10782, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "1974:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "1974:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1974:43:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1962:55:35" + }, + { + "assignments": [ + 10793 + ], + "declarations": [ + { + "constant": false, + "id": 10793, + "mutability": "mutable", + "name": "minusbSig", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10924, + "src": "2038:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10792, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2038:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10795, + "initialValue": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 10794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2055:4:35", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2038:21:35" + }, + { + "condition": { + "argumentTypes": null, + "id": 10796, + "name": "deltaBSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10759, + "src": "2073:9:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10812, + "nodeType": "Block", + "src": "2153:74:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10805, + "name": "kQ02Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10767, + "src": "2167:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10808, + "name": "ideltaB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10757, + "src": "2187:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10806, + "name": "kQ02Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10767, + "src": "2176:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2176:10:35", + "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": 10809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2176:19:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2167:28:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10811, + "nodeType": "ExpressionStatement", + "src": "2167:28:35" + } + ] + }, + "id": 10813, + "nodeType": "IfStatement", + "src": "2069:158:35", + "trueBody": { + "id": 10804, + "nodeType": "Block", + "src": "2084:63:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10797, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2098:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10800, + "name": "ideltaB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10757, + "src": "2108:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2102:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2102:5:35", + "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": 10801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2102:14:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2098:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10803, + "nodeType": "ExpressionStatement", + "src": "2098:18:35" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10814, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2240:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 10815, + "name": "kQ02Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10767, + "src": "2245:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2240:11:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10840, + "nodeType": "Block", + "src": "2331:73:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10829, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2345:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10832, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2360:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10830, + "name": "kQ02Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10767, + "src": "2349:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2349:10:35", + "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": 10833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2349:13:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2345:17:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10835, + "nodeType": "ExpressionStatement", + "src": "2345:17:35" + }, + { + "expression": { + "argumentTypes": null, + "id": 10838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10836, + "name": "minusbSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10793, + "src": "2376:9:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 10837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2388:5:35", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2376:17:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10839, + "nodeType": "ExpressionStatement", + "src": "2376:17:35" + } + ] + }, + "id": 10841, + "nodeType": "IfStatement", + "src": "2236:168:35", + "trueBody": { + "id": 10828, + "nodeType": "Block", + "src": "2253:72:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10817, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2267:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10820, + "name": "kQ02Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10767, + "src": "2277:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10818, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2271:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2271:5:35", + "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": 10821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2271:13:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2267:17:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10823, + "nodeType": "ExpressionStatement", + "src": "2267:17:35" + }, + { + "expression": { + "argumentTypes": null, + "id": 10826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10824, + "name": "minusbSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10793, + "src": "2298:9:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 10825, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2310:4:35", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2298:16:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10827, + "nodeType": "ExpressionStatement", + "src": "2298:16:35" + } + ] + } + }, + { + "assignments": [ + 10843 + ], + "declarations": [ + { + "constant": false, + "id": 10843, + "mutability": "mutable", + "name": "squareRoot", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10924, + "src": "2440:18:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2440:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10863, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "34", + "id": 10852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2517:1:35", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10849, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10761, + "src": "2510:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10846, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2490:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "2490:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2490:19:35", + "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": 10850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2490:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "2490:26:35", + "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": 10853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2490:29:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10860, + "name": "Q0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10753, + "src": "2560:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10856, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10761, + "src": "2549:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10857, + "name": "Q0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10753, + "src": "2552:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10854, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2533:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "2533:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2533:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "2533:26:35", + "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": 10861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2533:30:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10844, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2461:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "2461:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2461:112:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2440:133:35" + }, + { + "expression": { + "argumentTypes": null, + "id": 10874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10864, + "name": "squareRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10843, + "src": "2598:10:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10870, + "name": "squareRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10843, + "src": "2624:10:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10867, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2617:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10865, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2611:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "2611:5:35", + "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": 10868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2611:8:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2611:12:35", + "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": 10871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2611:24:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11622, + "src": "2611:29:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 10873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2611:31:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2598:44:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10875, + "nodeType": "ExpressionStatement", + "src": "2598:44:35" + }, + { + "assignments": [ + 10877 + ], + "declarations": [ + { + "constant": false, + "id": 10877, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10924, + "src": "2700:19:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2700:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10886, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "32", + "id": 10884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2749:1:35", + "subdenomination": null, + "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" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10881, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10761, + "src": "2742:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10878, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2722:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "2722:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2722:19:35", + "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": 10882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2722:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "2722:26:35", + "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": 10885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2722:29:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2700:51:35" + }, + { + "assignments": [ + 10888 + ], + "declarations": [ + { + "constant": false, + "id": 10888, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10924, + "src": "2771:17:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10887, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2771:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10889, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2771:17:35" + }, + { + "condition": { + "argumentTypes": null, + "id": 10890, + "name": "minusbSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10793, + "src": "2802:9:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10906, + "nodeType": "Block", + "src": "2873:54:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10899, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10888, + "src": "2887:9:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10902, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2914:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10900, + "name": "squareRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10843, + "src": "2899:10:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2899:14:35", + "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": 10903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2899:17:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2887:29:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10905, + "nodeType": "ExpressionStatement", + "src": "2887:29:35" + } + ] + }, + "id": 10907, + "nodeType": "IfStatement", + "src": "2798:129:35", + "trueBody": { + "id": 10898, + "nodeType": "Block", + "src": "2813:54:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10891, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10888, + "src": "2827:9:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10894, + "name": "squareRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10843, + "src": "2845:10:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10892, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2839:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2839:5:35", + "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": 10895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2839:17:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2827:29:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10897, + "nodeType": "ExpressionStatement", + "src": "2827:29:35" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "id": 10908, + "name": "deltaBSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10759, + "src": "2941:9:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10922, + "nodeType": "Block", + "src": "3034:75:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10918, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10888, + "src": "3075:9:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10919, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10877, + "src": "3086:11:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10916, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3055:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11077, + "src": "3055:19:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3055:43:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10765, + "id": 10921, + "nodeType": "Return", + "src": "3048:50:35" + } + ] + }, + "id": 10923, + "nodeType": "IfStatement", + "src": "2937:172:35", + "trueBody": { + "id": 10915, + "nodeType": "Block", + "src": "2952:76:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10911, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10888, + "src": "2994:9:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10912, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10877, + "src": "3005:11:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10909, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2973:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "2973:20:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2973:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10765, + "id": 10914, + "nodeType": "Return", + "src": "2966:51:35" + } + ] + } + } + ] + }, + "documentation": null, + "id": 10925, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_SolveQuadraticFunctionForTrade", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10753, + "mutability": "mutable", + "name": "Q0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10925, + "src": "1658:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10752, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1658:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10755, + "mutability": "mutable", + "name": "Q1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10925, + "src": "1678:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1678:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10757, + "mutability": "mutable", + "name": "ideltaB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10925, + "src": "1698:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10756, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1698:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10759, + "mutability": "mutable", + "name": "deltaBSig", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10925, + "src": "1723:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10758, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1723:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10761, + "mutability": "mutable", + "name": "k", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10925, + "src": "1747:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1747:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1648:114:35" + }, + "returnParameters": { + "id": 10765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10764, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10925, + "src": "1786:7:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1786:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1785:9:35" + }, + "scope": 10992, + "src": "1608:1507:35", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10990, + "nodeType": "Block", + "src": "3460:419:35", + "statements": [ + { + "assignments": [ + 10937 + ], + "declarations": [ + { + "constant": false, + "id": 10937, + "mutability": "mutable", + "name": "sqrt", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10990, + "src": "3504:12:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10936, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3504:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10950, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "34", + "id": 10946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3574:1:35", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10942, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10929, + "src": "3555:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10943, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10931, + "src": "3558:10:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10940, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3539:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "3539:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3539:30:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3539:34:35", + "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": 10947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3539:37:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10948, + "name": "V1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10927, + "src": "3578:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10938, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3519:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11077, + "src": "3519:19:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3519:62:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3504:77:35" + }, + { + "expression": { + "argumentTypes": null, + "id": 10963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10951, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10937, + "src": "3591:4:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10958, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3628:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "3628:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10954, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3607:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "3607:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10952, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10937, + "src": "3598:4:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3598:8:35", + "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": 10956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3598:25:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3598:29:35", + "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": 10960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3598:46:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11622, + "src": "3598:51:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 10962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3598:53:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3591:60:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10964, + "nodeType": "ExpressionStatement", + "src": "3591:60:35" + }, + { + "assignments": [ + 10966 + ], + "declarations": [ + { + "constant": false, + "id": 10966, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10990, + "src": "3661:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3661:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10979, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10971, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3708:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "3708:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10969, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10937, + "src": "3699:4:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3699:8:35", + "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": 10973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3699:25:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "32", + "id": 10976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3732:1:35", + "subdenomination": null, + "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" + } + ], + "expression": { + "argumentTypes": null, + "id": 10974, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10929, + "src": "3726:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3726:5:35", + "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": 10977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3726:8:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10967, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3679:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11077, + "src": "3679:19:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3679:56:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3661:74:35" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10982, + "name": "V1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10927, + "src": "3839:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10986, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10966, + "src": "3863:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10983, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3843:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "3843:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3843:19:35", + "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": 10987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3843:28:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10980, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3823:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "3823:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3823:49:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10935, + "id": 10989, + "nodeType": "Return", + "src": "3816:56:35" + } + ] + }, + "documentation": null, + "id": 10991, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_SolveQuadraticFunctionForTarget", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10932, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10927, + "mutability": "mutable", + "name": "V1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10991, + "src": "3361:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3361:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10929, + "mutability": "mutable", + "name": "k", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10991, + "src": "3381:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10928, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3381:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10931, + "mutability": "mutable", + "name": "fairAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10991, + "src": "3400:18:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10930, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3400:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3351:73:35" + }, + "returnParameters": { + "id": 10935, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10934, + "mutability": "mutable", + "name": "V0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10991, + "src": "3448:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3448:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3447:12:35" + }, + "scope": 10992, + "src": "3310:569:35", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 10993, + "src": "379:3502:35" + } + ], + "src": "78:3804:35" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol", + "exportedSymbols": { + "DODOMath": [ + 10992 + ] + }, + "id": 10993, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10680, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:35" + }, + { + "id": 10681, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:35" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "./SafeMath.sol", + "id": 10683, + "nodeType": "ImportDirective", + "scope": 10993, + "sourceUnit": 11624, + "src": "136:40:35", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 10682, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:35", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "./DecimalMath.sol", + "id": 10685, + "nodeType": "ImportDirective", + "scope": 10993, + "sourceUnit": 11079, + "src": "177:46:35", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 10684, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "185:11:35", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 10686, + "nodeType": "StructuredDocumentation", + "src": "225:153:35", + "text": " @title DODOMath\n @author DODO Breeder\n @notice Functions for complex calculating. Including ONE Integration and TWO Quadratic solutions" + }, + "fullyImplemented": true, + "id": 10992, + "linearizedBaseContracts": [ + 10992 + ], + "name": "DODOMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 10689, + "libraryName": { + "contractScope": null, + "id": 10687, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "408:8:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "402:27:35", + "typeName": { + "id": 10688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "421:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 10750, + "nodeType": "Block", + "src": "797:305:35", + "statements": [ + { + "assignments": [ + 10705 + ], + "declarations": [ + { + "constant": false, + "id": 10705, + "mutability": "mutable", + "name": "fairAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10750, + "src": "807:18:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10704, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "807:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10714, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10708, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10697, + "src": "844:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10711, + "name": "V2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10695, + "src": "854:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10709, + "name": "V1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10693, + "src": "847:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "847:6:35", + "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": 10712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "847:10:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10706, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "828:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "828:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "828:30:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "807:51:35" + }, + { + "assignments": [ + 10716 + ], + "declarations": [ + { + "constant": false, + "id": 10716, + "mutability": "mutable", + "name": "V0V0V1V2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10750, + "src": "879:16:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "879:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10728, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10724, + "name": "V1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10693, + "src": "933:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10721, + "name": "V0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10691, + "src": "925:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10719, + "name": "V0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10691, + "src": "918:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "918:6:35", + "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": 10722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "918:10:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "918:14:35", + "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": 10725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "918:18:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10726, + "name": "V2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10695, + "src": "938:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10717, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "898:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11077, + "src": "898:19:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "898:43:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "879:62:35" + }, + { + "assignments": [ + 10730 + ], + "declarations": [ + { + "constant": false, + "id": 10730, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10750, + "src": "951:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "951:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10736, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10733, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10699, + "src": "985:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10734, + "name": "V0V0V1V2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10716, + "src": "988:8:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10731, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "969:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "969:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "969:28:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "951:46:35" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10739, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10705, + "src": "1047:10:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10746, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10730, + "src": "1086:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10743, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10699, + "src": "1079:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10740, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "1059:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "1059:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1059:19:35", + "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": 10744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1059:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1059:26:35", + "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": 10747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1059:35:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10737, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "1031:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "1031:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1031:64:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10703, + "id": 10749, + "nodeType": "Return", + "src": "1024:71:35" + } + ] + }, + "documentation": null, + "id": 10751, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_GeneralIntegrate", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10691, + "mutability": "mutable", + "name": "V0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10751, + "src": "670:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10693, + "mutability": "mutable", + "name": "V1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10751, + "src": "690:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "690:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10695, + "mutability": "mutable", + "name": "V2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10751, + "src": "710:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "710:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10697, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10751, + "src": "730:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "730:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10699, + "mutability": "mutable", + "name": "k", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10751, + "src": "749:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "749:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "660:104:35" + }, + "returnParameters": { + "id": 10703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10702, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10751, + "src": "788:7:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "788:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "787:9:35" + }, + "scope": 10992, + "src": "634:468:35", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10924, + "nodeType": "Block", + "src": "1795:1320:35", + "statements": [ + { + "assignments": [ + 10767 + ], + "declarations": [ + { + "constant": false, + "id": 10767, + "mutability": "mutable", + "name": "kQ02Q1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10924, + "src": "1885:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1885:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10779, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10777, + "name": "Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10755, + "src": "1937:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10774, + "name": "Q0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10753, + "src": "1929:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10770, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10761, + "src": "1918:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10771, + "name": "Q0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10753, + "src": "1921:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10768, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "1902:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "1902:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1902:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "1902:26:35", + "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": 10775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1902:30:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "1902:34:35", + "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": 10778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1902:38:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1885:55:35" + }, + { + "assignments": [ + 10781 + ], + "declarations": [ + { + "constant": false, + "id": 10781, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10924, + "src": "1962:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10780, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1962:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10791, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10787, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10761, + "src": "2010:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10784, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "1990:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "1990:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1990:19:35", + "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": 10788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1990:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10789, + "name": "Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10755, + "src": "2014:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10782, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "1974:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "1974:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1974:43:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1962:55:35" + }, + { + "assignments": [ + 10793 + ], + "declarations": [ + { + "constant": false, + "id": 10793, + "mutability": "mutable", + "name": "minusbSig", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10924, + "src": "2038:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10792, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2038:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10795, + "initialValue": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 10794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2055:4:35", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2038:21:35" + }, + { + "condition": { + "argumentTypes": null, + "id": 10796, + "name": "deltaBSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10759, + "src": "2073:9:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10812, + "nodeType": "Block", + "src": "2153:74:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10805, + "name": "kQ02Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10767, + "src": "2167:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10808, + "name": "ideltaB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10757, + "src": "2187:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10806, + "name": "kQ02Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10767, + "src": "2176:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2176:10:35", + "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": 10809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2176:19:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2167:28:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10811, + "nodeType": "ExpressionStatement", + "src": "2167:28:35" + } + ] + }, + "id": 10813, + "nodeType": "IfStatement", + "src": "2069:158:35", + "trueBody": { + "id": 10804, + "nodeType": "Block", + "src": "2084:63:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10797, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2098:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10800, + "name": "ideltaB", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10757, + "src": "2108:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2102:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2102:5:35", + "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": 10801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2102:14:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2098:18:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10803, + "nodeType": "ExpressionStatement", + "src": "2098:18:35" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10814, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2240:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 10815, + "name": "kQ02Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10767, + "src": "2245:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2240:11:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10840, + "nodeType": "Block", + "src": "2331:73:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10829, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2345:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10832, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2360:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10830, + "name": "kQ02Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10767, + "src": "2349:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2349:10:35", + "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": 10833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2349:13:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2345:17:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10835, + "nodeType": "ExpressionStatement", + "src": "2345:17:35" + }, + { + "expression": { + "argumentTypes": null, + "id": 10838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10836, + "name": "minusbSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10793, + "src": "2376:9:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 10837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2388:5:35", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2376:17:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10839, + "nodeType": "ExpressionStatement", + "src": "2376:17:35" + } + ] + }, + "id": 10841, + "nodeType": "IfStatement", + "src": "2236:168:35", + "trueBody": { + "id": 10828, + "nodeType": "Block", + "src": "2253:72:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10817, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2267:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10820, + "name": "kQ02Q1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10767, + "src": "2277:6:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10818, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2271:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2271:5:35", + "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": 10821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2271:13:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2267:17:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10823, + "nodeType": "ExpressionStatement", + "src": "2267:17:35" + }, + { + "expression": { + "argumentTypes": null, + "id": 10826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10824, + "name": "minusbSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10793, + "src": "2298:9:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 10825, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2310:4:35", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2298:16:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10827, + "nodeType": "ExpressionStatement", + "src": "2298:16:35" + } + ] + } + }, + { + "assignments": [ + 10843 + ], + "declarations": [ + { + "constant": false, + "id": 10843, + "mutability": "mutable", + "name": "squareRoot", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10924, + "src": "2440:18:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2440:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10863, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "34", + "id": 10852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2517:1:35", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10849, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10761, + "src": "2510:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10846, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2490:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "2490:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2490:19:35", + "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": 10850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2490:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "2490:26:35", + "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": 10853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2490:29:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10860, + "name": "Q0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10753, + "src": "2560:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10856, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10761, + "src": "2549:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10857, + "name": "Q0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10753, + "src": "2552:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10854, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2533:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "2533:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2533:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "2533:26:35", + "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": 10861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2533:30:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10844, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2461:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "2461:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2461:112:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2440:133:35" + }, + { + "expression": { + "argumentTypes": null, + "id": 10874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10864, + "name": "squareRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10843, + "src": "2598:10:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10870, + "name": "squareRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10843, + "src": "2624:10:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10867, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2617:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10865, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2611:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "2611:5:35", + "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": 10868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2611:8:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2611:12:35", + "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": 10871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2611:24:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11622, + "src": "2611:29:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 10873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2611:31:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2598:44:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10875, + "nodeType": "ExpressionStatement", + "src": "2598:44:35" + }, + { + "assignments": [ + 10877 + ], + "declarations": [ + { + "constant": false, + "id": 10877, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10924, + "src": "2700:19:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2700:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10886, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "32", + "id": 10884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2749:1:35", + "subdenomination": null, + "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" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10881, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10761, + "src": "2742:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10878, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2722:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "2722:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2722:19:35", + "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": 10882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2722:22:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "2722:26:35", + "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": 10885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2722:29:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2700:51:35" + }, + { + "assignments": [ + 10888 + ], + "declarations": [ + { + "constant": false, + "id": 10888, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10924, + "src": "2771:17:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10887, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2771:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10889, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2771:17:35" + }, + { + "condition": { + "argumentTypes": null, + "id": 10890, + "name": "minusbSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10793, + "src": "2802:9:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10906, + "nodeType": "Block", + "src": "2873:54:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10899, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10888, + "src": "2887:9:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10902, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2914:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10900, + "name": "squareRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10843, + "src": "2899:10:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2899:14:35", + "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": 10903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2899:17:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2887:29:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10905, + "nodeType": "ExpressionStatement", + "src": "2887:29:35" + } + ] + }, + "id": 10907, + "nodeType": "IfStatement", + "src": "2798:129:35", + "trueBody": { + "id": 10898, + "nodeType": "Block", + "src": "2813:54:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10891, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10888, + "src": "2827:9:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10894, + "name": "squareRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10843, + "src": "2845:10:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10892, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10781, + "src": "2839:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2839:5:35", + "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": 10895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2839:17:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2827:29:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10897, + "nodeType": "ExpressionStatement", + "src": "2827:29:35" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "id": 10908, + "name": "deltaBSig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10759, + "src": "2941:9:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10922, + "nodeType": "Block", + "src": "3034:75:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10918, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10888, + "src": "3075:9:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10919, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10877, + "src": "3086:11:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10916, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3055:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11077, + "src": "3055:19:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3055:43:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10765, + "id": 10921, + "nodeType": "Return", + "src": "3048:50:35" + } + ] + }, + "id": 10923, + "nodeType": "IfStatement", + "src": "2937:172:35", + "trueBody": { + "id": 10915, + "nodeType": "Block", + "src": "2952:76:35", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10911, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10888, + "src": "2994:9:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10912, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10877, + "src": "3005:11:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10909, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2973:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "2973:20:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2973:44:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10765, + "id": 10914, + "nodeType": "Return", + "src": "2966:51:35" + } + ] + } + } + ] + }, + "documentation": null, + "id": 10925, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_SolveQuadraticFunctionForTrade", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10753, + "mutability": "mutable", + "name": "Q0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10925, + "src": "1658:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10752, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1658:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10755, + "mutability": "mutable", + "name": "Q1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10925, + "src": "1678:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1678:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10757, + "mutability": "mutable", + "name": "ideltaB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10925, + "src": "1698:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10756, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1698:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10759, + "mutability": "mutable", + "name": "deltaBSig", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10925, + "src": "1723:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10758, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1723:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10761, + "mutability": "mutable", + "name": "k", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10925, + "src": "1747:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1747:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1648:114:35" + }, + "returnParameters": { + "id": 10765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10764, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10925, + "src": "1786:7:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1786:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1785:9:35" + }, + "scope": 10992, + "src": "1608:1507:35", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10990, + "nodeType": "Block", + "src": "3460:419:35", + "statements": [ + { + "assignments": [ + 10937 + ], + "declarations": [ + { + "constant": false, + "id": 10937, + "mutability": "mutable", + "name": "sqrt", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10990, + "src": "3504:12:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10936, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3504:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10950, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "34", + "id": 10946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3574:1:35", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10942, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10929, + "src": "3555:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10943, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10931, + "src": "3558:10:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10940, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3539:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "3539:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3539:30:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3539:34:35", + "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": 10947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3539:37:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10948, + "name": "V1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10927, + "src": "3578:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10938, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3519:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11077, + "src": "3519:19:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3519:62:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3504:77:35" + }, + { + "expression": { + "argumentTypes": null, + "id": 10963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10951, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10937, + "src": "3591:4:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10958, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3628:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "3628:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10954, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3607:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "3607:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10952, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10937, + "src": "3598:4:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3598:8:35", + "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": 10956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3598:25:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3598:29:35", + "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": 10960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3598:46:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11622, + "src": "3598:51:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 10962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3598:53:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3591:60:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10964, + "nodeType": "ExpressionStatement", + "src": "3591:60:35" + }, + { + "assignments": [ + 10966 + ], + "declarations": [ + { + "constant": false, + "id": 10966, + "mutability": "mutable", + "name": "premium", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10990, + "src": "3661:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3661:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10979, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10971, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3708:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "3708:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10969, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10937, + "src": "3699:4:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3699:8:35", + "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": 10973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3699:25:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "32", + "id": 10976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3732:1:35", + "subdenomination": null, + "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" + } + ], + "expression": { + "argumentTypes": null, + "id": 10974, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10929, + "src": "3726:1:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3726:5:35", + "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": 10977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3726:8:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10967, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3679:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11077, + "src": "3679:19:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3679:56:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3661:74:35" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10982, + "name": "V1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10927, + "src": "3839:2:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10986, + "name": "premium", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10966, + "src": "3863:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10983, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3843:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "3843:15:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3843:19:35", + "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": 10987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3843:28:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10980, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3823:11:35", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "3823:15:35", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3823:49:35", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10935, + "id": 10989, + "nodeType": "Return", + "src": "3816:56:35" + } + ] + }, + "documentation": null, + "id": 10991, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_SolveQuadraticFunctionForTarget", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10932, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10927, + "mutability": "mutable", + "name": "V1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10991, + "src": "3361:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3361:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10929, + "mutability": "mutable", + "name": "k", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10991, + "src": "3381:9:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10928, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3381:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10931, + "mutability": "mutable", + "name": "fairAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10991, + "src": "3400:18:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10930, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3400:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3351:73:35" + }, + "returnParameters": { + "id": 10935, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10934, + "mutability": "mutable", + "name": "V0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10991, + "src": "3448:10:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3448:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3447:12:35" + }, + "scope": 10992, + "src": "3310:569:35", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 10993, + "src": "379:3502:35" + } + ], + "src": "78:3804:35" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.715Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "DODOMath" + }, + "userdoc": { + "methods": {}, + "notice": "Functions for complex calculating. Including ONE Integration and TWO Quadratic solutions" + } +} \ No newline at end of file diff --git a/build-v1/contracts/DODOMine.json b/build-v1/contracts/DODOMine.json new file mode 100644 index 0000000..90b31cd --- /dev/null +++ b/build-v1/contracts/DODOMine.json @@ -0,0 +1,33367 @@ +{ + "contractName": "DODOMine", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_dodoToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_startBlock", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Claim", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "pid", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Deposit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "pid", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdraw", + "type": "event" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "dodoPerBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "dodoRewardVault", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "lpTokenRegistry", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "poolInfos", + "outputs": [ + { + "internalType": "address", + "name": "lpToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allocPoint", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastRewardBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "accDODOPerShare", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "realizedReward", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "startBlock", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalAllocPoint", + "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": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "userInfo", + "outputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rewardDebt", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "poolLength", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_lpToken", + "type": "address" + } + ], + "name": "getPid", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_lpToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "getUserLpBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_lpToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_allocPoint", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "_withUpdate", + "type": "bool" + } + ], + "name": "addLpToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_lpToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_allocPoint", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "_withUpdate", + "type": "bool" + } + ], + "name": "setLpToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_dodoPerBlock", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "_withUpdate", + "type": "bool" + } + ], + "name": "setReward", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_lpToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "getPendingReward", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "getAllPendingReward", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "getRealizedReward", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_lpToken", + "type": "address" + } + ], + "name": "getDlpMiningSpeed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "massUpdatePools", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_pid", + "type": "uint256" + } + ], + "name": "updatePool", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_lpToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_lpToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_lpToken", + "type": "address" + } + ], + "name": "withdrawAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_lpToken", + "type": "address" + } + ], + "name": "emergencyWithdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_lpToken", + "type": "address" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dodoToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_startBlock\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_allocPoint\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_withUpdate\",\"type\":\"bool\"}],\"name\":\"addLpToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dodoPerBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dodoRewardVault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"}],\"name\":\"emergencyWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getAllPendingReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"}],\"name\":\"getDlpMiningSpeed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getPendingReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"}],\"name\":\"getPid\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getRealizedReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getUserLpBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lpTokenRegistry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"massUpdatePools\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"poolInfos\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"lpToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allocPoint\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastRewardBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"accDODOPerShare\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"realizedReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_allocPoint\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_withUpdate\",\"type\":\"bool\"}],\"name\":\"setLpToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_dodoPerBlock\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_withUpdate\",\"type\":\"bool\"}],\"name\":\"setReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAllocPoint\",\"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\":\"uint256\",\"name\":\"_pid\",\"type\":\"uint256\"}],\"name\":\"updatePool\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardDebt\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"}],\"name\":\"withdrawAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMine.sol\":\"DODOMine\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":{\"keccak256\":\"0x9a093cbac4e37ed4ee5e27495dae08754bbfec81f7c0ceb57a5a7ac4f362208f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ddd9e5de1c555f0d1232e148fe18574e6adaa348e792844d9011bbd39bf908f\",\"dweb:/ipfs/QmSgZNwPNqCrQC4kJNdwH3iQNasbTfw2cbTtAtNVcpqnYc\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol\":{\"keccak256\":\"0xb7a2ca6570834e4784e86d19fd5a4b6b1eff22a4586dc240659943396a365aa5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5855a493c78e787d7effd87d9c661acbcd19ca1e1ba72dbeaa91c3c8db29cbb4\",\"dweb:/ipfs/QmSddEexZ5okMatgoQ5JZRoJqe7BwsJwwWA2o1kKx7vbTH\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMine.sol\":{\"keccak256\":\"0xe69f8a8d3502ccfad68bc471275589c5c90934779027f009cb27a93ec3fcc63f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://dbbe3ed4d02ddb293f94ea6f788739e4c133f5aef03f2c9f038095ffd34e0b0f\",\"dweb:/ipfs/QmTw7PM5ZRh1gBek11WDmCrpvUwge2nrHjxZZkdjmtSvzu\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol\":{\"keccak256\":\"0x9a1ad5dfb8c36b3750f7c3c9aef091e63bad36e2145355eb212d67988914dc1d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e8ad414d377a1860b064193e015ca67187da4a47c9e925123cef4c9a6cd3448b\",\"dweb:/ipfs/QmS7Po2mSdB7Bk784Zcsxx7HFwJ17WXqKv3FuDGxH5aCFY\"]}},\"version\":1}", + "bytecode": "0x608060405260006008553480156200001657600080fd5b506040516200222f3803806200222f8339810160408190526200003991620000f3565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3816040516200009190620000e5565b6200009d91906200012d565b604051809103906000f080158015620000ba573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b03929092169190911790556009555062000141565b6106868062001ba983390190565b6000806040838503121562000106578182fd5b82516001600160a01b03811681146200011d578283fd5b6020939093015192949293505050565b6001600160a01b0391909116815260200190565b611a5880620001516000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80636ff1c9bc11610104578063d1058e59116100a2578063f3fef3a311610071578063f3fef3a3146103a2578063fa09e630146103b5578063fb7276f4146103c8578063fe0f3a13146103db576101da565b8063d1058e5914610361578063ec83a76a14610369578063f146b8091461037c578063f2fde38b1461038f576101da565b80638af70336116100de5780638af703361461031d57806393f1a40b146103255780639599af1314610346578063bea006e01461034e576101da565b80636ff1c9bc146102ef5780637f10179f146103025780638456db1514610315576101da565b806343b55f351161017c57806351eb05a61161014b57806351eb05a61461029e578063630b5ba1146102b1578063689d84e4146102b95780636dc2cc8c146102dc576101da565b806343b55f351461026857806347e7ef241461027b57806348cd4cb11461028e5780634e71e0c814610296576101da565b806319a78f55116101b857806319a78f551461021a5780631e83409a1461022d57806334ea5389146102425780633d16433e14610255576101da565b8063081e3eda146101df57806316048bc4146101fd57806317caf6f114610212575b600080fd5b6101e76103ee565b6040516101f491906119fd565b60405180910390f35b6102056103f4565b6040516101f4919061177e565b6101e7610403565b6101e76102283660046115fd565b610409565b61024061023b3660046115e2565b610442565b005b61024061025036600461165b565b610532565b6101e76102633660046115e2565b6105f2565b6101e76102763660046115e2565b610604565b610240610289366004611631565b61065c565b6101e7610763565b610240610769565b6102406102ac3660046116c3565b6107f7565b610240610931565b6102cc6102c73660046116c3565b610954565b6040516101f494939291906117cf565b6101e76102ea3660046115e2565b610995565b6102406102fd3660046115e2565b6109b0565b610240610310366004611716565b610a27565b610205610a65565b6101e7610a74565b6103386103333660046116f3565b610a7a565b6040516101f4929190611a06565b610205610a9e565b61024061035c36600461165b565b610aad565b610240610c50565b6101e76103773660046115e2565b610d46565b6101e761038a3660046115e2565b610d58565b61024061039d3660046115e2565b610f25565b6102406103b0366004611631565b610fd0565b6102406103c33660046115e2565b6110f5565b6101e76103d63660046115e2565b61110d565b6101e76103e93660046115fd565b611161565b60045490565b6000546001600160a01b031681565b60085481565b60008061041584610604565b60009081526006602090815260408083206001600160a01b03871684529091529020549150505b92915050565b600061044d82610604565b6000818152600660209081526040808320338452909152902054909150158061049457506004818154811061047e57fe5b9060005260206000209060040201600101546000145b1561049f575061052f565b6000600482815481106104ae57fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506104df836107f7565b600061050782600101546104fb846000015486600301546112ac565b9063ffffffff6112d616565b905061051b826000015484600301546112ac565b600183015561052a33826112fe565b505050505b50565b6000546001600160a01b031633146105655760405162461bcd60e51b815260040161055c906118ee565b60405180910390fd5b801561057357610573610931565b600061057e84610604565b90506105c3836105b76004848154811061059457fe5b9060005260206000209060040201600101546008546112d690919063ffffffff16565b9063ffffffff6113e416565b60088190555082600482815481106105d757fe5b90600052602060002090600402016001018190555050505050565b60056020526000908152604090205481565b6001600160a01b038116600090815260056020526040812054829061063b5760405162461bcd60e51b815260040161055c90611911565b50506001600160a01b03166000908152600560205260409020546000190190565b600061066783610604565b905060006004828154811061067857fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506106a9836107f7565b8054156106da5760006106cc82600101546104fb846000015486600301546112ac565b90506106d833826112fe565b505b81546106f7906001600160a01b031633308763ffffffff61141016565b8054610709908563ffffffff6113e416565b808255600383015461071b91906112ac565b6001820155604051839033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15906107549088906119fd565b60405180910390a35050505050565b60095481565b6001546001600160a01b031633146107935760405162461bcd60e51b815260040161055c906117f5565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006004828154811061080657fe5b9060005260206000209060040201905080600201544311610827575061052f565b80546040516370a0823160e01b81526000916001600160a01b0316906370a082319061085790309060040161177e565b60206040518083038186803b15801561086f57600080fd5b505afa158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116db565b9050806108bb57504360029091015561052f565b60006109006008546108f485600101546108e86003546108e88960020154436112d690919063ffffffff16565b9063ffffffff61146e16565b9063ffffffff6114a816565b905061092061090f82846114d2565b60038501549063ffffffff6113e416565b600384015550504360029091015550565b60045460005b8181101561095057610948816107f7565b600101610937565b5050565b6004818154811061096157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b6001600160a01b031660009081526007602052604090205490565b60006109bb82610604565b90506000600482815481106109cc57fe5b60009182526020808320858452600682526040808520338087529352909320805460049093029093018054909450610a17926001600160a01b0391909116919063ffffffff6114f016565b6000808255600190910155505050565b6000546001600160a01b03163314610a515760405162461bcd60e51b815260040161055c906118ee565b8015610a5f57610a5f610931565b50600355565b6001546001600160a01b031681565b60035481565b60066020908152600092835260408084209091529082529020805460019091015482565b6002546001600160a01b031681565b6001600160a01b038316600090815260056020526040902054839015610ae55760405162461bcd60e51b815260040161055c906119aa565b6000546001600160a01b03163314610b0f5760405162461bcd60e51b815260040161055c906118ee565b8115610b1d57610b1d610931565b60006009544311610b3057600954610b32565b435b600854909150610b48908563ffffffff6113e416565b600855604080516080810182526001600160a01b0396871680825260208083019788528284019485526000606084018181526004805460018101825581845295517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96820296870180546001600160a01b03191691909d1617909b5598517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c85015594517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19d84015596517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19e909201919091559554958252600590945292909220929092555050565b6004546000805b82811015610d3b5760008181526006602090815260408083203384529091529020541580610ca3575060048181548110610c8d57fe5b9060005260206000209060040201600101546000145b15610cad57610d33565b600060048281548110610cbc57fe5b60009182526020808320858452600682526040808520338652909252922060049091029091019150610ced836107f7565b610d17610d0a82600101546104fb846000015486600301546112ac565b859063ffffffff6113e416565b9350610d2b816000015483600301546112ac565b600190910155505b600101610c57565b5061095033826112fe565b60076020526000908152604090205481565b60045460009081805b82811015610f1d5760008181526006602090815260408083206001600160a01b03891684529091529020541580610db6575060048181548110610da057fe5b9060005260206000209060040201600101546000145b15610dc057610f15565b600060048281548110610dcf57fe5b600091825260208083208584526006825260408085206001600160a01b038c81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a0823191610e329130910161177e565b60206040518083038186803b158015610e4a57600080fd5b505afa158015610e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8291906116db565b9050836002015443118015610e9657508015155b15610ee8576000610ec86008546108f487600101546108e86003546108e88b60020154436112d690919063ffffffff16565b9050610ee4610ed782846114d2565b849063ffffffff6113e416565b9250505b610f0e610f0184600101546104fb8660000154866112ac565b879063ffffffff6113e416565b9550505050505b600101610d61565b509392505050565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b815260040161055c906118ee565b6001600160a01b038116610f755760405162461bcd60e51b815260040161055c9061189c565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610fdb83610604565b9050600060048281548110610fec57fe5b6000918252602080832085845260068252604080852033865290925292208054600490920290920192508411156110355760405162461bcd60e51b815260040161055c906118c3565b61103e836107f7565b600061105a82600101546104fb846000015486600301546112ac565b905061106633826112fe565b8154611078908663ffffffff6112d616565b808355600384015461108a91906112ac565b600183015582546110ab906001600160a01b0316338763ffffffff6114f016565b83336001600160a01b03167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568876040516110e591906119fd565b60405180910390a3505050505050565b60006111018233610409565b90506109508282610fd0565b60008061111983610604565b905060006004828154811061112a57fe5b906000526020600020906004020190506111596008546108f4836001015460035461146e90919063ffffffff16565b949350505050565b60008061116d84610604565b905060006004828154811061117e57fe5b600091825260208083208584526006825260408085206001600160a01b038a81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a08231916111e19130910161177e565b60206040518083038186803b1580156111f957600080fd5b505afa15801561120d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123191906116db565b905083600201544311801561124557508015155b1561128a5760006112776008546108f487600101546108e86003546108e88b60020154436112d690919063ffffffff16565b9050611286610ed782846114d2565b9250505b6112a083600101546104fb8560000154856112ac565b98975050505050505050565b6000670de0b6b3a76400006112c7848463ffffffff61146e16565b816112ce57fe5b049392505050565b6000828211156112f85760405162461bcd60e51b815260040161055c90611879565b50900390565b6002546040516310b3879160e11b81526001600160a01b03909116906321670f229061133090859085906004016117b6565b600060405180830381600087803b15801561134a57600080fd5b505af115801561135e573d6000803e3d6000fd5b5050506001600160a01b03831660009081526007602052604090205461138b91508263ffffffff6113e416565b6001600160a01b038316600081815260076020526040908190209290925590517f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4906113d89084906119fd565b60405180910390a25050565b6000828201838110156114095760405162461bcd60e51b815260040161055c9061193d565b9392505050565b611468846323b872dd60e01b85858560405160240161143193929190611792565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611514565b50505050565b60008261147d5750600061043c565b8282028284828161148a57fe5b04146114095760405162461bcd60e51b815260040161055c906119da565b60008082116114c95760405162461bcd60e51b815260040161055c90611851565b8183816112ce57fe5b6000611409826108f485670de0b6b3a764000063ffffffff61146e16565b61150f8363a9059cbb60e01b84846040516024016114319291906117b6565b505050565b60006060836001600160a01b0316836040516115309190611745565b6000604051808303816000865af19150503d806000811461156d576040519150601f19603f3d011682016040523d82523d6000602084013e611572565b606091505b5091509150816115945760405162461bcd60e51b815260040161055c9061181c565b80511561146857808060200190518101906115af91906116a7565b6114685760405162461bcd60e51b815260040161055c90611960565b80356001600160a01b038116811461043c57600080fd5b6000602082840312156115f3578081fd5b61140983836115cb565b6000806040838503121561160f578081fd5b61161984846115cb565b915061162884602085016115cb565b90509250929050565b60008060408385031215611643578182fd5b61164d84846115cb565b946020939093013593505050565b60008060006060848603121561166f578081fd5b83356001600160a01b0381168114611685578182fd5b925060208401359150604084013561169c81611a14565b809150509250925092565b6000602082840312156116b8578081fd5b815161140981611a14565b6000602082840312156116d4578081fd5b5035919050565b6000602082840312156116ec578081fd5b5051919050565b60008060408385031215611705578182fd5b8235915061162884602085016115cb565b60008060408385031215611728578182fd5b82359150602083013561173a81611a14565b809150509250929050565b60008251815b81811015611765576020818601810151858301520161174b565b818111156117735782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601190820152700eed2e8d0c8e4c2ee40e8dede40daeac6d607b1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b602080825260129082015271131408151bdad95b88139bdd08115e1a5cdd60721b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b602080825260169082015275131408151bdad95b88105b1c9958591e48115e1a5cdd60521b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b918252602082015260400190565b801515811461052f57600080fdfea26469706673582212201c0c8e894ab1ae2df80078c39f5e6e5357042167766df33f4e7581c8ef0a8a7d64736f6c63430006090033608060405234801561001057600080fd5b5060405161068638038061068683398101604081905261002f9161009d565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600280546001600160a01b0319166001600160a01b03929092169190911790556100cb565b6000602082840312156100ae578081fd5b81516001600160a01b03811681146100c4578182fd5b9392505050565b6105ac806100da6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806316048bc41461006757806321670f22146100855780634e71e0c81461009a57806375123ff9146100a25780638456db15146100aa578063f2fde38b146100b2575b600080fd5b61006f6100c5565b60405161007c9190610459565b60405180910390f35b6100986100933660046103d6565b6100d4565b005b610098610128565b61006f6101b6565b61006f6101c5565b6100986100c03660046103b4565b6101d4565b6000546001600160a01b031681565b6000546001600160a01b031633146101075760405162461bcd60e51b81526004016100fe90610509565b60405180910390fd5b600254610124906001600160a01b0316838363ffffffff61027f16565b5050565b6001546001600160a01b031633146101525760405162461bcd60e51b81526004016100fe90610486565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b031681565b6001546001600160a01b031681565b6000546001600160a01b031633146101fe5760405162461bcd60e51b81526004016100fe90610509565b6001600160a01b0381166102245760405162461bcd60e51b81526004016100fe906104e2565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6102d58363a9059cbb60e01b848460405160240161029e92919061046d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526102da565b505050565b60006060836001600160a01b0316836040516102f69190610420565b6000604051808303816000865af19150503d8060008114610333576040519150601f19603f3d011682016040523d82523d6000602084013e610338565b606091505b50915091508161035a5760405162461bcd60e51b81526004016100fe906104ad565b80511561039157808060200190518101906103759190610400565b6103915760405162461bcd60e51b81526004016100fe9061052c565b50505050565b80356001600160a01b03811681146103ae57600080fd5b92915050565b6000602082840312156103c5578081fd5b6103cf8383610397565b9392505050565b600080604083850312156103e8578081fd5b6103f28484610397565b946020939093013593505050565b600060208284031215610411578081fd5b815180151581146103cf578182fd5b60008251815b818110156104405760208186018101518583015201610426565b8181111561044e5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b60608201526080019056fea26469706673582212205ad8caf142b7a2c457e73a7f840e61c56c23ddb79da79a892a5d31d7e8a1d28c64736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80636ff1c9bc11610104578063d1058e59116100a2578063f3fef3a311610071578063f3fef3a3146103a2578063fa09e630146103b5578063fb7276f4146103c8578063fe0f3a13146103db576101da565b8063d1058e5914610361578063ec83a76a14610369578063f146b8091461037c578063f2fde38b1461038f576101da565b80638af70336116100de5780638af703361461031d57806393f1a40b146103255780639599af1314610346578063bea006e01461034e576101da565b80636ff1c9bc146102ef5780637f10179f146103025780638456db1514610315576101da565b806343b55f351161017c57806351eb05a61161014b57806351eb05a61461029e578063630b5ba1146102b1578063689d84e4146102b95780636dc2cc8c146102dc576101da565b806343b55f351461026857806347e7ef241461027b57806348cd4cb11461028e5780634e71e0c814610296576101da565b806319a78f55116101b857806319a78f551461021a5780631e83409a1461022d57806334ea5389146102425780633d16433e14610255576101da565b8063081e3eda146101df57806316048bc4146101fd57806317caf6f114610212575b600080fd5b6101e76103ee565b6040516101f491906119fd565b60405180910390f35b6102056103f4565b6040516101f4919061177e565b6101e7610403565b6101e76102283660046115fd565b610409565b61024061023b3660046115e2565b610442565b005b61024061025036600461165b565b610532565b6101e76102633660046115e2565b6105f2565b6101e76102763660046115e2565b610604565b610240610289366004611631565b61065c565b6101e7610763565b610240610769565b6102406102ac3660046116c3565b6107f7565b610240610931565b6102cc6102c73660046116c3565b610954565b6040516101f494939291906117cf565b6101e76102ea3660046115e2565b610995565b6102406102fd3660046115e2565b6109b0565b610240610310366004611716565b610a27565b610205610a65565b6101e7610a74565b6103386103333660046116f3565b610a7a565b6040516101f4929190611a06565b610205610a9e565b61024061035c36600461165b565b610aad565b610240610c50565b6101e76103773660046115e2565b610d46565b6101e761038a3660046115e2565b610d58565b61024061039d3660046115e2565b610f25565b6102406103b0366004611631565b610fd0565b6102406103c33660046115e2565b6110f5565b6101e76103d63660046115e2565b61110d565b6101e76103e93660046115fd565b611161565b60045490565b6000546001600160a01b031681565b60085481565b60008061041584610604565b60009081526006602090815260408083206001600160a01b03871684529091529020549150505b92915050565b600061044d82610604565b6000818152600660209081526040808320338452909152902054909150158061049457506004818154811061047e57fe5b9060005260206000209060040201600101546000145b1561049f575061052f565b6000600482815481106104ae57fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506104df836107f7565b600061050782600101546104fb846000015486600301546112ac565b9063ffffffff6112d616565b905061051b826000015484600301546112ac565b600183015561052a33826112fe565b505050505b50565b6000546001600160a01b031633146105655760405162461bcd60e51b815260040161055c906118ee565b60405180910390fd5b801561057357610573610931565b600061057e84610604565b90506105c3836105b76004848154811061059457fe5b9060005260206000209060040201600101546008546112d690919063ffffffff16565b9063ffffffff6113e416565b60088190555082600482815481106105d757fe5b90600052602060002090600402016001018190555050505050565b60056020526000908152604090205481565b6001600160a01b038116600090815260056020526040812054829061063b5760405162461bcd60e51b815260040161055c90611911565b50506001600160a01b03166000908152600560205260409020546000190190565b600061066783610604565b905060006004828154811061067857fe5b600091825260208083208584526006825260408085203386529092529220600490910290910191506106a9836107f7565b8054156106da5760006106cc82600101546104fb846000015486600301546112ac565b90506106d833826112fe565b505b81546106f7906001600160a01b031633308763ffffffff61141016565b8054610709908563ffffffff6113e416565b808255600383015461071b91906112ac565b6001820155604051839033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15906107549088906119fd565b60405180910390a35050505050565b60095481565b6001546001600160a01b031633146107935760405162461bcd60e51b815260040161055c906117f5565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006004828154811061080657fe5b9060005260206000209060040201905080600201544311610827575061052f565b80546040516370a0823160e01b81526000916001600160a01b0316906370a082319061085790309060040161177e565b60206040518083038186803b15801561086f57600080fd5b505afa158015610883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a791906116db565b9050806108bb57504360029091015561052f565b60006109006008546108f485600101546108e86003546108e88960020154436112d690919063ffffffff16565b9063ffffffff61146e16565b9063ffffffff6114a816565b905061092061090f82846114d2565b60038501549063ffffffff6113e416565b600384015550504360029091015550565b60045460005b8181101561095057610948816107f7565b600101610937565b5050565b6004818154811061096157fe5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b039092169350919084565b6001600160a01b031660009081526007602052604090205490565b60006109bb82610604565b90506000600482815481106109cc57fe5b60009182526020808320858452600682526040808520338087529352909320805460049093029093018054909450610a17926001600160a01b0391909116919063ffffffff6114f016565b6000808255600190910155505050565b6000546001600160a01b03163314610a515760405162461bcd60e51b815260040161055c906118ee565b8015610a5f57610a5f610931565b50600355565b6001546001600160a01b031681565b60035481565b60066020908152600092835260408084209091529082529020805460019091015482565b6002546001600160a01b031681565b6001600160a01b038316600090815260056020526040902054839015610ae55760405162461bcd60e51b815260040161055c906119aa565b6000546001600160a01b03163314610b0f5760405162461bcd60e51b815260040161055c906118ee565b8115610b1d57610b1d610931565b60006009544311610b3057600954610b32565b435b600854909150610b48908563ffffffff6113e416565b600855604080516080810182526001600160a01b0396871680825260208083019788528284019485526000606084018181526004805460018101825581845295517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b96820296870180546001600160a01b03191691909d1617909b5598517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c85015594517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19d84015596517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19e909201919091559554958252600590945292909220929092555050565b6004546000805b82811015610d3b5760008181526006602090815260408083203384529091529020541580610ca3575060048181548110610c8d57fe5b9060005260206000209060040201600101546000145b15610cad57610d33565b600060048281548110610cbc57fe5b60009182526020808320858452600682526040808520338652909252922060049091029091019150610ced836107f7565b610d17610d0a82600101546104fb846000015486600301546112ac565b859063ffffffff6113e416565b9350610d2b816000015483600301546112ac565b600190910155505b600101610c57565b5061095033826112fe565b60076020526000908152604090205481565b60045460009081805b82811015610f1d5760008181526006602090815260408083206001600160a01b03891684529091529020541580610db6575060048181548110610da057fe5b9060005260206000209060040201600101546000145b15610dc057610f15565b600060048281548110610dcf57fe5b600091825260208083208584526006825260408085206001600160a01b038c81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a0823191610e329130910161177e565b60206040518083038186803b158015610e4a57600080fd5b505afa158015610e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8291906116db565b9050836002015443118015610e9657508015155b15610ee8576000610ec86008546108f487600101546108e86003546108e88b60020154436112d690919063ffffffff16565b9050610ee4610ed782846114d2565b849063ffffffff6113e416565b9250505b610f0e610f0184600101546104fb8660000154866112ac565b879063ffffffff6113e416565b9550505050505b600101610d61565b509392505050565b6000546001600160a01b03163314610f4f5760405162461bcd60e51b815260040161055c906118ee565b6001600160a01b038116610f755760405162461bcd60e51b815260040161055c9061189c565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610fdb83610604565b9050600060048281548110610fec57fe5b6000918252602080832085845260068252604080852033865290925292208054600490920290920192508411156110355760405162461bcd60e51b815260040161055c906118c3565b61103e836107f7565b600061105a82600101546104fb846000015486600301546112ac565b905061106633826112fe565b8154611078908663ffffffff6112d616565b808355600384015461108a91906112ac565b600183015582546110ab906001600160a01b0316338763ffffffff6114f016565b83336001600160a01b03167ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b568876040516110e591906119fd565b60405180910390a3505050505050565b60006111018233610409565b90506109508282610fd0565b60008061111983610604565b905060006004828154811061112a57fe5b906000526020600020906004020190506111596008546108f4836001015460035461146e90919063ffffffff16565b949350505050565b60008061116d84610604565b905060006004828154811061117e57fe5b600091825260208083208584526006825260408085206001600160a01b038a81168752935280852060049485029092016003810154815492516370a0823160e01b815291975092959294929391909116916370a08231916111e19130910161177e565b60206040518083038186803b1580156111f957600080fd5b505afa15801561120d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123191906116db565b905083600201544311801561124557508015155b1561128a5760006112776008546108f487600101546108e86003546108e88b60020154436112d690919063ffffffff16565b9050611286610ed782846114d2565b9250505b6112a083600101546104fb8560000154856112ac565b98975050505050505050565b6000670de0b6b3a76400006112c7848463ffffffff61146e16565b816112ce57fe5b049392505050565b6000828211156112f85760405162461bcd60e51b815260040161055c90611879565b50900390565b6002546040516310b3879160e11b81526001600160a01b03909116906321670f229061133090859085906004016117b6565b600060405180830381600087803b15801561134a57600080fd5b505af115801561135e573d6000803e3d6000fd5b5050506001600160a01b03831660009081526007602052604090205461138b91508263ffffffff6113e416565b6001600160a01b038316600081815260076020526040908190209290925590517f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4906113d89084906119fd565b60405180910390a25050565b6000828201838110156114095760405162461bcd60e51b815260040161055c9061193d565b9392505050565b611468846323b872dd60e01b85858560405160240161143193929190611792565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611514565b50505050565b60008261147d5750600061043c565b8282028284828161148a57fe5b04146114095760405162461bcd60e51b815260040161055c906119da565b60008082116114c95760405162461bcd60e51b815260040161055c90611851565b8183816112ce57fe5b6000611409826108f485670de0b6b3a764000063ffffffff61146e16565b61150f8363a9059cbb60e01b84846040516024016114319291906117b6565b505050565b60006060836001600160a01b0316836040516115309190611745565b6000604051808303816000865af19150503d806000811461156d576040519150601f19603f3d011682016040523d82523d6000602084013e611572565b606091505b5091509150816115945760405162461bcd60e51b815260040161055c9061181c565b80511561146857808060200190518101906115af91906116a7565b6114685760405162461bcd60e51b815260040161055c90611960565b80356001600160a01b038116811461043c57600080fd5b6000602082840312156115f3578081fd5b61140983836115cb565b6000806040838503121561160f578081fd5b61161984846115cb565b915061162884602085016115cb565b90509250929050565b60008060408385031215611643578182fd5b61164d84846115cb565b946020939093013593505050565b60008060006060848603121561166f578081fd5b83356001600160a01b0381168114611685578182fd5b925060208401359150604084013561169c81611a14565b809150509250925092565b6000602082840312156116b8578081fd5b815161140981611a14565b6000602082840312156116d4578081fd5b5035919050565b6000602082840312156116ec578081fd5b5051919050565b60008060408385031215611705578182fd5b8235915061162884602085016115cb565b60008060408385031215611728578182fd5b82359150602083013561173a81611a14565b809150509250929050565b60008251815b81811015611765576020818601810151858301520161174b565b818111156117735782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260208401929092526040830152606082015260800190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601190820152700eed2e8d0c8e4c2ee40e8dede40daeac6d607b1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b602080825260129082015271131408151bdad95b88139bdd08115e1a5cdd60721b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b602080825260169082015275131408151bdad95b88105b1c9958591e48115e1a5cdd60521b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b918252602082015260400190565b801515811461052f57600080fdfea26469706673582212201c0c8e894ab1ae2df80078c39f5e6e5357042167766df33f4e7581c8ef0a8a7d64736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "444:11596:43:-:0;;;2232:1;2199:34;;2533:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;757:7:38;:20;;-1:-1:-1;;;;;;757:20:38;767:10;757:20;;;;792:41;;-1:-1:-1;;;;;825:7:38;;;;;757;792:41;;757:7;;792:41;2649:10:43;2629:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2603:15:43;:58;;-1:-1:-1;;;;;;2603:58:43;-1:-1:-1;;;;;2603:58:43;;;;;;;;;;2671:10;:24;-1:-1:-1;444:11596:43;;;;;;;;;;:::o;287:399:-1:-;;;419:2;407:9;398:7;394:23;390:32;387:2;;;-1:-1;;425:12;387:2;83:13;;-1:-1;;;;;1202:54;;1406:35;;1396:2;;-1:-1;;1445:12;1396:2;588;638:22;;;;224:13;477:74;;224:13;;-1:-1;;;381:305;813:222;-1:-1;;;;;1202:54;;;;764:37;;940:2;925:18;;911:124;;444:11596:43;;;;;;", + "deployedSourceMap": "444:11596:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3065:94;;;:::i;:::-;;;;;;;;;;;;;;;;251:22:38;;;:::i;:::-;;;;;;;;2199:34:43;;;:::i;3311:180::-;;;;;;;;;:::i;10462:572::-;;;;;;;;;:::i;:::-;;4207:379;;;;;;;;;:::i;1881:50::-;;;;;;;;;:::i;3165:140::-;;;;;;;;;:::i;8459:729::-;;;;;;;;;:::i;2288:25::-;;;:::i;1072:225:38:-;;;:::i;7641:701:43:-;;;;;;;;;:::i;7392:176::-;;;:::i;1848:27::-;;;;;;;;;:::i;:::-;;;;;;;;;;;6897:119;;;;;;;;;:::i;10119:337::-;;;;;;;;;:::i;4592:192::-;;;;;;;;;:::i;279:26:38:-;;;:::i;1788:27:43:-;;;:::i;1986:64::-;;;;;;;;;:::i;:::-;;;;;;;;;1752:30;;;:::i;3539:662::-;;;;;;;;;:::i;11040:723::-;;;:::i;2056:49::-;;;;;;;;;:::i;5687:1204::-;;;;;;;;;:::i;846:220:38:-;;;;;;;;;:::i;9194:695:43:-;;;;;;;;;:::i;9895:156::-;;;;;;;;;:::i;7022:243::-;;;;;;;;;:::i;4837:844::-;;;;;;;;;:::i;3065:94::-;3136:9;:16;3065:94;:::o;251:22:38:-;;;-1:-1:-1;;;;;251:22:38;;:::o;2199:34:43:-;;;;:::o;3311:180::-;3391:7;3410:11;3424:16;3431:8;3424:6;:16::i;:::-;3457:13;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;3457:20:43;;;;;;;;;:27;;-1:-1:-1;;3311:180:43;;;;;:::o;10462:572::-;10512:11;10526:16;10533:8;10526:6;:16::i;:::-;10556:13;;;;:8;:13;;;;;;;;10570:10;10556:25;;;;;;;:32;10512:30;;-1:-1:-1;10556:37:43;;:71;;;10597:9;10607:3;10597:14;;;;;;;;;;;;;;;;;;:25;;;10626:1;10597:30;10556:71;10552:120;;;10643:7;;;10552:120;10681:21;10705:9;10715:3;10705:14;;;;;;;;;;;;;;;;10753:13;;;:8;:13;;;;;;10767:10;10753:25;;;;;;;10705:14;;;;;;;;-1:-1:-1;10788:15:43;10762:3;10788:10;:15::i;:::-;10813;10831:71;10886:4;:15;;;10831:50;10847:4;:11;;;10860:4;:20;;;10831:15;:50::i;:::-;:54;:71;:54;:71;:::i;:::-;10813:89;;10930:50;10946:4;:11;;;10959:4;:20;;;10930:15;:50::i;:::-;10912:15;;;:68;10990:37;11007:10;11019:7;10990:16;:37::i;:::-;10462:572;;;;;;:::o;4207:379::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;;;;;;;;;4345:11:43::1;4341:59;;;4372:17;:15;:17::i;:::-;4409:11;4423:16;4430:8;4423:6;:16::i;:::-;4409:30;;4467:63;4518:11;4467:46;4487:9;4497:3;4487:14;;;;;;;;;;;;;;;;;;:25;;;4467:15;;:19;;:46;;;;:::i;:::-;:50:::0;:63:::1;:50;:63;:::i;:::-;4449:15;:81;;;;4568:11;4540:9;4550:3;4540:14;;;;;;;;;;;;;;;;;;:25;;:39;;;;666:1:38;4207:379:43::0;;;:::o;1881:50::-;;;;;;;;;;;;;:::o;3165:140::-;-1:-1:-1;;;;;2809:24:43;;3243:7;2809:24;;;:15;:24;;;;;;3224:8;;2801:59;;;;-1:-1:-1;;;2801:59:43;;;;;;;;;-1:-1:-1;;;;;;;3269:25:43::1;;::::0;;;:15:::1;:25;::::0;;;;;-1:-1:-1;;3269:29:43;;3165:140::o;8459:729::-;8528:11;8542:16;8549:8;8542:6;:16::i;:::-;8528:30;;8568:21;8592:9;8602:3;8592:14;;;;;;;;;;;;;;;;8640:13;;;:8;:13;;;;;;8654:10;8640:25;;;;;;;8592:14;;;;;;;;-1:-1:-1;8675:15:43;8649:3;8675:10;:15::i;:::-;8704:11;;:15;8700:216;;8735:15;8753:101;8825:4;:15;;;8753:50;8769:4;:11;;;8782:4;:20;;;8753:15;:50::i;:101::-;8735:119;;8868:37;8885:10;8897:7;8868:16;:37::i;:::-;8700:216;;8932:12;;8925:82;;-1:-1:-1;;;;;8932:12:43;8971:10;8992:4;8999:7;8925:82;:37;:82;:::i;:::-;9031:11;;:24;;9047:7;9031:24;:15;:24;:::i;:::-;9017:38;;;9112:20;;;;9083:50;;9017:38;9083:15;:50::i;:::-;9065:15;;;:68;9148:33;;9168:3;;9156:10;;9148:33;;;;9173:7;;9148:33;;;;;;;;;;8459:729;;;;;:::o;2288:25::-;;;;:::o;1072:225:38:-;1139:11;;-1:-1:-1;;;;;1139:11:38;1125:10;:25;1117:51;;;;-1:-1:-1;;;1117:51:38;;;;;;;;;1213:11;;;1204:7;;1183:42;;-1:-1:-1;;;;;1213:11:38;;;;1204:7;;;;1183:42;;;1245:11;;;;1235:21;;-1:-1:-1;;;;;;1235:21:38;;;-1:-1:-1;;;;;1245:11:38;;1235:21;;;;1266:24;;;1072:225::o;7641:701:43:-;7692:21;7716:9;7726:4;7716:15;;;;;;;;;;;;;;;;;;7692:39;;7761:4;:20;;;7745:12;:36;7741:73;;7797:7;;;7741:73;7849:12;;7842:45;;-1:-1:-1;;;7842:45:43;;7823:16;;-1:-1:-1;;;;;7849:12:43;;7842:30;;:45;;7881:4;;7842:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7823:64;-1:-1:-1;7901:13:43;7897:99;;-1:-1:-1;7953:12:43;7930:20;;;;:35;7979:7;;7897:99;8005:18;8026:163;8173:15;;8026:129;8139:4;:15;;;8026:95;8108:12;;8026:64;8069:4;:20;;;8026:25;:42;;:64;;;;:::i;:::-;:81;:95;:81;:95;:::i;:129::-;:146;:163;:146;:163;:::i;:::-;8005:184;;8222:68;8247:42;8268:10;8280:8;8247:20;:42::i;:::-;8222:20;;;;;:68;:24;:68;:::i;:::-;8199:20;;;:91;-1:-1:-1;;8323:12:43;8300:20;;;;:35;7641:701;:::o;7392:176::-;7453:9;:16;7436:14;7479:83;7507:6;7501:3;:12;7479:83;;;7536:15;7547:3;7536:10;:15::i;:::-;7515:5;;7479:83;;;;7392:176;:::o;1848:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1848:27:43;;;;-1:-1:-1;1848:27:43;;;:::o;6897:119::-;-1:-1:-1;;;;;6988:21:43;6962:7;6988:21;;;:14;:21;;;;;;;6897:119::o;10119:337::-;10181:11;10195:16;10202:8;10195:6;:16::i;:::-;10181:30;;10221:21;10245:9;10255:3;10245:14;;;;;;;;;;;;;;;;10293:13;;;:8;:13;;;;;;10307:10;10293:25;;;;;;;;10383:11;;10245:14;;;;;;;10335:12;;10245:14;;-1:-1:-1;10328:67:43;;-1:-1:-1;;;;;10335:12:43;;;;;10307:10;10328:67;:33;:67;:::i;:::-;10419:1;10405:15;;;10430;;;;:19;-1:-1:-1;;;10119:337:43:o;4592:192::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;4685:11:43::1;4681:59;;;4712:17;:15;:17::i;:::-;-1:-1:-1::0;4749:12:43::1;:28:::0;4592:192::o;279:26:38:-;;;-1:-1:-1;;;;;279:26:38;;:::o;1788:27:43:-;;;;:::o;1986:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1752:30::-;;;-1:-1:-1;;;;;1752:30:43;;:::o;3539:662::-;-1:-1:-1;;;;;2944:24:43;;;;;;:15;:24;;;;;;3669:8;;2944:29;2936:64;;;;-1:-1:-1;;;2936:64:43;;;;;;;;;635:7:38::1;::::0;-1:-1:-1;;;;;635:7:38::1;621:10;:21;613:43;;;;-1:-1:-1::0;;;613:43:38::1;;;;;;;;;3703:11:43::2;3699:59;;;3730:17;:15;:17::i;:::-;3767:23;3808:10;;3793:12;:25;:53;;3836:10;;3793:53;;;3821:12;3793:53;3874:15;::::0;3767:79;;-1:-1:-1;3874:32:43::2;::::0;3894:11;3874:32:::2;:19;:32;:::i;:::-;3856:15;:50:::0;3944:186:::2;::::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;3944:186:43;;::::2;::::0;;;::::2;::::0;;::::2;::::0;;;;;;;;;-1:-1:-1;3944:186:43;;;;;;3916:9:::2;:224:::0;;::::2;::::0;::::2;::::0;;;;;;;;;;::::2;::::0;;::::2;::::0;;-1:-1:-1;;;;;;3916:224:43::2;::::0;;;::::2;;::::0;;;;;;;;;;;;;;;;;;;;;;;;;4178:16;;4150:25;;;:15:::2;:25:::0;;;;;;;:44;;;;-1:-1:-1;;3539:662:43:o;11040:723::-;11094:9;:16;11077:14;;11149:561;11177:6;11171:3;:12;11149:561;;;11210:13;;;;:8;:13;;;;;;;;11224:10;11210:25;;;;;;;:32;:37;;:71;;;11251:9;11261:3;11251:14;;;;;;;;;;;;;;;;;;:25;;;11280:1;11251:30;11210:71;11206:130;;;11301:8;;11206:130;11349:21;11373:9;11383:3;11373:14;;;;;;;;;;;;;;;;11425:13;;;:8;:13;;;;;;11439:10;11425:25;;;;;;;11373:14;;;;;;;;-1:-1:-1;11464:15:43;11434:3;11464:10;:15::i;:::-;11503:114;11532:71;11587:4;:15;;;11532:50;11548:4;:11;;;11561:4;:20;;;11532:15;:50::i;:71::-;11503:7;;:114;:11;:114;:::i;:::-;11493:124;;11649:50;11665:4;:11;;;11678:4;:20;;;11649:15;:50::i;:::-;11631:15;;;;:68;-1:-1:-1;11149:561:43;11185:5;;11149:561;;;;11719:37;11736:10;11748:7;11719:16;:37::i;2056:49::-;;;;;;;;;;;;;:::o;5687:1204::-;5790:9;:16;5754:7;;;;5849:1008;5877:6;5871:3;:12;5849:1008;;;5910:13;;;;:8;:13;;;;;;;;-1:-1:-1;;;;;5910:20:43;;;;;;;;;:27;:32;;:66;;;5946:9;5956:3;5946:14;;;;;;;;;;;;;;;;;;:25;;;5975:1;5946:30;5910:66;5906:125;;;5996:8;;5906:125;6044:21;6068:9;6078:3;6068:14;;;;;;;;;;;;;;;;6120:13;;;:8;:13;;;;;;-1:-1:-1;;;;;6120:20:43;;;;;;;;;;6068:14;;;;;;;6180:20;;;;6240:12;;6233:45;;-1:-1:-1;;;6233:45:43;;6068:14;;-1:-1:-1;6120:20:43;;6180;;6068:14;;6240:12;;;;;6233:30;;:45;;6272:4;;6233:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6214:64;;6311:4;:20;;;6296:12;:35;:52;;;;-1:-1:-1;6335:13:43;;;6296:52;6292:414;;;6368:18;6389:203;6576:15;;6389:161;6534:4;:15;;;6389:119;6495:12;;6389:80;6448:4;:20;;;6389:33;:58;;:80;;;;:::i;:203::-;6368:224;;6628:63;6648:42;6669:10;6681:8;6648:20;:42::i;:::-;6628:15;;:63;:19;:63;:::i;:::-;6610:81;;6292:414;;6733:113;6766:66;6816:4;:15;;;6766:45;6782:4;:11;;;6795:15;6766;:45::i;:66::-;6733:11;;:113;:15;:113;:::i;:::-;6719:127;;5849:1008;;;;;5885:5;;5849:1008;;;-1:-1:-1;6873:11:43;5687:1204;-1:-1:-1;;;5687:1204:43:o;846:220:38:-;635:7;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;-1:-1:-1;;;;;928:22:38;::::1;920:48;;;;-1:-1:-1::0;;;920:48:38::1;;;;;;;;;1009:7;::::0;;983:44:::1;::::0;-1:-1:-1;;;;;983:44:38;;::::1;::::0;1009:7;::::1;::::0;983:44:::1;::::0;::::1;1037:11;:22:::0;;-1:-1:-1;;;;;;1037:22:38::1;-1:-1:-1::0;;;;;1037:22:38;;;::::1;::::0;;;::::1;::::0;;846:220::o;9194:695:43:-;9264:11;9278:16;9285:8;9278:6;:16::i;:::-;9264:30;;9304:21;9328:9;9338:3;9328:14;;;;;;;;;;;;;;;;9376:13;;;:8;:13;;;;;;9390:10;9376:25;;;;;;;9419:11;;9328:14;;;;;;;;-1:-1:-1;9419:22:43;-1:-1:-1;9419:22:43;9411:52;;;;-1:-1:-1;;;9411:52:43;;;;;;;;;9473:15;9484:3;9473:10;:15::i;:::-;9498;9516:71;9571:4;:15;;;9516:50;9532:4;:11;;;9545:4;:20;;;9516:15;:50::i;:71::-;9498:89;;9597:37;9614:10;9626:7;9597:16;:37::i;:::-;9658:11;;:24;;9674:7;9658:24;:15;:24;:::i;:::-;9644:38;;;9739:20;;;;9710:50;;9644:38;9710:15;:50::i;:::-;9692:15;;;:68;9777:12;;9770:63;;-1:-1:-1;;;;;9777:12:43;9812:10;9825:7;9770:63;:33;:63;:::i;:::-;9869:3;9857:10;-1:-1:-1;;;;;9848:34:43;;9874:7;9848:34;;;;;;;;;;;;;;;9194:695;;;;;;:::o;9895:156::-;9951:15;9969:38;9986:8;9996:10;9969:16;:38::i;:::-;9951:56;;10017:27;10026:8;10036:7;10017:8;:27::i;7022:243::-;7090:7;7109:11;7123:16;7130:8;7123:6;:16::i;:::-;7109:30;;7149:21;7173:9;7183:3;7173:14;;;;;;;;;;;;;;;;;;7149:38;;7204:54;7242:15;;7204:33;7221:4;:15;;;7204:12;;:16;;:33;;;;:::i;:54::-;7197:61;7022:243;-1:-1:-1;;;;7022:243:43:o;4837:844::-;4919:7;4938:11;4952:16;4959:8;4952:6;:16::i;:::-;4938:30;;4978:21;5002:9;5012:3;5002:14;;;;;;;;;;;;;;;;5050:13;;;:8;:13;;;;;;-1:-1:-1;;;;;5050:20:43;;;;;;;;;;5002:14;;;;;;;5106:20;;;;5162:12;;5155:45;;-1:-1:-1;;;5155:45:43;;5002:14;;-1:-1:-1;5050:20:43;;5106;;5002:14;;5162:12;;;;;5155:30;;:45;;5194:4;;5155:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5136:64;;5229:4;:20;;;5214:12;:35;:52;;;;-1:-1:-1;5253:13:43;;;5214:52;5210:382;;;5282:18;5303:183;5470:15;;5303:145;5432:4;:15;;;5303:107;5397:12;;5303:72;5354:4;:20;;;5303:29;:50;;:72;;;;:::i;:183::-;5282:204;;5518:63;5538:42;5559:10;5571:8;5538:20;:42::i;5518:63::-;5500:81;;5210:382;;5608:66;5658:4;:15;;;5608:45;5624:4;:11;;;5637:15;5608;:45::i;:66::-;5601:73;4837:844;-1:-1:-1;;;;;;;;4837:844:43:o;392:115:36:-;455:7;379:6;481:13;:6;492:1;481:13;:10;:13;:::i;:::-;:19;;;;;;;392:115;-1:-1:-1;;;392:115:36:o;934:134:41:-;992:7;1024:1;1019;:6;;1011:28;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;11804:234:43:-;11896:15;;11879:54;;-1:-1:-1;;;11879:54:43;;-1:-1:-1;;;;;11896:15:43;;;;11879:40;;:54;;11920:3;;11925:7;;11879:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;11965:19:43;;;;;;:14;:19;;;;;;:32;;-1:-1:-1;11989:7:43;11965:32;:23;:32;:::i;:::-;-1:-1:-1;;;;;11943:19:43;;;;;;:14;:19;;;;;;;:54;;;;12012:19;;;;;;12023:7;;12012:19;;;;;;;;;;11804:234;;:::o;1074:157:41:-;1132:7;1163:5;;;1186:6;;;;1178:28;;;;-1:-1:-1;;;1178:28:41;;;;;;;;;1223:1;1074:157;-1:-1:-1;;;1074:157:41:o;1015:275:40:-;1153:130;1186:5;1228:27;;;1257:4;1263:2;1267:5;1205:68;;;;;;;;;;;;;;;-1:-1:-1;;1205:68:40;;;;;;;;;;;;;;-1:-1:-1;;;;;1205:68:40;-1:-1:-1;;;;;;1205:68:40;;;;;;;;;;1153:19;:130::i;:::-;1015:275;;;;:::o;281:217:41:-;339:7;362:6;358:45;;-1:-1:-1;391:1:41;384:8;;358:45;425:5;;;429:1;425;:5;:1;448:5;;;;;:10;440:32;;;;-1:-1:-1;;;440:32:41;;;;;;;;504:138;562:7;593:1;589;:5;581:32;;;;-1:-1:-1;;;581:32:41;;;;;;;;;634:1;630;:5;;;;645:123:36;713:7;739:22;759:1;739:15;:6;379;739:15;:10;:15;:::i;804:205:40:-;916:86;936:5;966:23;;;991:2;995:5;943:58;;;;;;;;;;916:86;804:205;;;:::o;2335:1027::-;2984:12;2998:23;3033:5;-1:-1:-1;;;;;3025:19:40;3045:4;3025:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2983:67;;;;3068:7;3060:52;;;;-1:-1:-1;;;3060:52:40;;;;;;;;;3127:17;;:21;3123:233;;3279:10;3268:30;;;;;;;;;;;;;;3260:85;;;;-1:-1:-1;;;3260:85:40;;;;;;;;5:130:-1;72:20;;-1:-1;;;;;16456:54;;16937:35;;16927:2;;16986:1;;16976:12;686:241;;790:2;778:9;769:7;765:23;761:32;758:2;;;-1:-1;;796:12;758:2;858:53;903:7;879:22;858:53;;934:366;;;1055:2;1043:9;1034:7;1030:23;1026:32;1023:2;;;-1:-1;;1061:12;1023:2;1123:53;1168:7;1144:22;1123:53;;;1113:63;;1231:53;1276:7;1213:2;1256:9;1252:22;1231:53;;;1221:63;;1017:283;;;;;;1307:366;;;1428:2;1416:9;1407:7;1403:23;1399:32;1396:2;;;-1:-1;;1434:12;1396:2;1496:53;1541:7;1517:22;1496:53;;;1486:63;1586:2;1625:22;;;;475:20;;-1:-1;;;1390:283;1680:485;;;;1815:2;1803:9;1794:7;1790:23;1786:32;1783:2;;;-1:-1;;1821:12;1783:2;72:20;;-1:-1;;;;;16456:54;;16937:35;;16927:2;;-1:-1;;16976:12;16927:2;1873:63;-1:-1;1973:2;2012:22;;475:20;;-1:-1;2081:2;2117:22;;206:20;231:30;206:20;231:30;;;2089:60;;;;1777:388;;;;;;2172:257;;2284:2;2272:9;2263:7;2259:23;2255:32;2252:2;;;-1:-1;;2290:12;2252:2;354:6;348:13;366:30;390:5;366:30;;2436:241;;2540:2;2528:9;2519:7;2515:23;2511:32;2508:2;;;-1:-1;;2546:12;2508:2;-1:-1;475:20;;2502:175;-1:-1;2502:175;2684:263;;2799:2;2787:9;2778:7;2774:23;2770:32;2767:2;;;-1:-1;;2805:12;2767:2;-1:-1;623:13;;2761:186;-1:-1;2761:186;2954:366;;;3075:2;3063:9;3054:7;3050:23;3046:32;3043:2;;;-1:-1;;3081:12;3043:2;488:6;475:20;3133:63;;3251:53;3296:7;3233:2;3276:9;3272:22;3251:53;;3327:360;;;3445:2;3433:9;3424:7;3420:23;3416:32;3413:2;;;-1:-1;;3451:12;3413:2;488:6;475:20;3503:63;;3603:2;3643:9;3639:22;206:20;231:30;255:5;231:30;;;3611:60;;;;3407:280;;;;;;8245:271;;3974:5;15838:12;-1:-1;16674:101;16688:6;16685:1;16682:13;16674:101;;;4118:4;16755:11;;;;;16749:18;16736:11;;;16729:39;16703:10;16674:101;;;16790:6;16787:1;16784:13;16781:2;;;-1:-1;16846:6;16841:3;16837:16;16830:27;16781:2;-1:-1;4149:16;;;;;8379:137;-1:-1;;8379:137;8523:222;-1:-1;;;;;16456:54;;;;3765:37;;8650:2;8635:18;;8621:124;8752:444;-1:-1;;;;;16456:54;;;3765:37;;16456:54;;;;9099:2;9084:18;;3765:37;9182:2;9167:18;;8196:37;;;;8935:2;8920:18;;8906:290;9203:333;-1:-1;;;;;16456:54;;;;3765:37;;9522:2;9507:18;;8196:37;9358:2;9343:18;;9329:207;9543:556;-1:-1;;;;;16456:54;;;;3765:37;;9919:2;9904:18;;8196:37;;;;10002:2;9987:18;;8196:37;10085:2;10070:18;;8196:37;9754:3;9739:19;;9725:374;10106:416;10306:2;10320:47;;;4402:2;10291:18;;;16136:19;-1:-1;;;16176:14;;;4418:36;4473:12;;;10277:245;10529:416;10729:2;10743:47;;;10714:18;;;16136:19;4760:34;16176:14;;;4740:55;4814:12;;;10700:245;10952:416;11152:2;11166:47;;;5065:2;11137:18;;;16136:19;-1:-1;;;16176:14;;;5081:37;5137:12;;;11123:245;11375:416;11575:2;11589:47;;;5388:1;11560:18;;;16136:19;-1:-1;;;16176:14;;;5403:32;5454:12;;;11546:245;11798:416;11998:2;12012:47;;;5705:2;11983:18;;;16136:19;-1:-1;;;16176:14;;;5721:36;5776:12;;;11969:245;12221:416;12421:2;12435:47;;;6027:2;12406:18;;;16136:19;-1:-1;;;16176:14;;;6043:40;6102:12;;;12392:245;12644:416;12844:2;12858:47;;;6353:1;12829:18;;;16136:19;-1:-1;;;16176:14;;;6368:32;6419:12;;;12815:245;13067:416;13267:2;13281:47;;;6670:2;13252:18;;;16136:19;-1:-1;;;16176:14;;;6686:41;6746:12;;;13238:245;13490:416;13690:2;13704:47;;;6997:1;13675:18;;;16136:19;-1:-1;;;16176:14;;;7012:32;7063:12;;;13661:245;13913:416;14113:2;14127:47;;;7314:2;14098:18;;;16136:19;7350:34;16176:14;;;7330:55;-1:-1;;;7405:12;;;7398:34;7451:12;;;14084:245;14336:416;14536:2;14550:47;;;7702:2;14521:18;;;16136:19;-1:-1;;;16176:14;;;7718:45;7782:12;;;14507:245;14759:416;14959:2;14973:47;;;8033:1;14944:18;;;16136:19;-1:-1;;;16176:14;;;8048:32;8099:12;;;14930:245;15182:222;8196:37;;;15309:2;15294:18;;15280:124;15411:333;8196:37;;;15730:2;15715:18;;8196:37;15566:2;15551:18;;15537:207;17002:111;17083:5;16368:13;16361:21;17061:5;17058:32;17048:2;;17104:1;;17094:12", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {Ownable} from \"../lib/Ownable.sol\";\nimport {DecimalMath} from \"../lib/DecimalMath.sol\";\nimport {SafeERC20} from \"../lib/SafeERC20.sol\";\nimport {SafeMath} from \"../lib/SafeMath.sol\";\nimport {IERC20} from \"../intf/IERC20.sol\";\nimport {IDODORewardVault, DODORewardVault} from \"./DODORewardVault.sol\";\n\n\ncontract DODOMine is Ownable {\n using SafeMath for uint256;\n using SafeERC20 for IERC20;\n\n // Info of each user.\n struct UserInfo {\n uint256 amount; // How many LP tokens the user has provided.\n uint256 rewardDebt; // Reward debt. See explanation below.\n //\n // We do some fancy math here. Basically, any point in time, the amount of DODOs\n // entitled to a user but is pending to be distributed is:\n //\n // pending reward = (user.amount * pool.accDODOPerShare) - user.rewardDebt\n //\n // Whenever a user deposits or withdraws LP tokens to a pool. Here's what happens:\n // 1. The pool's `accDODOPerShare` (and `lastRewardBlock`) gets updated.\n // 2. User receives the pending reward sent to his/her address.\n // 3. User's `amount` gets updated.\n // 4. User's `rewardDebt` gets updated.\n }\n\n // Info of each pool.\n struct PoolInfo {\n address lpToken; // Address of LP token contract.\n uint256 allocPoint; // How many allocation points assigned to this pool. DODOs to distribute per block.\n uint256 lastRewardBlock; // Last block number that DODOs distribution occurs.\n uint256 accDODOPerShare; // Accumulated DODOs per share, times 1e12. See below.\n }\n\n address public dodoRewardVault;\n uint256 public dodoPerBlock;\n\n // Info of each pool.\n PoolInfo[] public poolInfos;\n mapping(address => uint256) public lpTokenRegistry;\n\n // Info of each user that stakes LP tokens.\n mapping(uint256 => mapping(address => UserInfo)) public userInfo;\n mapping(address => uint256) public realizedReward;\n\n // Total allocation points. Must be the sum of all allocation points in all pools.\n uint256 public totalAllocPoint = 0;\n // The block number when DODO mining starts.\n uint256 public startBlock;\n\n event Deposit(address indexed user, uint256 indexed pid, uint256 amount);\n event Withdraw(address indexed user, uint256 indexed pid, uint256 amount);\n event Claim(address indexed user, uint256 amount);\n\n constructor(address _dodoToken, uint256 _startBlock) public {\n dodoRewardVault = address(new DODORewardVault(_dodoToken));\n startBlock = _startBlock;\n }\n\n // ============ Modifiers ============\n\n modifier lpTokenExist(address lpToken) {\n require(lpTokenRegistry[lpToken] > 0, \"LP Token Not Exist\");\n _;\n }\n\n modifier lpTokenNotExist(address lpToken) {\n require(lpTokenRegistry[lpToken] == 0, \"LP Token Already Exist\");\n _;\n }\n\n // ============ Helper ============\n\n function poolLength() external view returns (uint256) {\n return poolInfos.length;\n }\n\n function getPid(address _lpToken) public view lpTokenExist(_lpToken) returns (uint256) {\n return lpTokenRegistry[_lpToken] - 1;\n }\n\n function getUserLpBalance(address _lpToken, address _user) public view returns (uint256) {\n uint256 pid = getPid(_lpToken);\n return userInfo[pid][_user].amount;\n }\n\n // ============ Ownable ============\n\n function addLpToken(\n address _lpToken,\n uint256 _allocPoint,\n bool _withUpdate\n ) public lpTokenNotExist(_lpToken) onlyOwner {\n if (_withUpdate) {\n massUpdatePools();\n }\n uint256 lastRewardBlock = block.number > startBlock ? block.number : startBlock;\n totalAllocPoint = totalAllocPoint.add(_allocPoint);\n poolInfos.push(\n PoolInfo({\n lpToken: _lpToken,\n allocPoint: _allocPoint,\n lastRewardBlock: lastRewardBlock,\n accDODOPerShare: 0\n })\n );\n lpTokenRegistry[_lpToken] = poolInfos.length;\n }\n\n function setLpToken(\n address _lpToken,\n uint256 _allocPoint,\n bool _withUpdate\n ) public onlyOwner {\n if (_withUpdate) {\n massUpdatePools();\n }\n uint256 pid = getPid(_lpToken);\n totalAllocPoint = totalAllocPoint.sub(poolInfos[pid].allocPoint).add(_allocPoint);\n poolInfos[pid].allocPoint = _allocPoint;\n }\n\n function setReward(uint256 _dodoPerBlock, bool _withUpdate) external onlyOwner {\n if (_withUpdate) {\n massUpdatePools();\n }\n dodoPerBlock = _dodoPerBlock;\n }\n\n // ============ View Rewards ============\n\n function getPendingReward(address _lpToken, address _user) external view returns (uint256) {\n uint256 pid = getPid(_lpToken);\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][_user];\n uint256 accDODOPerShare = pool.accDODOPerShare;\n uint256 lpSupply = IERC20(pool.lpToken).balanceOf(address(this));\n if (block.number > pool.lastRewardBlock && lpSupply != 0) {\n uint256 DODOReward = block\n .number\n .sub(pool.lastRewardBlock)\n .mul(dodoPerBlock)\n .mul(pool.allocPoint)\n .div(totalAllocPoint);\n accDODOPerShare = accDODOPerShare.add(DecimalMath.divFloor(DODOReward, lpSupply));\n }\n return DecimalMath.mul(user.amount, accDODOPerShare).sub(user.rewardDebt);\n }\n\n function getAllPendingReward(address _user) external view returns (uint256) {\n uint256 length = poolInfos.length;\n uint256 totalReward = 0;\n for (uint256 pid = 0; pid < length; ++pid) {\n if (userInfo[pid][_user].amount == 0 || poolInfos[pid].allocPoint == 0) {\n continue; // save gas\n }\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][_user];\n uint256 accDODOPerShare = pool.accDODOPerShare;\n uint256 lpSupply = IERC20(pool.lpToken).balanceOf(address(this));\n if (block.number > pool.lastRewardBlock && lpSupply != 0) {\n uint256 DODOReward = block\n .number\n .sub(pool.lastRewardBlock)\n .mul(dodoPerBlock)\n .mul(pool.allocPoint)\n .div(totalAllocPoint);\n accDODOPerShare = accDODOPerShare.add(DecimalMath.divFloor(DODOReward, lpSupply));\n }\n totalReward = totalReward.add(\n DecimalMath.mul(user.amount, accDODOPerShare).sub(user.rewardDebt)\n );\n }\n return totalReward;\n }\n\n function getRealizedReward(address _user) external view returns (uint256) {\n return realizedReward[_user];\n }\n\n function getDlpMiningSpeed(address _lpToken) external view returns (uint256) {\n uint256 pid = getPid(_lpToken);\n PoolInfo storage pool = poolInfos[pid];\n return dodoPerBlock.mul(pool.allocPoint).div(totalAllocPoint);\n }\n\n // ============ Update Pools ============\n\n // Update reward vairables for all pools. Be careful of gas spending!\n function massUpdatePools() public {\n uint256 length = poolInfos.length;\n for (uint256 pid = 0; pid < length; ++pid) {\n updatePool(pid);\n }\n }\n\n // Update reward variables of the given pool to be up-to-date.\n function updatePool(uint256 _pid) public {\n PoolInfo storage pool = poolInfos[_pid];\n if (block.number <= pool.lastRewardBlock) {\n return;\n }\n uint256 lpSupply = IERC20(pool.lpToken).balanceOf(address(this));\n if (lpSupply == 0) {\n pool.lastRewardBlock = block.number;\n return;\n }\n uint256 DODOReward = block\n .number\n .sub(pool.lastRewardBlock)\n .mul(dodoPerBlock)\n .mul(pool.allocPoint)\n .div(totalAllocPoint);\n pool.accDODOPerShare = pool.accDODOPerShare.add(DecimalMath.divFloor(DODOReward, lpSupply));\n pool.lastRewardBlock = block.number;\n }\n\n // ============ Deposit & Withdraw & Claim ============\n // Deposit & withdraw will also trigger claim\n\n function deposit(address _lpToken, uint256 _amount) public {\n uint256 pid = getPid(_lpToken);\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][msg.sender];\n updatePool(pid);\n if (user.amount > 0) {\n uint256 pending = DecimalMath.mul(user.amount, pool.accDODOPerShare).sub(\n user.rewardDebt\n );\n safeDODOTransfer(msg.sender, pending);\n }\n IERC20(pool.lpToken).safeTransferFrom(address(msg.sender), address(this), _amount);\n user.amount = user.amount.add(_amount);\n user.rewardDebt = DecimalMath.mul(user.amount, pool.accDODOPerShare);\n emit Deposit(msg.sender, pid, _amount);\n }\n\n function withdraw(address _lpToken, uint256 _amount) public {\n uint256 pid = getPid(_lpToken);\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][msg.sender];\n require(user.amount >= _amount, \"withdraw too much\");\n updatePool(pid);\n uint256 pending = DecimalMath.mul(user.amount, pool.accDODOPerShare).sub(user.rewardDebt);\n safeDODOTransfer(msg.sender, pending);\n user.amount = user.amount.sub(_amount);\n user.rewardDebt = DecimalMath.mul(user.amount, pool.accDODOPerShare);\n IERC20(pool.lpToken).safeTransfer(address(msg.sender), _amount);\n emit Withdraw(msg.sender, pid, _amount);\n }\n\n function withdrawAll(address _lpToken) public {\n uint256 balance = getUserLpBalance(_lpToken, msg.sender);\n withdraw(_lpToken, balance);\n }\n\n // Withdraw without caring about rewards. EMERGENCY ONLY.\n function emergencyWithdraw(address _lpToken) public {\n uint256 pid = getPid(_lpToken);\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][msg.sender];\n IERC20(pool.lpToken).safeTransfer(address(msg.sender), user.amount);\n user.amount = 0;\n user.rewardDebt = 0;\n }\n\n function claim(address _lpToken) public {\n uint256 pid = getPid(_lpToken);\n if (userInfo[pid][msg.sender].amount == 0 || poolInfos[pid].allocPoint == 0) {\n return; // save gas\n }\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][msg.sender];\n updatePool(pid);\n uint256 pending = DecimalMath.mul(user.amount, pool.accDODOPerShare).sub(user.rewardDebt);\n user.rewardDebt = DecimalMath.mul(user.amount, pool.accDODOPerShare);\n safeDODOTransfer(msg.sender, pending);\n }\n\n function claimAll() public {\n uint256 length = poolInfos.length;\n uint256 pending = 0;\n for (uint256 pid = 0; pid < length; ++pid) {\n if (userInfo[pid][msg.sender].amount == 0 || poolInfos[pid].allocPoint == 0) {\n continue; // save gas\n }\n PoolInfo storage pool = poolInfos[pid];\n UserInfo storage user = userInfo[pid][msg.sender];\n updatePool(pid);\n pending = pending.add(\n DecimalMath.mul(user.amount, pool.accDODOPerShare).sub(user.rewardDebt)\n );\n user.rewardDebt = DecimalMath.mul(user.amount, pool.accDODOPerShare);\n }\n safeDODOTransfer(msg.sender, pending);\n }\n\n // Safe DODO transfer function\n function safeDODOTransfer(address _to, uint256 _amount) internal {\n IDODORewardVault(dodoRewardVault).reward(_to, _amount);\n realizedReward[_to] = realizedReward[_to].add(_amount);\n emit Claim(_to, _amount);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMine.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMine.sol", + "exportedSymbols": { + "DODOMine": [ + 12822 + ] + }, + "id": 12823, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11633, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:43" + }, + { + "id": 11634, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:43" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 11636, + "nodeType": "ImportDirective", + "scope": 12823, + "sourceUnit": 11272, + "src": "136:43:43", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11635, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 11638, + "nodeType": "ImportDirective", + "scope": 12823, + "sourceUnit": 11079, + "src": "180:51:43", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11637, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "188:11:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "../lib/SafeERC20.sol", + "id": 11640, + "nodeType": "ImportDirective", + "scope": 12823, + "sourceUnit": 11441, + "src": "232:47:43", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11639, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "240:9:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 11642, + "nodeType": "ImportDirective", + "scope": 12823, + "sourceUnit": 11624, + "src": "280:45:43", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11641, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "288:8:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 11644, + "nodeType": "ImportDirective", + "scope": 12823, + "sourceUnit": 10608, + "src": "326:42:43", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11643, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "334:6:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol", + "file": "./DODORewardVault.sol", + "id": 11647, + "nodeType": "ImportDirective", + "scope": 12823, + "sourceUnit": 12999, + "src": "369:72:43", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11645, + "name": "IDODORewardVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "377:16:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + }, + { + "foreign": { + "argumentTypes": null, + "id": 11646, + "name": "DODORewardVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "395:15:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 11648, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "465:7:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 11649, + "nodeType": "InheritanceSpecifier", + "src": "465:7:43" + } + ], + "contractDependencies": [ + 11271, + 12998 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12822, + "linearizedBaseContracts": [ + 12822, + 11271 + ], + "name": "DODOMine", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 11652, + "libraryName": { + "contractScope": null, + "id": 11650, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "485:8:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "479:27:43", + "typeName": { + "id": 11651, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "498:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 11655, + "libraryName": { + "contractScope": null, + "id": 11653, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "517:9:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "511:27:43", + "typeName": { + "contractScope": null, + "id": 11654, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "531:6:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "canonicalName": "DODOMine.UserInfo", + "id": 11660, + "members": [ + { + "constant": false, + "id": 11657, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11660, + "src": "596:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "596:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11659, + "mutability": "mutable", + "name": "rewardDebt", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11660, + "src": "665:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "665:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "UserInfo", + "nodeType": "StructDefinition", + "scope": 12822, + "src": "570:777:43", + "visibility": "public" + }, + { + "canonicalName": "DODOMine.PoolInfo", + "id": 11669, + "members": [ + { + "constant": false, + "id": 11662, + "mutability": "mutable", + "name": "lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11669, + "src": "1405:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1405:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11664, + "mutability": "mutable", + "name": "allocPoint", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11669, + "src": "1463:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1463:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11666, + "mutability": "mutable", + "name": "lastRewardBlock", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11669, + "src": "1575:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1575:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11668, + "mutability": "mutable", + "name": "accDODOPerShare", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11669, + "src": "1661:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1661:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "PoolInfo", + "nodeType": "StructDefinition", + "scope": 12822, + "src": "1379:367:43", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "9599af13", + "id": 11671, + "mutability": "mutable", + "name": "dodoRewardVault", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "1752:30:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1752:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "8af70336", + "id": 11673, + "mutability": "mutable", + "name": "dodoPerBlock", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "1788:27:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1788:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "689d84e4", + "id": 11676, + "mutability": "mutable", + "name": "poolInfos", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "1848:27:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 11674, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "1848:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "id": 11675, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1848:10:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage_ptr", + "typeString": "struct DODOMine.PoolInfo[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3d16433e", + "id": 11680, + "mutability": "mutable", + "name": "lpTokenRegistry", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "1881:50:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 11679, + "keyType": { + "id": 11677, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1889:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1881:27:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 11678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1900:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "93f1a40b", + "id": 11686, + "mutability": "mutable", + "name": "userInfo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "1986:64:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo))" + }, + "typeName": { + "id": 11685, + "keyType": { + "id": 11681, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1994:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1986:48:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo))" + }, + "valueType": { + "id": 11684, + "keyType": { + "id": 11682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2013:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2005:28:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo)" + }, + "valueType": { + "contractScope": null, + "id": 11683, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "2024:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ec83a76a", + "id": 11690, + "mutability": "mutable", + "name": "realizedReward", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "2056:49:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 11689, + "keyType": { + "id": 11687, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2064:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2056:27:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 11688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2075:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "17caf6f1", + "id": 11693, + "mutability": "mutable", + "name": "totalAllocPoint", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "2199:34:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11691, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2199:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 11692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2232:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "48cd4cb1", + "id": 11695, + "mutability": "mutable", + "name": "startBlock", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "2288:25:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2288:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 11703, + "name": "Deposit", + "nodeType": "EventDefinition", + "parameters": { + "id": 11702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11697, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11703, + "src": "2334:20:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11696, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2334:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11699, + "indexed": true, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11703, + "src": "2356:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2356:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11701, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11703, + "src": "2377:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2377:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2333:59:43" + }, + "src": "2320:73:43" + }, + { + "anonymous": false, + "documentation": null, + "id": 11711, + "name": "Withdraw", + "nodeType": "EventDefinition", + "parameters": { + "id": 11710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11705, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11711, + "src": "2413:20:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2413:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11707, + "indexed": true, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11711, + "src": "2435:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2435:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11709, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11711, + "src": "2456:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11708, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2456:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2412:59:43" + }, + "src": "2398:74:43" + }, + { + "anonymous": false, + "documentation": null, + "id": 11717, + "name": "Claim", + "nodeType": "EventDefinition", + "parameters": { + "id": 11716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11713, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11717, + "src": "2489:20:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2489:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11715, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11717, + "src": "2511:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2511:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2488:38:43" + }, + "src": "2477:50:43" + }, + { + "body": { + "id": 11738, + "nodeType": "Block", + "src": "2593:109:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11724, + "name": "dodoRewardVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11671, + "src": "2603:15:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11729, + "name": "_dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11719, + "src": "2649:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2629:19:43", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DODORewardVault_$12998_$", + "typeString": "function (address) returns (contract DODORewardVault)" + }, + "typeName": { + "contractScope": null, + "id": 11727, + "name": "DODORewardVault", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12998, + "src": "2633:15:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODORewardVault_$12998", + "typeString": "contract DODORewardVault" + } + } + }, + "id": 11730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2629:31:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODORewardVault_$12998", + "typeString": "contract DODORewardVault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODORewardVault_$12998", + "typeString": "contract DODORewardVault" + } + ], + "id": 11726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2621:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2621:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2621:40:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2603:58:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11733, + "nodeType": "ExpressionStatement", + "src": "2603:58:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 11736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11734, + "name": "startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11695, + "src": "2671:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11735, + "name": "_startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11721, + "src": "2684:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2671:24:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11737, + "nodeType": "ExpressionStatement", + "src": "2671:24:43" + } + ] + }, + "documentation": null, + "id": 11739, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11719, + "mutability": "mutable", + "name": "_dodoToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11739, + "src": "2545:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2545:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11721, + "mutability": "mutable", + "name": "_startBlock", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11739, + "src": "2565:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2565:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2544:41:43" + }, + "returnParameters": { + "id": 11723, + "nodeType": "ParameterList", + "parameters": [], + "src": "2593:0:43" + }, + "scope": 12822, + "src": "2533:169:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 11753, + "nodeType": "Block", + "src": "2791:87:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11744, + "name": "lpTokenRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11680, + "src": "2809:15:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 11746, + "indexExpression": { + "argumentTypes": null, + "id": 11745, + "name": "lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11741, + "src": "2825:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2809:24:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2836:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2809:28:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4c5020546f6b656e204e6f74204578697374", + "id": 11749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2839:20:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d66678012b5affca3d9727e8b7ea6591ac507d36b508c35b6405e4b76dfc67ac", + "typeString": "literal_string \"LP Token Not Exist\"" + }, + "value": "LP Token Not Exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d66678012b5affca3d9727e8b7ea6591ac507d36b508c35b6405e4b76dfc67ac", + "typeString": "literal_string \"LP Token Not Exist\"" + } + ], + "id": 11743, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2801:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2801:59:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11751, + "nodeType": "ExpressionStatement", + "src": "2801:59:43" + }, + { + "id": 11752, + "nodeType": "PlaceholderStatement", + "src": "2870:1:43" + } + ] + }, + "documentation": null, + "id": 11754, + "name": "lpTokenExist", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 11742, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11741, + "mutability": "mutable", + "name": "lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11754, + "src": "2774:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11740, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2774:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2773:17:43" + }, + "src": "2752:126:43", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11768, + "nodeType": "Block", + "src": "2926:92:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11759, + "name": "lpTokenRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11680, + "src": "2944:15:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 11761, + "indexExpression": { + "argumentTypes": null, + "id": 11760, + "name": "lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11756, + "src": "2960:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2944:24:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2972:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2944:29:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4c5020546f6b656e20416c7265616479204578697374", + "id": 11764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2975:24:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e6251c7bee25a31a23d0da97ca10d75b92968e9f3bcef7a6fc9dde9d1a7e1078", + "typeString": "literal_string \"LP Token Already Exist\"" + }, + "value": "LP Token Already Exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e6251c7bee25a31a23d0da97ca10d75b92968e9f3bcef7a6fc9dde9d1a7e1078", + "typeString": "literal_string \"LP Token Already Exist\"" + } + ], + "id": 11758, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2936:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2936:64:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11766, + "nodeType": "ExpressionStatement", + "src": "2936:64:43" + }, + { + "id": 11767, + "nodeType": "PlaceholderStatement", + "src": "3010:1:43" + } + ] + }, + "documentation": null, + "id": 11769, + "name": "lpTokenNotExist", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 11757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11756, + "mutability": "mutable", + "name": "lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11769, + "src": "2909:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11755, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2909:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2908:17:43" + }, + "src": "2884:134:43", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11777, + "nodeType": "Block", + "src": "3119:40:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11774, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "3136:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 11775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3136:16:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11773, + "id": 11776, + "nodeType": "Return", + "src": "3129:23:43" + } + ] + }, + "documentation": null, + "functionSelector": "081e3eda", + "id": 11778, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poolLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11770, + "nodeType": "ParameterList", + "parameters": [], + "src": "3084:2:43" + }, + "returnParameters": { + "id": 11773, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11772, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11778, + "src": "3110:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3110:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3109:9:43" + }, + "scope": 12822, + "src": "3065:94:43", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 11794, + "nodeType": "Block", + "src": "3252:53:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11788, + "name": "lpTokenRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11680, + "src": "3269:15:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 11790, + "indexExpression": { + "argumentTypes": null, + "id": 11789, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11780, + "src": "3285:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3269:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 11791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3297:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3269:29:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11787, + "id": 11793, + "nodeType": "Return", + "src": "3262:36:43" + } + ] + }, + "documentation": null, + "functionSelector": "43b55f35", + "id": 11795, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 11783, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11780, + "src": "3224:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 11784, + "modifierName": { + "argumentTypes": null, + "id": 11782, + "name": "lpTokenExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11754, + "src": "3211:12:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3211:22:43" + } + ], + "name": "getPid", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11781, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11780, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11795, + "src": "3181:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11779, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3181:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3180:18:43" + }, + "returnParameters": { + "id": 11787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11786, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11795, + "src": "3243:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3243:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3242:9:43" + }, + "scope": 12822, + "src": "3165:140:43", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 11817, + "nodeType": "Block", + "src": "3400:91:43", + "statements": [ + { + "assignments": [ + 11805 + ], + "declarations": [ + { + "constant": false, + "id": 11805, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11817, + "src": "3410:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11804, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3410:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11809, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11807, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11797, + "src": "3431:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11806, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "3424:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 11808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3424:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3410:30:43" + }, + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11810, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "3457:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 11812, + "indexExpression": { + "argumentTypes": null, + "id": 11811, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11805, + "src": "3466:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3457:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 11814, + "indexExpression": { + "argumentTypes": null, + "id": 11813, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11799, + "src": "3471:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3457:20:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "id": 11815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "3457:27:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11803, + "id": 11816, + "nodeType": "Return", + "src": "3450:34:43" + } + ] + }, + "documentation": null, + "functionSelector": "19a78f55", + "id": 11818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUserLpBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11797, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11818, + "src": "3337:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3337:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11799, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11818, + "src": "3355:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3355:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3336:33:43" + }, + "returnParameters": { + "id": 11803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11802, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11818, + "src": "3391:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3391:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3390:9:43" + }, + "scope": 12822, + "src": "3311:180:43", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 11874, + "nodeType": "Block", + "src": "3689:512:43", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 11832, + "name": "_withUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11824, + "src": "3703:11:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11837, + "nodeType": "IfStatement", + "src": "3699:59:43", + "trueBody": { + "id": 11836, + "nodeType": "Block", + "src": "3716:42:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 11833, + "name": "massUpdatePools", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12243, + "src": "3730:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 11834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3730:17:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11835, + "nodeType": "ExpressionStatement", + "src": "3730:17:43" + } + ] + } + }, + { + "assignments": [ + 11839 + ], + "declarations": [ + { + "constant": false, + "id": 11839, + "mutability": "mutable", + "name": "lastRewardBlock", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11874, + "src": "3767:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11838, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3767:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11848, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11840, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "3793:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 11841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3793:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 11842, + "name": "startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11695, + "src": "3808:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3793:25:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 11846, + "name": "startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11695, + "src": "3836:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "3793:53:43", + "trueExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11844, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "3821:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 11845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3821:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3767:79:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 11854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11849, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "3856:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11852, + "name": "_allocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11822, + "src": "3894:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11850, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "3874:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3874:19:43", + "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": 11853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3874:32:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3856:50:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11855, + "nodeType": "ExpressionStatement", + "src": "3856:50:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11860, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11820, + "src": "3980:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11861, + "name": "_allocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11822, + "src": "4018:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11862, + "name": "lastRewardBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11839, + "src": "4064:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 11863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4114:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11859, + "name": "PoolInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11669, + "src": "3944:8:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_PoolInfo_$11669_storage_ptr_$", + "typeString": "type(struct DODOMine.PoolInfo storage pointer)" + } + }, + "id": 11864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "lpToken", + "allocPoint", + "lastRewardBlock", + "accDODOPerShare" + ], + "nodeType": "FunctionCall", + "src": "3944:186:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_memory_ptr", + "typeString": "struct DODOMine.PoolInfo memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_PoolInfo_$11669_memory_ptr", + "typeString": "struct DODOMine.PoolInfo memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 11856, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "3916:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 11858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3916:14:43", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_PoolInfo_$11669_storage_$returns$__$", + "typeString": "function (struct DODOMine.PoolInfo storage ref)" + } + }, + "id": 11865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3916:224:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11866, + "nodeType": "ExpressionStatement", + "src": "3916:224:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 11872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11867, + "name": "lpTokenRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11680, + "src": "4150:15:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 11869, + "indexExpression": { + "argumentTypes": null, + "id": 11868, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11820, + "src": "4166:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4150:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11870, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "4178:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 11871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4178:16:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4150:44:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11873, + "nodeType": "ExpressionStatement", + "src": "4150:44:43" + } + ] + }, + "documentation": null, + "functionSelector": "bea006e0", + "id": 11875, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 11827, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11820, + "src": "3669:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 11828, + "modifierName": { + "argumentTypes": null, + "id": 11826, + "name": "lpTokenNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11769, + "src": "3653:15:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3653:25:43" + }, + { + "arguments": null, + "id": 11830, + "modifierName": { + "argumentTypes": null, + "id": 11829, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "3679:9:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3679:9:43" + } + ], + "name": "addLpToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11820, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11875, + "src": "3568:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11819, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3568:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11822, + "mutability": "mutable", + "name": "_allocPoint", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11875, + "src": "3594:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11821, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3594:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11824, + "mutability": "mutable", + "name": "_withUpdate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11875, + "src": "3623:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11823, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3623:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3558:87:43" + }, + "returnParameters": { + "id": 11831, + "nodeType": "ParameterList", + "parameters": [], + "src": "3689:0:43" + }, + "scope": 12822, + "src": "3539:662:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 11918, + "nodeType": "Block", + "src": "4331:255:43", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 11886, + "name": "_withUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11881, + "src": "4345:11:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11891, + "nodeType": "IfStatement", + "src": "4341:59:43", + "trueBody": { + "id": 11890, + "nodeType": "Block", + "src": "4358:42:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 11887, + "name": "massUpdatePools", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12243, + "src": "4372:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 11888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4372:17:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11889, + "nodeType": "ExpressionStatement", + "src": "4372:17:43" + } + ] + } + }, + { + "assignments": [ + 11893 + ], + "declarations": [ + { + "constant": false, + "id": 11893, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11918, + "src": "4409:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11892, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4409:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11897, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11895, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11877, + "src": "4430:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11894, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "4423:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 11896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4423:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4409:30:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 11909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11898, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "4449:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11907, + "name": "_allocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11879, + "src": "4518:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11901, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "4487:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 11903, + "indexExpression": { + "argumentTypes": null, + "id": 11902, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11893, + "src": "4497:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4487:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "id": 11904, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "4487:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11899, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "4467:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4467:19:43", + "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": 11905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4467:46:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4467:50:43", + "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": 11908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4467:63:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4449:81:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11910, + "nodeType": "ExpressionStatement", + "src": "4449:81:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 11916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11911, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "4540:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 11913, + "indexExpression": { + "argumentTypes": null, + "id": 11912, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11893, + "src": "4550:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4540:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "id": 11914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "4540:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11915, + "name": "_allocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11879, + "src": "4568:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4540:39:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11917, + "nodeType": "ExpressionStatement", + "src": "4540:39:43" + } + ] + }, + "documentation": null, + "functionSelector": "34ea5389", + "id": 11919, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 11884, + "modifierName": { + "argumentTypes": null, + "id": 11883, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "4321:9:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4321:9:43" + } + ], + "name": "setLpToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11882, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11877, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11919, + "src": "4236:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11876, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4236:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11879, + "mutability": "mutable", + "name": "_allocPoint", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11919, + "src": "4262:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4262:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11881, + "mutability": "mutable", + "name": "_withUpdate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11919, + "src": "4291:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11880, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4291:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4226:87:43" + }, + "returnParameters": { + "id": 11885, + "nodeType": "ParameterList", + "parameters": [], + "src": "4331:0:43" + }, + "scope": 12822, + "src": "4207:379:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 11938, + "nodeType": "Block", + "src": "4671:113:43", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 11928, + "name": "_withUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11923, + "src": "4685:11:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11933, + "nodeType": "IfStatement", + "src": "4681:59:43", + "trueBody": { + "id": 11932, + "nodeType": "Block", + "src": "4698:42:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 11929, + "name": "massUpdatePools", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12243, + "src": "4712:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 11930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4712:17:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11931, + "nodeType": "ExpressionStatement", + "src": "4712:17:43" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 11936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11934, + "name": "dodoPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11673, + "src": "4749:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11935, + "name": "_dodoPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11921, + "src": "4764:13:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4749:28:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11937, + "nodeType": "ExpressionStatement", + "src": "4749:28:43" + } + ] + }, + "documentation": null, + "functionSelector": "7f10179f", + "id": 11939, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 11926, + "modifierName": { + "argumentTypes": null, + "id": 11925, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "4661:9:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4661:9:43" + } + ], + "name": "setReward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11924, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11921, + "mutability": "mutable", + "name": "_dodoPerBlock", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11939, + "src": "4611:21:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11920, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4611:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11923, + "mutability": "mutable", + "name": "_withUpdate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11939, + "src": "4634:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11922, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4634:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4610:41:43" + }, + "returnParameters": { + "id": 11927, + "nodeType": "ParameterList", + "parameters": [], + "src": "4671:0:43" + }, + "scope": 12822, + "src": "4592:192:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 12038, + "nodeType": "Block", + "src": "4928:753:43", + "statements": [ + { + "assignments": [ + 11949 + ], + "declarations": [ + { + "constant": false, + "id": 11949, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12038, + "src": "4938:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4938:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11953, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11951, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11941, + "src": "4959:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11950, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "4952:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 11952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4952:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4938:30:43" + }, + { + "assignments": [ + 11955 + ], + "declarations": [ + { + "constant": false, + "id": 11955, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12038, + "src": "4978:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 11954, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "4978:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11959, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11956, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "5002:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 11958, + "indexExpression": { + "argumentTypes": null, + "id": 11957, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11949, + "src": "5012:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5002:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4978:38:43" + }, + { + "assignments": [ + 11961 + ], + "declarations": [ + { + "constant": false, + "id": 11961, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12038, + "src": "5026:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 11960, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "5026:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11967, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11962, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "5050:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 11964, + "indexExpression": { + "argumentTypes": null, + "id": 11963, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11949, + "src": "5059:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5050:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 11966, + "indexExpression": { + "argumentTypes": null, + "id": 11965, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11943, + "src": "5064:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5050:20:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5026:44:43" + }, + { + "assignments": [ + 11969 + ], + "declarations": [ + { + "constant": false, + "id": 11969, + "mutability": "mutable", + "name": "accDODOPerShare", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12038, + "src": "5080:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5080:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11972, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11970, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "5106:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 11971, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "5106:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5080:46:43" + }, + { + "assignments": [ + 11974 + ], + "declarations": [ + { + "constant": false, + "id": 11974, + "mutability": "mutable", + "name": "lpSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12038, + "src": "5136:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11973, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5136:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11985, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11982, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5194:4:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + ], + "id": 11981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5186:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11980, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5186:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5186:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11976, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "5162:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 11977, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lpToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11662, + "src": "5162:12:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11975, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5155:6:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 11978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5155:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 11979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "5155:30:43", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 11984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5155:45:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5136:64:43" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 11994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11986, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5214:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 11987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5214:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11988, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "5229:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 11989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "5229:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5214:35:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11991, + "name": "lpSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11974, + "src": "5253:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5265:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5253:13:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5214:52:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12026, + "nodeType": "IfStatement", + "src": "5210:382:43", + "trueBody": { + "id": 12025, + "nodeType": "Block", + "src": "5268:324:43", + "statements": [ + { + "assignments": [ + 11996 + ], + "declarations": [ + { + "constant": false, + "id": 11996, + "mutability": "mutable", + "name": "DODOReward", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12025, + "src": "5282:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11995, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5282:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12013, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12011, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "5470:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12007, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "5432:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12008, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "5432:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12004, + "name": "dodoPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11673, + "src": "5397:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12000, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "5354:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12001, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "5354:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11997, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5303:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 11998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5303:29:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5303:50:43", + "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": 12002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5303:72:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5303:93:43", + "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": 12005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5303:107:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5303:128:43", + "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": 12009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5303:145:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "5303:166:43", + "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": 12012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5303:183:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5282:204:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12014, + "name": "accDODOPerShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11969, + "src": "5500:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12019, + "name": "DODOReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11996, + "src": "5559:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12020, + "name": "lpSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11974, + "src": "5571:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12017, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5538:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "5538:20:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5538:42:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12015, + "name": "accDODOPerShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11969, + "src": "5518:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5518:19:43", + "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": 12022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5518:63:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5500:81:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12024, + "nodeType": "ExpressionStatement", + "src": "5500:81:43" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12034, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11961, + "src": "5658:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "5658:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12029, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11961, + "src": "5624:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12030, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "5624:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12031, + "name": "accDODOPerShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11969, + "src": "5637:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12027, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5608:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "5608:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5608:45:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5608:49:43", + "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": 12036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5608:66:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11947, + "id": 12037, + "nodeType": "Return", + "src": "5601:73:43" + } + ] + }, + "documentation": null, + "functionSelector": "fe0f3a13", + "id": 12039, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPendingReward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11941, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12039, + "src": "4863:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11940, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4863:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11943, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12039, + "src": "4881:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11942, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4881:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4862:33:43" + }, + "returnParameters": { + "id": 11947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12039, + "src": "4919:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11945, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4919:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4918:9:43" + }, + "scope": 12822, + "src": "4837:844:43", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 12176, + "nodeType": "Block", + "src": "5763:1128:43", + "statements": [ + { + "assignments": [ + 12047 + ], + "declarations": [ + { + "constant": false, + "id": 12047, + "mutability": "mutable", + "name": "length", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12176, + "src": "5773:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12046, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5773:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12050, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12048, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "5790:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5790:16:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5773:33:43" + }, + { + "assignments": [ + 12052 + ], + "declarations": [ + { + "constant": false, + "id": 12052, + "mutability": "mutable", + "name": "totalReward", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12176, + "src": "5816:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12051, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5816:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12054, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 12053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5838:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5816:23:43" + }, + { + "body": { + "id": 12172, + "nodeType": "Block", + "src": "5892:965:43", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12065, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "5910:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12067, + "indexExpression": { + "argumentTypes": null, + "id": 12066, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12056, + "src": "5919:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5910:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12069, + "indexExpression": { + "argumentTypes": null, + "id": 12068, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12041, + "src": "5924:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5910:20:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "id": 12070, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "5910:27:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5941:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5910:32:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12073, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "5946:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12075, + "indexExpression": { + "argumentTypes": null, + "id": 12074, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12056, + "src": "5956:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5946:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "id": 12076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "5946:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5975:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5946:30:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5910:66:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12082, + "nodeType": "IfStatement", + "src": "5906:125:43", + "trueBody": { + "id": 12081, + "nodeType": "Block", + "src": "5978:53:43", + "statements": [ + { + "id": 12080, + "nodeType": "Continue", + "src": "5996:8:43" + } + ] + } + }, + { + "assignments": [ + 12084 + ], + "declarations": [ + { + "constant": false, + "id": 12084, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12172, + "src": "6044:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12083, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "6044:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12088, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12085, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "6068:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12087, + "indexExpression": { + "argumentTypes": null, + "id": 12086, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12056, + "src": "6078:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6068:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6044:38:43" + }, + { + "assignments": [ + 12090 + ], + "declarations": [ + { + "constant": false, + "id": 12090, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12172, + "src": "6096:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 12089, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "6096:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12096, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12091, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "6120:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12093, + "indexExpression": { + "argumentTypes": null, + "id": 12092, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12056, + "src": "6129:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6120:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12095, + "indexExpression": { + "argumentTypes": null, + "id": 12094, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12041, + "src": "6134:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6120:20:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6096:44:43" + }, + { + "assignments": [ + 12098 + ], + "declarations": [ + { + "constant": false, + "id": 12098, + "mutability": "mutable", + "name": "accDODOPerShare", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12172, + "src": "6154:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12097, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6154:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12101, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12099, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12084, + "src": "6180:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12100, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "6180:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6154:46:43" + }, + { + "assignments": [ + 12103 + ], + "declarations": [ + { + "constant": false, + "id": 12103, + "mutability": "mutable", + "name": "lpSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12172, + "src": "6214:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6214:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12114, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12111, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6272:4:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + ], + "id": 12110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6264:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6264:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 12112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6264:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12105, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12084, + "src": "6240:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lpToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11662, + "src": "6240:12:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12104, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6233:6:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6233:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "6233:30:43", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 12113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6233:45:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6214:64:43" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12115, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "6296:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6296:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12117, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12084, + "src": "6311:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12118, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "6311:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6296:35:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12120, + "name": "lpSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12103, + "src": "6335:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6347:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6335:13:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6296:52:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12155, + "nodeType": "IfStatement", + "src": "6292:414:43", + "trueBody": { + "id": 12154, + "nodeType": "Block", + "src": "6350:356:43", + "statements": [ + { + "assignments": [ + 12125 + ], + "declarations": [ + { + "constant": false, + "id": 12125, + "mutability": "mutable", + "name": "DODOReward", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12154, + "src": "6368:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12124, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6368:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12142, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12140, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "6576:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12136, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12084, + "src": "6534:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12137, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "6534:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12133, + "name": "dodoPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11673, + "src": "6495:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12129, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12084, + "src": "6448:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12130, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "6448:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12126, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "6389:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6389:33:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6389:58:43", + "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": 12131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6389:80:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "6389:105:43", + "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": 12134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6389:119:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "6389:144:43", + "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": 12138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6389:161:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "6389:186:43", + "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": 12141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6389:203:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6368:224:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12143, + "name": "accDODOPerShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12098, + "src": "6610:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12148, + "name": "DODOReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "6669:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12149, + "name": "lpSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12103, + "src": "6681:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12146, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "6648:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "6648:20:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6648:42:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12144, + "name": "accDODOPerShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12098, + "src": "6628:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "6628:19:43", + "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": 12151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6628:63:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6610:81:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12153, + "nodeType": "ExpressionStatement", + "src": "6610:81:43" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 12170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12156, + "name": "totalReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12052, + "src": "6719:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12166, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12090, + "src": "6816:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12167, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "6816:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12161, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12090, + "src": "6782:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12162, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "6782:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12163, + "name": "accDODOPerShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12098, + "src": "6795:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12159, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "6766:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "6766:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6766:45:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6766:49:43", + "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": 12168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6766:66:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12157, + "name": "totalReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12052, + "src": "6733:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "6733:15:43", + "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": 12169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6733:113:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6719:127:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12171, + "nodeType": "ExpressionStatement", + "src": "6719:127:43" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12059, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12056, + "src": "5871:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 12060, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12047, + "src": "5877:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5871:12:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12173, + "initializationExpression": { + "assignments": [ + 12056 + ], + "declarations": [ + { + "constant": false, + "id": 12056, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12173, + "src": "5854:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12055, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5854:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12058, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 12057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5868:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5854:15:43" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 12063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "5885:5:43", + "subExpression": { + "argumentTypes": null, + "id": 12062, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12056, + "src": "5887:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12064, + "nodeType": "ExpressionStatement", + "src": "5885:5:43" + }, + "nodeType": "ForStatement", + "src": "5849:1008:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12174, + "name": "totalReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12052, + "src": "6873:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12045, + "id": 12175, + "nodeType": "Return", + "src": "6866:18:43" + } + ] + }, + "documentation": null, + "functionSelector": "f146b809", + "id": 12177, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAllPendingReward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12042, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12041, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12177, + "src": "5716:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12040, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5716:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5715:15:43" + }, + "returnParameters": { + "id": 12045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12044, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12177, + "src": "5754:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12043, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5754:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5753:9:43" + }, + "scope": 12822, + "src": "5687:1204:43", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 12188, + "nodeType": "Block", + "src": "6971:45:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12184, + "name": "realizedReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11690, + "src": "6988:14:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12186, + "indexExpression": { + "argumentTypes": null, + "id": 12185, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12179, + "src": "7003:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6988:21:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12183, + "id": 12187, + "nodeType": "Return", + "src": "6981:28:43" + } + ] + }, + "documentation": null, + "functionSelector": "6dc2cc8c", + "id": 12189, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRealizedReward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12180, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12179, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12189, + "src": "6924:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6924:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6923:15:43" + }, + "returnParameters": { + "id": 12183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12182, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12189, + "src": "6962:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6962:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6961:9:43" + }, + "scope": 12822, + "src": "6897:119:43", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 12217, + "nodeType": "Block", + "src": "7099:166:43", + "statements": [ + { + "assignments": [ + 12197 + ], + "declarations": [ + { + "constant": false, + "id": 12197, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12217, + "src": "7109:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12196, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7109:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12201, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12199, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12191, + "src": "7130:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12198, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "7123:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 12200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7123:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7109:30:43" + }, + { + "assignments": [ + 12203 + ], + "declarations": [ + { + "constant": false, + "id": 12203, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12217, + "src": "7149:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12202, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "7149:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12207, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12204, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "7173:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12206, + "indexExpression": { + "argumentTypes": null, + "id": 12205, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12197, + "src": "7183:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7173:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7149:38:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12214, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "7242:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12210, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12203, + "src": "7221:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12211, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "7221:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12208, + "name": "dodoPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11673, + "src": "7204:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "7204:16:43", + "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": 12212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7204:33:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "7204:37:43", + "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": 12215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7204:54:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12195, + "id": 12216, + "nodeType": "Return", + "src": "7197:61:43" + } + ] + }, + "documentation": null, + "functionSelector": "fb7276f4", + "id": 12218, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDlpMiningSpeed", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12191, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12218, + "src": "7049:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7049:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7048:18:43" + }, + "returnParameters": { + "id": 12195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12194, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12218, + "src": "7090:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7090:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7089:9:43" + }, + "scope": 12822, + "src": "7022:243:43", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 12242, + "nodeType": "Block", + "src": "7426:142:43", + "statements": [ + { + "assignments": [ + 12222 + ], + "declarations": [ + { + "constant": false, + "id": 12222, + "mutability": "mutable", + "name": "length", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12242, + "src": "7436:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7436:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12225, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12223, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "7453:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7453:16:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7436:33:43" + }, + { + "body": { + "id": 12240, + "nodeType": "Block", + "src": "7522:40:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12237, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12227, + "src": "7547:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12236, + "name": "updatePool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12329, + "src": "7536:10:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7536:15:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12239, + "nodeType": "ExpressionStatement", + "src": "7536:15:43" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12230, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12227, + "src": "7501:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 12231, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12222, + "src": "7507:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7501:12:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12241, + "initializationExpression": { + "assignments": [ + 12227 + ], + "declarations": [ + { + "constant": false, + "id": 12227, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12241, + "src": "7484:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7484:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12229, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 12228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7498:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7484:15:43" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 12234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "7515:5:43", + "subExpression": { + "argumentTypes": null, + "id": 12233, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12227, + "src": "7517:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12235, + "nodeType": "ExpressionStatement", + "src": "7515:5:43" + }, + "nodeType": "ForStatement", + "src": "7479:83:43" + } + ] + }, + "documentation": null, + "functionSelector": "630b5ba1", + "id": 12243, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "massUpdatePools", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12219, + "nodeType": "ParameterList", + "parameters": [], + "src": "7416:2:43" + }, + "returnParameters": { + "id": 12220, + "nodeType": "ParameterList", + "parameters": [], + "src": "7426:0:43" + }, + "scope": 12822, + "src": "7392:176:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12328, + "nodeType": "Block", + "src": "7682:660:43", + "statements": [ + { + "assignments": [ + 12249 + ], + "declarations": [ + { + "constant": false, + "id": 12249, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12328, + "src": "7692:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12248, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "7692:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12253, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12250, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "7716:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12252, + "indexExpression": { + "argumentTypes": null, + "id": 12251, + "name": "_pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12245, + "src": "7726:4:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7716:15:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7692:39:43" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12254, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7745:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7745:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12256, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "7761:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12257, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "7761:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7745:36:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12261, + "nodeType": "IfStatement", + "src": "7741:73:43", + "trueBody": { + "id": 12260, + "nodeType": "Block", + "src": "7783:31:43", + "statements": [ + { + "expression": null, + "functionReturnParameters": 12247, + "id": 12259, + "nodeType": "Return", + "src": "7797:7:43" + } + ] + } + }, + { + "assignments": [ + 12263 + ], + "declarations": [ + { + "constant": false, + "id": 12263, + "mutability": "mutable", + "name": "lpSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12328, + "src": "7823:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12262, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7823:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12274, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12271, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7881:4:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + ], + "id": 12270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7873:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7873:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 12272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7873:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12265, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "7849:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12266, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lpToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11662, + "src": "7849:12:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12264, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7842:6:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7842:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "7842:30:43", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 12273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7842:45:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7823:64:43" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12275, + "name": "lpSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12263, + "src": "7901:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7913:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7901:13:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12287, + "nodeType": "IfStatement", + "src": "7897:99:43", + "trueBody": { + "id": 12286, + "nodeType": "Block", + "src": "7916:80:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12278, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "7930:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12280, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "7930:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7953:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7953:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7930:35:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12284, + "nodeType": "ExpressionStatement", + "src": "7930:35:43" + }, + { + "expression": null, + "functionReturnParameters": 12247, + "id": 12285, + "nodeType": "Return", + "src": "7979:7:43" + } + ] + } + }, + { + "assignments": [ + 12289 + ], + "declarations": [ + { + "constant": false, + "id": 12289, + "mutability": "mutable", + "name": "DODOReward", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12328, + "src": "8005:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8005:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12306, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12304, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "8173:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12300, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "8139:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12301, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "8139:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12297, + "name": "dodoPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11673, + "src": "8108:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12293, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "8069:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12294, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "8069:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12290, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "8026:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8026:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "8026:42:43", + "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": 12295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8026:64:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "8026:81:43", + "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": 12298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8026:95:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "8026:112:43", + "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": 12302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8026:129:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "8026:146:43", + "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": 12305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8026:163:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8005:184:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12307, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "8199:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12309, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "8199:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12315, + "name": "DODOReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12289, + "src": "8268:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12316, + "name": "lpSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12263, + "src": "8280:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12313, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "8247:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "8247:20:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8247:42:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12310, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "8222:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12311, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "8222:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "8222:24:43", + "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": 12318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8222:68:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8199:91:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12320, + "nodeType": "ExpressionStatement", + "src": "8199:91:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12321, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "8300:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12323, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "8300:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12324, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "8323:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8323:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8300:35:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12327, + "nodeType": "ExpressionStatement", + "src": "8300:35:43" + } + ] + }, + "documentation": null, + "functionSelector": "51eb05a6", + "id": 12329, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "updatePool", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12245, + "mutability": "mutable", + "name": "_pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12329, + "src": "7661:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7661:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7660:14:43" + }, + "returnParameters": { + "id": 12247, + "nodeType": "ParameterList", + "parameters": [], + "src": "7682:0:43" + }, + "scope": 12822, + "src": "7641:701:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12433, + "nodeType": "Block", + "src": "8518:670:43", + "statements": [ + { + "assignments": [ + 12337 + ], + "declarations": [ + { + "constant": false, + "id": 12337, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12433, + "src": "8528:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8528:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12341, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12339, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12331, + "src": "8549:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12338, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "8542:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 12340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8542:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8528:30:43" + }, + { + "assignments": [ + 12343 + ], + "declarations": [ + { + "constant": false, + "id": 12343, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12433, + "src": "8568:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12342, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "8568:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12347, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12344, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "8592:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12346, + "indexExpression": { + "argumentTypes": null, + "id": 12345, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12337, + "src": "8602:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8592:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8568:38:43" + }, + { + "assignments": [ + 12349 + ], + "declarations": [ + { + "constant": false, + "id": 12349, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12433, + "src": "8616:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 12348, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "8616:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12356, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12350, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "8640:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12352, + "indexExpression": { + "argumentTypes": null, + "id": 12351, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12337, + "src": "8649:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8640:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12355, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12353, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8654:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8654:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8640:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8616:49:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12358, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12337, + "src": "8686:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12357, + "name": "updatePool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12329, + "src": "8675:10:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8675:15:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12360, + "nodeType": "ExpressionStatement", + "src": "8675:15:43" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12361, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "8704:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12362, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "8704:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8718:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8704:15:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12386, + "nodeType": "IfStatement", + "src": "8700:216:43", + "trueBody": { + "id": 12385, + "nodeType": "Block", + "src": "8721:195:43", + "statements": [ + { + "assignments": [ + 12366 + ], + "declarations": [ + { + "constant": false, + "id": 12366, + "mutability": "mutable", + "name": "pending", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12385, + "src": "8735:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8735:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12378, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12375, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "8825:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12376, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "8825:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12369, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "8769:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12370, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "8769:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12371, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12343, + "src": "8782:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12372, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "8782:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12367, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "8753:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "8753:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8753:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "8753:54:43", + "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": 12377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8753:101:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8735:119:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12380, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8885:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8885:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 12382, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12366, + "src": "8897:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12379, + "name": "safeDODOTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12821, + "src": "8868:16:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8868:37:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12384, + "nodeType": "ExpressionStatement", + "src": "8868:37:43" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12394, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8971:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8971:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 12393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8963:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8963:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 12396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8963:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12399, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8992:4:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + ], + "id": 12398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8984:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12397, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8984:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 12400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8984:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12401, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12333, + "src": "8999:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12388, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12343, + "src": "8932:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12389, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lpToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11662, + "src": "8932:12:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12387, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "8925:6:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8925:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11354, + "src": "8925:37:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 12402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8925:82:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12403, + "nodeType": "ExpressionStatement", + "src": "8925:82:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12404, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "9017:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12406, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9017:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12410, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12333, + "src": "9047:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12407, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "9031:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12408, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9031:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "9031:15:43", + "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": 12411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9031:24:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9017:38:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12413, + "nodeType": "ExpressionStatement", + "src": "9017:38:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12414, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "9065:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12416, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "9065:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12419, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "9099:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12420, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9099:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12421, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12343, + "src": "9112:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12422, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "9112:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12417, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "9083:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "9083:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9083:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9065:68:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12425, + "nodeType": "ExpressionStatement", + "src": "9065:68:43" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12427, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9156:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9156:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 12429, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12337, + "src": "9168:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12430, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12333, + "src": "9173:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12426, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "9148:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 12431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9148:33:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12432, + "nodeType": "EmitStatement", + "src": "9143:38:43" + } + ] + }, + "documentation": null, + "functionSelector": "47e7ef24", + "id": 12434, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12331, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12434, + "src": "8476:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8476:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12333, + "mutability": "mutable", + "name": "_amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12434, + "src": "8494:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12332, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8494:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8475:35:43" + }, + "returnParameters": { + "id": 12335, + "nodeType": "ParameterList", + "parameters": [], + "src": "8518:0:43" + }, + "scope": 12822, + "src": "8459:729:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12536, + "nodeType": "Block", + "src": "9254:635:43", + "statements": [ + { + "assignments": [ + 12442 + ], + "declarations": [ + { + "constant": false, + "id": 12442, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12536, + "src": "9264:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9264:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12446, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12444, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12436, + "src": "9285:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12443, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "9278:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 12445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9278:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9264:30:43" + }, + { + "assignments": [ + 12448 + ], + "declarations": [ + { + "constant": false, + "id": 12448, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12536, + "src": "9304:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12447, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "9304:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12452, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12449, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "9328:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12451, + "indexExpression": { + "argumentTypes": null, + "id": 12450, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12442, + "src": "9338:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9328:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9304:38:43" + }, + { + "assignments": [ + 12454 + ], + "declarations": [ + { + "constant": false, + "id": 12454, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12536, + "src": "9352:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 12453, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "9352:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12461, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12455, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "9376:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12457, + "indexExpression": { + "argumentTypes": null, + "id": 12456, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12442, + "src": "9385:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9376:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12460, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12458, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9390:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9390:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9376:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9352:49:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12463, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9419:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12464, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9419:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 12465, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12438, + "src": "9434:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9419:22:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "776974686472617720746f6f206d756368", + "id": 12467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9443:19:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c36bb679920b61b680a8b24a18ff078642b393d25605ff3a7616b83483e73b38", + "typeString": "literal_string \"withdraw too much\"" + }, + "value": "withdraw too much" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c36bb679920b61b680a8b24a18ff078642b393d25605ff3a7616b83483e73b38", + "typeString": "literal_string \"withdraw too much\"" + } + ], + "id": 12462, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9411:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 12468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9411:52:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12469, + "nodeType": "ExpressionStatement", + "src": "9411:52:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12471, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12442, + "src": "9484:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12470, + "name": "updatePool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12329, + "src": "9473:10:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9473:15:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12473, + "nodeType": "ExpressionStatement", + "src": "9473:15:43" + }, + { + "assignments": [ + 12475 + ], + "declarations": [ + { + "constant": false, + "id": 12475, + "mutability": "mutable", + "name": "pending", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12536, + "src": "9498:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9498:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12487, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12484, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9571:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12485, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "9571:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12478, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9532:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12479, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9532:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12480, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12448, + "src": "9545:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12481, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "9545:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12476, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "9516:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "9516:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9516:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "9516:54:43", + "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": 12486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9516:71:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9498:89:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12489, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9614:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9614:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 12491, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12475, + "src": "9626:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12488, + "name": "safeDODOTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12821, + "src": "9597:16:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9597:37:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12493, + "nodeType": "ExpressionStatement", + "src": "9597:37:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12494, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9644:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9644:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12500, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12438, + "src": "9674:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12497, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9658:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12498, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9658:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "9658:15:43", + "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": 12501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9658:24:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9644:38:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12503, + "nodeType": "ExpressionStatement", + "src": "9644:38:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12504, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9692:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12506, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "9692:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12509, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9726:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9726:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12511, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12448, + "src": "9739:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12512, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "9739:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12507, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "9710:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "9710:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9710:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9692:68:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12515, + "nodeType": "ExpressionStatement", + "src": "9692:68:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12523, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9812:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9812:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 12522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9804:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12521, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9804:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 12525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9804:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12526, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12438, + "src": "9825:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12517, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12448, + "src": "9777:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lpToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11662, + "src": "9777:12:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12516, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9770:6:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9770:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "9770:33:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 12527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9770:63:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12528, + "nodeType": "ExpressionStatement", + "src": "9770:63:43" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12530, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9857:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9857:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 12532, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12442, + "src": "9869:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12533, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12438, + "src": "9874:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12529, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11711, + "src": "9848:8:43", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 12534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9848:34:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12535, + "nodeType": "EmitStatement", + "src": "9843:39:43" + } + ] + }, + "documentation": null, + "functionSelector": "f3fef3a3", + "id": 12537, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12436, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12537, + "src": "9212:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12435, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9212:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12438, + "mutability": "mutable", + "name": "_amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12537, + "src": "9230:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9230:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9211:35:43" + }, + "returnParameters": { + "id": 12440, + "nodeType": "ParameterList", + "parameters": [], + "src": "9254:0:43" + }, + "scope": 12822, + "src": "9194:695:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12555, + "nodeType": "Block", + "src": "9941:110:43", + "statements": [ + { + "assignments": [ + 12543 + ], + "declarations": [ + { + "constant": false, + "id": 12543, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12555, + "src": "9951:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9951:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12545, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12539, + "src": "9986:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12546, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9996:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9996:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 12544, + "name": "getUserLpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11818, + "src": "9969:16:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 12548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9969:38:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9951:56:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12551, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12539, + "src": "10026:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12552, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12543, + "src": "10036:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12550, + "name": "withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12537, + "src": "10017:8:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:27:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12554, + "nodeType": "ExpressionStatement", + "src": "10017:27:43" + } + ] + }, + "documentation": null, + "functionSelector": "fa09e630", + "id": 12556, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawAll", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12539, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12556, + "src": "9916:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12538, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9916:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9915:18:43" + }, + "returnParameters": { + "id": 12541, + "nodeType": "ParameterList", + "parameters": [], + "src": "9941:0:43" + }, + "scope": 12822, + "src": "9895:156:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12608, + "nodeType": "Block", + "src": "10171:285:43", + "statements": [ + { + "assignments": [ + 12562 + ], + "declarations": [ + { + "constant": false, + "id": 12562, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12608, + "src": "10181:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10181:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12566, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12564, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12558, + "src": "10202:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12563, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "10195:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 12565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10195:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10181:30:43" + }, + { + "assignments": [ + 12568 + ], + "declarations": [ + { + "constant": false, + "id": 12568, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12608, + "src": "10221:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12567, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "10221:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12572, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12569, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "10245:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12571, + "indexExpression": { + "argumentTypes": null, + "id": 12570, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12562, + "src": "10255:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10245:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10221:38:43" + }, + { + "assignments": [ + 12574 + ], + "declarations": [ + { + "constant": false, + "id": 12574, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12608, + "src": "10269:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 12573, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "10269:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12581, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12575, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "10293:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12577, + "indexExpression": { + "argumentTypes": null, + "id": 12576, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12562, + "src": "10302:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10293:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12580, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12578, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10307:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10307:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10293:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10269:49:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10370:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10370:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 12588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10362:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10362:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 12591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10362:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12592, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12574, + "src": "10383:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12593, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "10383:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12583, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12568, + "src": "10335:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12584, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lpToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11662, + "src": "10335:12:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12582, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10328:6:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10328:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "10328:33:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 12594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10328:67:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12595, + "nodeType": "ExpressionStatement", + "src": "10328:67:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12596, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12574, + "src": "10405:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12598, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "10405:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 12599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10419:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10405:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12601, + "nodeType": "ExpressionStatement", + "src": "10405:15:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12602, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12574, + "src": "10430:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "10430:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 12605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10448:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10430:19:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12607, + "nodeType": "ExpressionStatement", + "src": "10430:19:43" + } + ] + }, + "documentation": null, + "functionSelector": "6ff1c9bc", + "id": 12609, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "emergencyWithdraw", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12558, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12609, + "src": "10146:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12557, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10146:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10145:18:43" + }, + "returnParameters": { + "id": 12560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10171:0:43" + }, + "scope": 12822, + "src": "10119:337:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12690, + "nodeType": "Block", + "src": "10502:532:43", + "statements": [ + { + "assignments": [ + 12615 + ], + "declarations": [ + { + "constant": false, + "id": 12615, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12690, + "src": "10512:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10512:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12619, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12617, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12611, + "src": "10533:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12616, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "10526:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 12618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10526:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10512:30:43" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12620, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "10556:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12622, + "indexExpression": { + "argumentTypes": null, + "id": 12621, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "10565:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10556:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12625, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12623, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10570:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10570:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10556:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "id": 12626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "10556:32:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10592:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10556:37:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12629, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "10597:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12631, + "indexExpression": { + "argumentTypes": null, + "id": 12630, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "10607:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10597:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "id": 12632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "10597:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10626:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10597:30:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10556:71:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12638, + "nodeType": "IfStatement", + "src": "10552:120:43", + "trueBody": { + "id": 12637, + "nodeType": "Block", + "src": "10629:43:43", + "statements": [ + { + "expression": null, + "functionReturnParameters": 12613, + "id": 12636, + "nodeType": "Return", + "src": "10643:7:43" + } + ] + } + }, + { + "assignments": [ + 12640 + ], + "declarations": [ + { + "constant": false, + "id": 12640, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12690, + "src": "10681:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12639, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "10681:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12644, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12641, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "10705:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12643, + "indexExpression": { + "argumentTypes": null, + "id": 12642, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "10715:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10705:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10681:38:43" + }, + { + "assignments": [ + 12646 + ], + "declarations": [ + { + "constant": false, + "id": 12646, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12690, + "src": "10729:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 12645, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "10729:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12653, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12647, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "10753:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12649, + "indexExpression": { + "argumentTypes": null, + "id": 12648, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "10762:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10753:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12652, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12650, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10767:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10767:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10753:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10729:49:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12655, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "10799:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12654, + "name": "updatePool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12329, + "src": "10788:10:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10788:15:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12657, + "nodeType": "ExpressionStatement", + "src": "10788:15:43" + }, + { + "assignments": [ + 12659 + ], + "declarations": [ + { + "constant": false, + "id": 12659, + "mutability": "mutable", + "name": "pending", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12690, + "src": "10813:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10813:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12671, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12668, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12646, + "src": "10886:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12669, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "10886:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12662, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12646, + "src": "10847:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12663, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "10847:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12664, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12640, + "src": "10860:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12665, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "10860:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12660, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "10831:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "10831:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10831:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "10831:54:43", + "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": 12670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10831:71:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10813:89:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12672, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12646, + "src": "10912:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12674, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "10912:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12677, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12646, + "src": "10946:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12678, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "10946:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12679, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12640, + "src": "10959:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12680, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "10959:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12675, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "10930:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "10930:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10930:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10912:68:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12683, + "nodeType": "ExpressionStatement", + "src": "10912:68:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12685, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11007:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11007:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 12687, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12659, + "src": "11019:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12684, + "name": "safeDODOTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12821, + "src": "10990:16:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10990:37:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12689, + "nodeType": "ExpressionStatement", + "src": "10990:37:43" + } + ] + }, + "documentation": null, + "functionSelector": "1e83409a", + "id": 12691, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12611, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12691, + "src": "10477:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10477:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10476:18:43" + }, + "returnParameters": { + "id": 12613, + "nodeType": "ParameterList", + "parameters": [], + "src": "10502:0:43" + }, + "scope": 12822, + "src": "10462:572:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12788, + "nodeType": "Block", + "src": "11067:696:43", + "statements": [ + { + "assignments": [ + 12695 + ], + "declarations": [ + { + "constant": false, + "id": 12695, + "mutability": "mutable", + "name": "length", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12788, + "src": "11077:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11077:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12698, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12696, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "11094:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11094:16:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11077:33:43" + }, + { + "assignments": [ + 12700 + ], + "declarations": [ + { + "constant": false, + "id": 12700, + "mutability": "mutable", + "name": "pending", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12788, + "src": "11120:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11120:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12702, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 12701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11138:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11120:19:43" + }, + { + "body": { + "id": 12780, + "nodeType": "Block", + "src": "11192:518:43", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12713, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "11210:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12715, + "indexExpression": { + "argumentTypes": null, + "id": 12714, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11219:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11210:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12718, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12716, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11224:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11224:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11210:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "id": 12719, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "11210:32:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11246:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11210:37:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12722, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "11251:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12724, + "indexExpression": { + "argumentTypes": null, + "id": 12723, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11261:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11251:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "id": 12725, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "11251:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11280:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11251:30:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11210:71:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12731, + "nodeType": "IfStatement", + "src": "11206:130:43", + "trueBody": { + "id": 12730, + "nodeType": "Block", + "src": "11283:53:43", + "statements": [ + { + "id": 12729, + "nodeType": "Continue", + "src": "11301:8:43" + } + ] + } + }, + { + "assignments": [ + 12733 + ], + "declarations": [ + { + "constant": false, + "id": 12733, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12780, + "src": "11349:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12732, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "11349:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12737, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12734, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "11373:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12736, + "indexExpression": { + "argumentTypes": null, + "id": 12735, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11383:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11373:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11349:38:43" + }, + { + "assignments": [ + 12739 + ], + "declarations": [ + { + "constant": false, + "id": 12739, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12780, + "src": "11401:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 12738, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "11401:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12746, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12740, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "11425:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12742, + "indexExpression": { + "argumentTypes": null, + "id": 12741, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11434:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11425:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12745, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12743, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11439:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11439:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11425:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11401:49:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12748, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11475:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12747, + "name": "updatePool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12329, + "src": "11464:10:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11464:15:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12750, + "nodeType": "ExpressionStatement", + "src": "11464:15:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12751, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12700, + "src": "11493:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12762, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12739, + "src": "11587:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12763, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "11587:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12756, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12739, + "src": "11548:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12757, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "11548:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12758, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12733, + "src": "11561:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12759, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "11561:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12754, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "11532:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "11532:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11532:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "11532:54:43", + "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": 12764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11532:71:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12752, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12700, + "src": "11503:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "11503:11:43", + "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": 12765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11503:114:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11493:124:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12767, + "nodeType": "ExpressionStatement", + "src": "11493:124:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12768, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12739, + "src": "11631:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12770, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "11631:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12773, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12739, + "src": "11665:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12774, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "11665:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12775, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12733, + "src": "11678:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12776, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "11678:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12771, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "11649:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "11649:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11649:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11631:68:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12779, + "nodeType": "ExpressionStatement", + "src": "11631:68:43" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12707, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11171:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 12708, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12695, + "src": "11177:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11171:12:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12781, + "initializationExpression": { + "assignments": [ + 12704 + ], + "declarations": [ + { + "constant": false, + "id": 12704, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12781, + "src": "11154:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11154:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12706, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 12705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11168:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11154:15:43" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 12711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "11185:5:43", + "subExpression": { + "argumentTypes": null, + "id": 12710, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11187:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12712, + "nodeType": "ExpressionStatement", + "src": "11185:5:43" + }, + "nodeType": "ForStatement", + "src": "11149:561:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12783, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11736:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11736:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 12785, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12700, + "src": "11748:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12782, + "name": "safeDODOTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12821, + "src": "11719:16:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11719:37:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12787, + "nodeType": "ExpressionStatement", + "src": "11719:37:43" + } + ] + }, + "documentation": null, + "functionSelector": "d1058e59", + "id": 12789, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claimAll", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12692, + "nodeType": "ParameterList", + "parameters": [], + "src": "11057:2:43" + }, + "returnParameters": { + "id": 12693, + "nodeType": "ParameterList", + "parameters": [], + "src": "11067:0:43" + }, + "scope": 12822, + "src": "11040:723:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12820, + "nodeType": "Block", + "src": "11869:169:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12800, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12791, + "src": "11920:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12801, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12793, + "src": "11925:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12797, + "name": "dodoRewardVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11671, + "src": "11896:15:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12796, + "name": "IDODORewardVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12962, + "src": "11879:16:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODORewardVault_$12962_$", + "typeString": "type(contract IDODORewardVault)" + } + }, + "id": 12798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11879:33:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODORewardVault_$12962", + "typeString": "contract IDODORewardVault" + } + }, + "id": 12799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "reward", + "nodeType": "MemberAccess", + "referencedDeclaration": 12961, + "src": "11879:40:43", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 12802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11879:54:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12803, + "nodeType": "ExpressionStatement", + "src": "11879:54:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12804, + "name": "realizedReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11690, + "src": "11943:14:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12806, + "indexExpression": { + "argumentTypes": null, + "id": 12805, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12791, + "src": "11958:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11943:19:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12811, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12793, + "src": "11989:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12807, + "name": "realizedReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11690, + "src": "11965:14:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12809, + "indexExpression": { + "argumentTypes": null, + "id": 12808, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12791, + "src": "11980:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11965:19:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "11965:23:43", + "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": 12812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11965:32:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11943:54:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12814, + "nodeType": "ExpressionStatement", + "src": "11943:54:43" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12816, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12791, + "src": "12018:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12817, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12793, + "src": "12023:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12815, + "name": "Claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11717, + "src": "12012:5:43", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12012:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12819, + "nodeType": "EmitStatement", + "src": "12007:24:43" + } + ] + }, + "documentation": null, + "id": 12821, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeDODOTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12791, + "mutability": "mutable", + "name": "_to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12821, + "src": "11830:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12790, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11830:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12793, + "mutability": "mutable", + "name": "_amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12821, + "src": "11843:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11843:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11829:30:43" + }, + "returnParameters": { + "id": 12795, + "nodeType": "ParameterList", + "parameters": [], + "src": "11869:0:43" + }, + "scope": 12822, + "src": "11804:234:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 12823, + "src": "444:11596:43" + } + ], + "src": "78:11963:43" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMine.sol", + "exportedSymbols": { + "DODOMine": [ + 12822 + ] + }, + "id": 12823, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11633, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:43" + }, + { + "id": 11634, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:43" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 11636, + "nodeType": "ImportDirective", + "scope": 12823, + "sourceUnit": 11272, + "src": "136:43:43", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11635, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 11638, + "nodeType": "ImportDirective", + "scope": 12823, + "sourceUnit": 11079, + "src": "180:51:43", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11637, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "188:11:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "../lib/SafeERC20.sol", + "id": 11640, + "nodeType": "ImportDirective", + "scope": 12823, + "sourceUnit": 11441, + "src": "232:47:43", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11639, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "240:9:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 11642, + "nodeType": "ImportDirective", + "scope": 12823, + "sourceUnit": 11624, + "src": "280:45:43", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11641, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "288:8:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 11644, + "nodeType": "ImportDirective", + "scope": 12823, + "sourceUnit": 10608, + "src": "326:42:43", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11643, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "334:6:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol", + "file": "./DODORewardVault.sol", + "id": 11647, + "nodeType": "ImportDirective", + "scope": 12823, + "sourceUnit": 12999, + "src": "369:72:43", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11645, + "name": "IDODORewardVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "377:16:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + }, + { + "foreign": { + "argumentTypes": null, + "id": 11646, + "name": "DODORewardVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "395:15:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 11648, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "465:7:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 11649, + "nodeType": "InheritanceSpecifier", + "src": "465:7:43" + } + ], + "contractDependencies": [ + 11271, + 12998 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12822, + "linearizedBaseContracts": [ + 12822, + 11271 + ], + "name": "DODOMine", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 11652, + "libraryName": { + "contractScope": null, + "id": 11650, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "485:8:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "479:27:43", + "typeName": { + "id": 11651, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "498:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 11655, + "libraryName": { + "contractScope": null, + "id": 11653, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "517:9:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "511:27:43", + "typeName": { + "contractScope": null, + "id": 11654, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "531:6:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "canonicalName": "DODOMine.UserInfo", + "id": 11660, + "members": [ + { + "constant": false, + "id": 11657, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11660, + "src": "596:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "596:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11659, + "mutability": "mutable", + "name": "rewardDebt", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11660, + "src": "665:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "665:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "UserInfo", + "nodeType": "StructDefinition", + "scope": 12822, + "src": "570:777:43", + "visibility": "public" + }, + { + "canonicalName": "DODOMine.PoolInfo", + "id": 11669, + "members": [ + { + "constant": false, + "id": 11662, + "mutability": "mutable", + "name": "lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11669, + "src": "1405:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1405:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11664, + "mutability": "mutable", + "name": "allocPoint", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11669, + "src": "1463:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1463:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11666, + "mutability": "mutable", + "name": "lastRewardBlock", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11669, + "src": "1575:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1575:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11668, + "mutability": "mutable", + "name": "accDODOPerShare", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11669, + "src": "1661:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1661:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "PoolInfo", + "nodeType": "StructDefinition", + "scope": 12822, + "src": "1379:367:43", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "9599af13", + "id": 11671, + "mutability": "mutable", + "name": "dodoRewardVault", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "1752:30:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1752:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "8af70336", + "id": 11673, + "mutability": "mutable", + "name": "dodoPerBlock", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "1788:27:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1788:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "689d84e4", + "id": 11676, + "mutability": "mutable", + "name": "poolInfos", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "1848:27:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 11674, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "1848:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "id": 11675, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1848:10:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage_ptr", + "typeString": "struct DODOMine.PoolInfo[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3d16433e", + "id": 11680, + "mutability": "mutable", + "name": "lpTokenRegistry", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "1881:50:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 11679, + "keyType": { + "id": 11677, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1889:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1881:27:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 11678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1900:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "93f1a40b", + "id": 11686, + "mutability": "mutable", + "name": "userInfo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "1986:64:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo))" + }, + "typeName": { + "id": 11685, + "keyType": { + "id": 11681, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1994:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1986:48:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo))" + }, + "valueType": { + "id": 11684, + "keyType": { + "id": 11682, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2013:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2005:28:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo)" + }, + "valueType": { + "contractScope": null, + "id": 11683, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "2024:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ec83a76a", + "id": 11690, + "mutability": "mutable", + "name": "realizedReward", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "2056:49:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 11689, + "keyType": { + "id": 11687, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2064:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2056:27:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 11688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2075:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "17caf6f1", + "id": 11693, + "mutability": "mutable", + "name": "totalAllocPoint", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "2199:34:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11691, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2199:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 11692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2232:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "48cd4cb1", + "id": 11695, + "mutability": "mutable", + "name": "startBlock", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12822, + "src": "2288:25:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2288:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 11703, + "name": "Deposit", + "nodeType": "EventDefinition", + "parameters": { + "id": 11702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11697, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11703, + "src": "2334:20:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11696, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2334:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11699, + "indexed": true, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11703, + "src": "2356:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2356:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11701, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11703, + "src": "2377:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2377:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2333:59:43" + }, + "src": "2320:73:43" + }, + { + "anonymous": false, + "documentation": null, + "id": 11711, + "name": "Withdraw", + "nodeType": "EventDefinition", + "parameters": { + "id": 11710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11705, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11711, + "src": "2413:20:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2413:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11707, + "indexed": true, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11711, + "src": "2435:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2435:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11709, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11711, + "src": "2456:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11708, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2456:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2412:59:43" + }, + "src": "2398:74:43" + }, + { + "anonymous": false, + "documentation": null, + "id": 11717, + "name": "Claim", + "nodeType": "EventDefinition", + "parameters": { + "id": 11716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11713, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11717, + "src": "2489:20:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2489:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11715, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11717, + "src": "2511:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2511:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2488:38:43" + }, + "src": "2477:50:43" + }, + { + "body": { + "id": 11738, + "nodeType": "Block", + "src": "2593:109:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11724, + "name": "dodoRewardVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11671, + "src": "2603:15:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11729, + "name": "_dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11719, + "src": "2649:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2629:19:43", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DODORewardVault_$12998_$", + "typeString": "function (address) returns (contract DODORewardVault)" + }, + "typeName": { + "contractScope": null, + "id": 11727, + "name": "DODORewardVault", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 12998, + "src": "2633:15:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODORewardVault_$12998", + "typeString": "contract DODORewardVault" + } + } + }, + "id": 11730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2629:31:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODORewardVault_$12998", + "typeString": "contract DODORewardVault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODORewardVault_$12998", + "typeString": "contract DODORewardVault" + } + ], + "id": 11726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2621:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2621:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2621:40:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2603:58:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11733, + "nodeType": "ExpressionStatement", + "src": "2603:58:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 11736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11734, + "name": "startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11695, + "src": "2671:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11735, + "name": "_startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11721, + "src": "2684:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2671:24:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11737, + "nodeType": "ExpressionStatement", + "src": "2671:24:43" + } + ] + }, + "documentation": null, + "id": 11739, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11719, + "mutability": "mutable", + "name": "_dodoToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11739, + "src": "2545:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2545:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11721, + "mutability": "mutable", + "name": "_startBlock", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11739, + "src": "2565:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2565:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2544:41:43" + }, + "returnParameters": { + "id": 11723, + "nodeType": "ParameterList", + "parameters": [], + "src": "2593:0:43" + }, + "scope": 12822, + "src": "2533:169:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 11753, + "nodeType": "Block", + "src": "2791:87:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11744, + "name": "lpTokenRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11680, + "src": "2809:15:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 11746, + "indexExpression": { + "argumentTypes": null, + "id": 11745, + "name": "lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11741, + "src": "2825:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2809:24:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2836:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2809:28:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4c5020546f6b656e204e6f74204578697374", + "id": 11749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2839:20:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d66678012b5affca3d9727e8b7ea6591ac507d36b508c35b6405e4b76dfc67ac", + "typeString": "literal_string \"LP Token Not Exist\"" + }, + "value": "LP Token Not Exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d66678012b5affca3d9727e8b7ea6591ac507d36b508c35b6405e4b76dfc67ac", + "typeString": "literal_string \"LP Token Not Exist\"" + } + ], + "id": 11743, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2801:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2801:59:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11751, + "nodeType": "ExpressionStatement", + "src": "2801:59:43" + }, + { + "id": 11752, + "nodeType": "PlaceholderStatement", + "src": "2870:1:43" + } + ] + }, + "documentation": null, + "id": 11754, + "name": "lpTokenExist", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 11742, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11741, + "mutability": "mutable", + "name": "lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11754, + "src": "2774:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11740, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2774:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2773:17:43" + }, + "src": "2752:126:43", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11768, + "nodeType": "Block", + "src": "2926:92:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11759, + "name": "lpTokenRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11680, + "src": "2944:15:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 11761, + "indexExpression": { + "argumentTypes": null, + "id": 11760, + "name": "lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11756, + "src": "2960:7:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2944:24:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2972:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2944:29:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4c5020546f6b656e20416c7265616479204578697374", + "id": 11764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2975:24:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e6251c7bee25a31a23d0da97ca10d75b92968e9f3bcef7a6fc9dde9d1a7e1078", + "typeString": "literal_string \"LP Token Already Exist\"" + }, + "value": "LP Token Already Exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e6251c7bee25a31a23d0da97ca10d75b92968e9f3bcef7a6fc9dde9d1a7e1078", + "typeString": "literal_string \"LP Token Already Exist\"" + } + ], + "id": 11758, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2936:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2936:64:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11766, + "nodeType": "ExpressionStatement", + "src": "2936:64:43" + }, + { + "id": 11767, + "nodeType": "PlaceholderStatement", + "src": "3010:1:43" + } + ] + }, + "documentation": null, + "id": 11769, + "name": "lpTokenNotExist", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 11757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11756, + "mutability": "mutable", + "name": "lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11769, + "src": "2909:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11755, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2909:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2908:17:43" + }, + "src": "2884:134:43", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11777, + "nodeType": "Block", + "src": "3119:40:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11774, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "3136:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 11775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3136:16:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11773, + "id": 11776, + "nodeType": "Return", + "src": "3129:23:43" + } + ] + }, + "documentation": null, + "functionSelector": "081e3eda", + "id": 11778, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poolLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11770, + "nodeType": "ParameterList", + "parameters": [], + "src": "3084:2:43" + }, + "returnParameters": { + "id": 11773, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11772, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11778, + "src": "3110:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3110:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3109:9:43" + }, + "scope": 12822, + "src": "3065:94:43", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 11794, + "nodeType": "Block", + "src": "3252:53:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11788, + "name": "lpTokenRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11680, + "src": "3269:15:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 11790, + "indexExpression": { + "argumentTypes": null, + "id": 11789, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11780, + "src": "3285:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3269:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 11791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3297:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3269:29:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11787, + "id": 11793, + "nodeType": "Return", + "src": "3262:36:43" + } + ] + }, + "documentation": null, + "functionSelector": "43b55f35", + "id": 11795, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 11783, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11780, + "src": "3224:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 11784, + "modifierName": { + "argumentTypes": null, + "id": 11782, + "name": "lpTokenExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11754, + "src": "3211:12:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3211:22:43" + } + ], + "name": "getPid", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11781, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11780, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11795, + "src": "3181:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11779, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3181:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3180:18:43" + }, + "returnParameters": { + "id": 11787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11786, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11795, + "src": "3243:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3243:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3242:9:43" + }, + "scope": 12822, + "src": "3165:140:43", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 11817, + "nodeType": "Block", + "src": "3400:91:43", + "statements": [ + { + "assignments": [ + 11805 + ], + "declarations": [ + { + "constant": false, + "id": 11805, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11817, + "src": "3410:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11804, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3410:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11809, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11807, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11797, + "src": "3431:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11806, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "3424:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 11808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3424:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3410:30:43" + }, + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11810, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "3457:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 11812, + "indexExpression": { + "argumentTypes": null, + "id": 11811, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11805, + "src": "3466:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3457:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 11814, + "indexExpression": { + "argumentTypes": null, + "id": 11813, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11799, + "src": "3471:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3457:20:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "id": 11815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "3457:27:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11803, + "id": 11816, + "nodeType": "Return", + "src": "3450:34:43" + } + ] + }, + "documentation": null, + "functionSelector": "19a78f55", + "id": 11818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUserLpBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11797, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11818, + "src": "3337:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3337:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11799, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11818, + "src": "3355:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3355:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3336:33:43" + }, + "returnParameters": { + "id": 11803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11802, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11818, + "src": "3391:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3391:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3390:9:43" + }, + "scope": 12822, + "src": "3311:180:43", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 11874, + "nodeType": "Block", + "src": "3689:512:43", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 11832, + "name": "_withUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11824, + "src": "3703:11:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11837, + "nodeType": "IfStatement", + "src": "3699:59:43", + "trueBody": { + "id": 11836, + "nodeType": "Block", + "src": "3716:42:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 11833, + "name": "massUpdatePools", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12243, + "src": "3730:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 11834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3730:17:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11835, + "nodeType": "ExpressionStatement", + "src": "3730:17:43" + } + ] + } + }, + { + "assignments": [ + 11839 + ], + "declarations": [ + { + "constant": false, + "id": 11839, + "mutability": "mutable", + "name": "lastRewardBlock", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11874, + "src": "3767:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11838, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3767:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11848, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11840, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "3793:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 11841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3793:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 11842, + "name": "startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11695, + "src": "3808:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3793:25:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 11846, + "name": "startBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11695, + "src": "3836:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "3793:53:43", + "trueExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11844, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "3821:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 11845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3821:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3767:79:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 11854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11849, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "3856:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11852, + "name": "_allocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11822, + "src": "3894:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11850, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "3874:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3874:19:43", + "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": 11853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3874:32:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3856:50:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11855, + "nodeType": "ExpressionStatement", + "src": "3856:50:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11860, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11820, + "src": "3980:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11861, + "name": "_allocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11822, + "src": "4018:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11862, + "name": "lastRewardBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11839, + "src": "4064:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 11863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4114:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11859, + "name": "PoolInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11669, + "src": "3944:8:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_PoolInfo_$11669_storage_ptr_$", + "typeString": "type(struct DODOMine.PoolInfo storage pointer)" + } + }, + "id": 11864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "lpToken", + "allocPoint", + "lastRewardBlock", + "accDODOPerShare" + ], + "nodeType": "FunctionCall", + "src": "3944:186:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_memory_ptr", + "typeString": "struct DODOMine.PoolInfo memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_PoolInfo_$11669_memory_ptr", + "typeString": "struct DODOMine.PoolInfo memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 11856, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "3916:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 11858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3916:14:43", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_PoolInfo_$11669_storage_$returns$__$", + "typeString": "function (struct DODOMine.PoolInfo storage ref)" + } + }, + "id": 11865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3916:224:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11866, + "nodeType": "ExpressionStatement", + "src": "3916:224:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 11872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11867, + "name": "lpTokenRegistry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11680, + "src": "4150:15:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 11869, + "indexExpression": { + "argumentTypes": null, + "id": 11868, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11820, + "src": "4166:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4150:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11870, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "4178:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 11871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4178:16:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4150:44:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11873, + "nodeType": "ExpressionStatement", + "src": "4150:44:43" + } + ] + }, + "documentation": null, + "functionSelector": "bea006e0", + "id": 11875, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 11827, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11820, + "src": "3669:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 11828, + "modifierName": { + "argumentTypes": null, + "id": 11826, + "name": "lpTokenNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11769, + "src": "3653:15:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3653:25:43" + }, + { + "arguments": null, + "id": 11830, + "modifierName": { + "argumentTypes": null, + "id": 11829, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "3679:9:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3679:9:43" + } + ], + "name": "addLpToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11820, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11875, + "src": "3568:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11819, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3568:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11822, + "mutability": "mutable", + "name": "_allocPoint", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11875, + "src": "3594:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11821, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3594:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11824, + "mutability": "mutable", + "name": "_withUpdate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11875, + "src": "3623:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11823, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3623:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3558:87:43" + }, + "returnParameters": { + "id": 11831, + "nodeType": "ParameterList", + "parameters": [], + "src": "3689:0:43" + }, + "scope": 12822, + "src": "3539:662:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 11918, + "nodeType": "Block", + "src": "4331:255:43", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 11886, + "name": "_withUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11881, + "src": "4345:11:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11891, + "nodeType": "IfStatement", + "src": "4341:59:43", + "trueBody": { + "id": 11890, + "nodeType": "Block", + "src": "4358:42:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 11887, + "name": "massUpdatePools", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12243, + "src": "4372:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 11888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4372:17:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11889, + "nodeType": "ExpressionStatement", + "src": "4372:17:43" + } + ] + } + }, + { + "assignments": [ + 11893 + ], + "declarations": [ + { + "constant": false, + "id": 11893, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11918, + "src": "4409:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11892, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4409:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11897, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11895, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11877, + "src": "4430:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11894, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "4423:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 11896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4423:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4409:30:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 11909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11898, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "4449:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11907, + "name": "_allocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11879, + "src": "4518:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11901, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "4487:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 11903, + "indexExpression": { + "argumentTypes": null, + "id": 11902, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11893, + "src": "4497:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4487:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "id": 11904, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "4487:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11899, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "4467:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4467:19:43", + "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": 11905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4467:46:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4467:50:43", + "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": 11908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4467:63:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4449:81:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11910, + "nodeType": "ExpressionStatement", + "src": "4449:81:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 11916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11911, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "4540:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 11913, + "indexExpression": { + "argumentTypes": null, + "id": 11912, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11893, + "src": "4550:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4540:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "id": 11914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "4540:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11915, + "name": "_allocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11879, + "src": "4568:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4540:39:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11917, + "nodeType": "ExpressionStatement", + "src": "4540:39:43" + } + ] + }, + "documentation": null, + "functionSelector": "34ea5389", + "id": 11919, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 11884, + "modifierName": { + "argumentTypes": null, + "id": 11883, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "4321:9:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4321:9:43" + } + ], + "name": "setLpToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11882, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11877, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11919, + "src": "4236:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11876, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4236:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11879, + "mutability": "mutable", + "name": "_allocPoint", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11919, + "src": "4262:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4262:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11881, + "mutability": "mutable", + "name": "_withUpdate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11919, + "src": "4291:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11880, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4291:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4226:87:43" + }, + "returnParameters": { + "id": 11885, + "nodeType": "ParameterList", + "parameters": [], + "src": "4331:0:43" + }, + "scope": 12822, + "src": "4207:379:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 11938, + "nodeType": "Block", + "src": "4671:113:43", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 11928, + "name": "_withUpdate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11923, + "src": "4685:11:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11933, + "nodeType": "IfStatement", + "src": "4681:59:43", + "trueBody": { + "id": 11932, + "nodeType": "Block", + "src": "4698:42:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 11929, + "name": "massUpdatePools", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12243, + "src": "4712:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 11930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4712:17:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11931, + "nodeType": "ExpressionStatement", + "src": "4712:17:43" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 11936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11934, + "name": "dodoPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11673, + "src": "4749:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11935, + "name": "_dodoPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11921, + "src": "4764:13:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4749:28:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11937, + "nodeType": "ExpressionStatement", + "src": "4749:28:43" + } + ] + }, + "documentation": null, + "functionSelector": "7f10179f", + "id": 11939, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 11926, + "modifierName": { + "argumentTypes": null, + "id": 11925, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "4661:9:43", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4661:9:43" + } + ], + "name": "setReward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11924, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11921, + "mutability": "mutable", + "name": "_dodoPerBlock", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11939, + "src": "4611:21:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11920, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4611:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11923, + "mutability": "mutable", + "name": "_withUpdate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11939, + "src": "4634:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11922, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4634:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4610:41:43" + }, + "returnParameters": { + "id": 11927, + "nodeType": "ParameterList", + "parameters": [], + "src": "4671:0:43" + }, + "scope": 12822, + "src": "4592:192:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 12038, + "nodeType": "Block", + "src": "4928:753:43", + "statements": [ + { + "assignments": [ + 11949 + ], + "declarations": [ + { + "constant": false, + "id": 11949, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12038, + "src": "4938:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4938:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11953, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11951, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11941, + "src": "4959:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11950, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "4952:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 11952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4952:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4938:30:43" + }, + { + "assignments": [ + 11955 + ], + "declarations": [ + { + "constant": false, + "id": 11955, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12038, + "src": "4978:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 11954, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "4978:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11959, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11956, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "5002:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 11958, + "indexExpression": { + "argumentTypes": null, + "id": 11957, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11949, + "src": "5012:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5002:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4978:38:43" + }, + { + "assignments": [ + 11961 + ], + "declarations": [ + { + "constant": false, + "id": 11961, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12038, + "src": "5026:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 11960, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "5026:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11967, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 11962, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "5050:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 11964, + "indexExpression": { + "argumentTypes": null, + "id": 11963, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11949, + "src": "5059:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5050:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 11966, + "indexExpression": { + "argumentTypes": null, + "id": 11965, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11943, + "src": "5064:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5050:20:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5026:44:43" + }, + { + "assignments": [ + 11969 + ], + "declarations": [ + { + "constant": false, + "id": 11969, + "mutability": "mutable", + "name": "accDODOPerShare", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12038, + "src": "5080:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5080:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11972, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11970, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "5106:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 11971, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "5106:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5080:46:43" + }, + { + "assignments": [ + 11974 + ], + "declarations": [ + { + "constant": false, + "id": 11974, + "mutability": "mutable", + "name": "lpSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12038, + "src": "5136:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11973, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5136:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11985, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11982, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5194:4:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + ], + "id": 11981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5186:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11980, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5186:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5186:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11976, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "5162:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 11977, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lpToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11662, + "src": "5162:12:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11975, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5155:6:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 11978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5155:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 11979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "5155:30:43", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 11984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5155:45:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5136:64:43" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 11994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11986, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5214:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 11987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5214:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11988, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "5229:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 11989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "5229:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5214:35:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11991, + "name": "lpSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11974, + "src": "5253:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5265:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5253:13:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5214:52:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12026, + "nodeType": "IfStatement", + "src": "5210:382:43", + "trueBody": { + "id": 12025, + "nodeType": "Block", + "src": "5268:324:43", + "statements": [ + { + "assignments": [ + 11996 + ], + "declarations": [ + { + "constant": false, + "id": 11996, + "mutability": "mutable", + "name": "DODOReward", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12025, + "src": "5282:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11995, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5282:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12013, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12011, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "5470:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12007, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "5432:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12008, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "5432:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12004, + "name": "dodoPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11673, + "src": "5397:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12000, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11955, + "src": "5354:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12001, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "5354:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11997, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5303:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 11998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5303:29:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5303:50:43", + "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": 12002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5303:72:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5303:93:43", + "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": 12005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5303:107:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5303:128:43", + "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": 12009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5303:145:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "5303:166:43", + "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": 12012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5303:183:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5282:204:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12014, + "name": "accDODOPerShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11969, + "src": "5500:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12019, + "name": "DODOReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11996, + "src": "5559:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12020, + "name": "lpSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11974, + "src": "5571:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12017, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5538:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "5538:20:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5538:42:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12015, + "name": "accDODOPerShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11969, + "src": "5518:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5518:19:43", + "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": 12022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5518:63:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5500:81:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12024, + "nodeType": "ExpressionStatement", + "src": "5500:81:43" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12034, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11961, + "src": "5658:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "5658:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12029, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11961, + "src": "5624:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12030, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "5624:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12031, + "name": "accDODOPerShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11969, + "src": "5637:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12027, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5608:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "5608:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5608:45:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5608:49:43", + "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": 12036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5608:66:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11947, + "id": 12037, + "nodeType": "Return", + "src": "5601:73:43" + } + ] + }, + "documentation": null, + "functionSelector": "fe0f3a13", + "id": 12039, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPendingReward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11941, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12039, + "src": "4863:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11940, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4863:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11943, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12039, + "src": "4881:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11942, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4881:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4862:33:43" + }, + "returnParameters": { + "id": 11947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12039, + "src": "4919:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11945, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4919:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4918:9:43" + }, + "scope": 12822, + "src": "4837:844:43", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 12176, + "nodeType": "Block", + "src": "5763:1128:43", + "statements": [ + { + "assignments": [ + 12047 + ], + "declarations": [ + { + "constant": false, + "id": 12047, + "mutability": "mutable", + "name": "length", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12176, + "src": "5773:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12046, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5773:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12050, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12048, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "5790:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5790:16:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5773:33:43" + }, + { + "assignments": [ + 12052 + ], + "declarations": [ + { + "constant": false, + "id": 12052, + "mutability": "mutable", + "name": "totalReward", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12176, + "src": "5816:19:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12051, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5816:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12054, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 12053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5838:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5816:23:43" + }, + { + "body": { + "id": 12172, + "nodeType": "Block", + "src": "5892:965:43", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12065, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "5910:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12067, + "indexExpression": { + "argumentTypes": null, + "id": 12066, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12056, + "src": "5919:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5910:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12069, + "indexExpression": { + "argumentTypes": null, + "id": 12068, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12041, + "src": "5924:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5910:20:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "id": 12070, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "5910:27:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5941:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5910:32:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12073, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "5946:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12075, + "indexExpression": { + "argumentTypes": null, + "id": 12074, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12056, + "src": "5956:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5946:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "id": 12076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "5946:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5975:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5946:30:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5910:66:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12082, + "nodeType": "IfStatement", + "src": "5906:125:43", + "trueBody": { + "id": 12081, + "nodeType": "Block", + "src": "5978:53:43", + "statements": [ + { + "id": 12080, + "nodeType": "Continue", + "src": "5996:8:43" + } + ] + } + }, + { + "assignments": [ + 12084 + ], + "declarations": [ + { + "constant": false, + "id": 12084, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12172, + "src": "6044:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12083, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "6044:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12088, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12085, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "6068:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12087, + "indexExpression": { + "argumentTypes": null, + "id": 12086, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12056, + "src": "6078:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6068:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6044:38:43" + }, + { + "assignments": [ + 12090 + ], + "declarations": [ + { + "constant": false, + "id": 12090, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12172, + "src": "6096:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 12089, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "6096:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12096, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12091, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "6120:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12093, + "indexExpression": { + "argumentTypes": null, + "id": 12092, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12056, + "src": "6129:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6120:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12095, + "indexExpression": { + "argumentTypes": null, + "id": 12094, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12041, + "src": "6134:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6120:20:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6096:44:43" + }, + { + "assignments": [ + 12098 + ], + "declarations": [ + { + "constant": false, + "id": 12098, + "mutability": "mutable", + "name": "accDODOPerShare", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12172, + "src": "6154:23:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12097, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6154:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12101, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12099, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12084, + "src": "6180:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12100, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "6180:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6154:46:43" + }, + { + "assignments": [ + 12103 + ], + "declarations": [ + { + "constant": false, + "id": 12103, + "mutability": "mutable", + "name": "lpSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12172, + "src": "6214:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6214:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12114, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12111, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6272:4:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + ], + "id": 12110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6264:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12109, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6264:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 12112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6264:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12105, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12084, + "src": "6240:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lpToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11662, + "src": "6240:12:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12104, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6233:6:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6233:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "6233:30:43", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 12113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6233:45:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6214:64:43" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12115, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "6296:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6296:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12117, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12084, + "src": "6311:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12118, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "6311:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6296:35:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12120, + "name": "lpSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12103, + "src": "6335:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6347:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6335:13:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6296:52:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12155, + "nodeType": "IfStatement", + "src": "6292:414:43", + "trueBody": { + "id": 12154, + "nodeType": "Block", + "src": "6350:356:43", + "statements": [ + { + "assignments": [ + 12125 + ], + "declarations": [ + { + "constant": false, + "id": 12125, + "mutability": "mutable", + "name": "DODOReward", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12154, + "src": "6368:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12124, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6368:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12142, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12140, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "6576:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12136, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12084, + "src": "6534:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12137, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "6534:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12133, + "name": "dodoPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11673, + "src": "6495:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12129, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12084, + "src": "6448:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12130, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "6448:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12126, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "6389:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6389:33:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6389:58:43", + "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": 12131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6389:80:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "6389:105:43", + "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": 12134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6389:119:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "6389:144:43", + "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": 12138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6389:161:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "6389:186:43", + "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": 12141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6389:203:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6368:224:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12143, + "name": "accDODOPerShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12098, + "src": "6610:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12148, + "name": "DODOReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "6669:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12149, + "name": "lpSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12103, + "src": "6681:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12146, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "6648:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "6648:20:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6648:42:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12144, + "name": "accDODOPerShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12098, + "src": "6628:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "6628:19:43", + "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": 12151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6628:63:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6610:81:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12153, + "nodeType": "ExpressionStatement", + "src": "6610:81:43" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 12170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12156, + "name": "totalReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12052, + "src": "6719:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12166, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12090, + "src": "6816:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12167, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "6816:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12161, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12090, + "src": "6782:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12162, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "6782:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12163, + "name": "accDODOPerShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12098, + "src": "6795:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12159, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "6766:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "6766:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6766:45:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6766:49:43", + "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": 12168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6766:66:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12157, + "name": "totalReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12052, + "src": "6733:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "6733:15:43", + "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": 12169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6733:113:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6719:127:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12171, + "nodeType": "ExpressionStatement", + "src": "6719:127:43" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12059, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12056, + "src": "5871:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 12060, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12047, + "src": "5877:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5871:12:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12173, + "initializationExpression": { + "assignments": [ + 12056 + ], + "declarations": [ + { + "constant": false, + "id": 12056, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12173, + "src": "5854:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12055, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5854:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12058, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 12057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5868:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5854:15:43" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 12063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "5885:5:43", + "subExpression": { + "argumentTypes": null, + "id": 12062, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12056, + "src": "5887:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12064, + "nodeType": "ExpressionStatement", + "src": "5885:5:43" + }, + "nodeType": "ForStatement", + "src": "5849:1008:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12174, + "name": "totalReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12052, + "src": "6873:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12045, + "id": 12175, + "nodeType": "Return", + "src": "6866:18:43" + } + ] + }, + "documentation": null, + "functionSelector": "f146b809", + "id": 12177, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAllPendingReward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12042, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12041, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12177, + "src": "5716:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12040, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5716:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5715:15:43" + }, + "returnParameters": { + "id": 12045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12044, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12177, + "src": "5754:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12043, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5754:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5753:9:43" + }, + "scope": 12822, + "src": "5687:1204:43", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 12188, + "nodeType": "Block", + "src": "6971:45:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12184, + "name": "realizedReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11690, + "src": "6988:14:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12186, + "indexExpression": { + "argumentTypes": null, + "id": 12185, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12179, + "src": "7003:5:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6988:21:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12183, + "id": 12187, + "nodeType": "Return", + "src": "6981:28:43" + } + ] + }, + "documentation": null, + "functionSelector": "6dc2cc8c", + "id": 12189, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRealizedReward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12180, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12179, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12189, + "src": "6924:13:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6924:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6923:15:43" + }, + "returnParameters": { + "id": 12183, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12182, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12189, + "src": "6962:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6962:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6961:9:43" + }, + "scope": 12822, + "src": "6897:119:43", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 12217, + "nodeType": "Block", + "src": "7099:166:43", + "statements": [ + { + "assignments": [ + 12197 + ], + "declarations": [ + { + "constant": false, + "id": 12197, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12217, + "src": "7109:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12196, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7109:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12201, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12199, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12191, + "src": "7130:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12198, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "7123:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 12200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7123:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7109:30:43" + }, + { + "assignments": [ + 12203 + ], + "declarations": [ + { + "constant": false, + "id": 12203, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12217, + "src": "7149:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12202, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "7149:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12207, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12204, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "7173:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12206, + "indexExpression": { + "argumentTypes": null, + "id": 12205, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12197, + "src": "7183:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7173:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7149:38:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12214, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "7242:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12210, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12203, + "src": "7221:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12211, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "7221:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12208, + "name": "dodoPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11673, + "src": "7204:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "7204:16:43", + "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": 12212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7204:33:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "7204:37:43", + "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": 12215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7204:54:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12195, + "id": 12216, + "nodeType": "Return", + "src": "7197:61:43" + } + ] + }, + "documentation": null, + "functionSelector": "fb7276f4", + "id": 12218, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDlpMiningSpeed", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12191, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12218, + "src": "7049:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7049:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7048:18:43" + }, + "returnParameters": { + "id": 12195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12194, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12218, + "src": "7090:7:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7090:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7089:9:43" + }, + "scope": 12822, + "src": "7022:243:43", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 12242, + "nodeType": "Block", + "src": "7426:142:43", + "statements": [ + { + "assignments": [ + 12222 + ], + "declarations": [ + { + "constant": false, + "id": 12222, + "mutability": "mutable", + "name": "length", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12242, + "src": "7436:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7436:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12225, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12223, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "7453:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7453:16:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7436:33:43" + }, + { + "body": { + "id": 12240, + "nodeType": "Block", + "src": "7522:40:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12237, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12227, + "src": "7547:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12236, + "name": "updatePool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12329, + "src": "7536:10:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7536:15:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12239, + "nodeType": "ExpressionStatement", + "src": "7536:15:43" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12230, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12227, + "src": "7501:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 12231, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12222, + "src": "7507:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7501:12:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12241, + "initializationExpression": { + "assignments": [ + 12227 + ], + "declarations": [ + { + "constant": false, + "id": 12227, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12241, + "src": "7484:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7484:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12229, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 12228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7498:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7484:15:43" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 12234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "7515:5:43", + "subExpression": { + "argumentTypes": null, + "id": 12233, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12227, + "src": "7517:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12235, + "nodeType": "ExpressionStatement", + "src": "7515:5:43" + }, + "nodeType": "ForStatement", + "src": "7479:83:43" + } + ] + }, + "documentation": null, + "functionSelector": "630b5ba1", + "id": 12243, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "massUpdatePools", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12219, + "nodeType": "ParameterList", + "parameters": [], + "src": "7416:2:43" + }, + "returnParameters": { + "id": 12220, + "nodeType": "ParameterList", + "parameters": [], + "src": "7426:0:43" + }, + "scope": 12822, + "src": "7392:176:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12328, + "nodeType": "Block", + "src": "7682:660:43", + "statements": [ + { + "assignments": [ + 12249 + ], + "declarations": [ + { + "constant": false, + "id": 12249, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12328, + "src": "7692:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12248, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "7692:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12253, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12250, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "7716:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12252, + "indexExpression": { + "argumentTypes": null, + "id": 12251, + "name": "_pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12245, + "src": "7726:4:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7716:15:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7692:39:43" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12254, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7745:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7745:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12256, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "7761:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12257, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "7761:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7745:36:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12261, + "nodeType": "IfStatement", + "src": "7741:73:43", + "trueBody": { + "id": 12260, + "nodeType": "Block", + "src": "7783:31:43", + "statements": [ + { + "expression": null, + "functionReturnParameters": 12247, + "id": 12259, + "nodeType": "Return", + "src": "7797:7:43" + } + ] + } + }, + { + "assignments": [ + 12263 + ], + "declarations": [ + { + "constant": false, + "id": 12263, + "mutability": "mutable", + "name": "lpSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12328, + "src": "7823:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12262, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7823:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12274, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12271, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7881:4:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + ], + "id": 12270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7873:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7873:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 12272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7873:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12265, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "7849:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12266, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lpToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11662, + "src": "7849:12:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12264, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7842:6:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7842:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "7842:30:43", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 12273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7842:45:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7823:64:43" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12275, + "name": "lpSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12263, + "src": "7901:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7913:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7901:13:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12287, + "nodeType": "IfStatement", + "src": "7897:99:43", + "trueBody": { + "id": 12286, + "nodeType": "Block", + "src": "7916:80:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12278, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "7930:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12280, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "7930:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7953:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7953:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7930:35:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12284, + "nodeType": "ExpressionStatement", + "src": "7930:35:43" + }, + { + "expression": null, + "functionReturnParameters": 12247, + "id": 12285, + "nodeType": "Return", + "src": "7979:7:43" + } + ] + } + }, + { + "assignments": [ + 12289 + ], + "declarations": [ + { + "constant": false, + "id": 12289, + "mutability": "mutable", + "name": "DODOReward", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12328, + "src": "8005:18:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8005:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12306, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12304, + "name": "totalAllocPoint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11693, + "src": "8173:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12300, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "8139:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12301, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "8139:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12297, + "name": "dodoPerBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11673, + "src": "8108:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12293, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "8069:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12294, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "8069:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12290, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "8026:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8026:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "8026:42:43", + "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": 12295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8026:64:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "8026:81:43", + "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": 12298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8026:95:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "8026:112:43", + "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": 12302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8026:129:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "8026:146:43", + "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": 12305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8026:163:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8005:184:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12307, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "8199:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12309, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "8199:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12315, + "name": "DODOReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12289, + "src": "8268:10:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12316, + "name": "lpSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12263, + "src": "8280:8:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12313, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "8247:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "8247:20:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8247:42:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12310, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "8222:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12311, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "8222:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "8222:24:43", + "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": 12318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8222:68:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8199:91:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12320, + "nodeType": "ExpressionStatement", + "src": "8199:91:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12321, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12249, + "src": "8300:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12323, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "lastRewardBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 11666, + "src": "8300:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12324, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "8323:5:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 12325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "number", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8323:12:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8300:35:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12327, + "nodeType": "ExpressionStatement", + "src": "8300:35:43" + } + ] + }, + "documentation": null, + "functionSelector": "51eb05a6", + "id": 12329, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "updatePool", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12245, + "mutability": "mutable", + "name": "_pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12329, + "src": "7661:12:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7661:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7660:14:43" + }, + "returnParameters": { + "id": 12247, + "nodeType": "ParameterList", + "parameters": [], + "src": "7682:0:43" + }, + "scope": 12822, + "src": "7641:701:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12433, + "nodeType": "Block", + "src": "8518:670:43", + "statements": [ + { + "assignments": [ + 12337 + ], + "declarations": [ + { + "constant": false, + "id": 12337, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12433, + "src": "8528:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8528:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12341, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12339, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12331, + "src": "8549:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12338, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "8542:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 12340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8542:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8528:30:43" + }, + { + "assignments": [ + 12343 + ], + "declarations": [ + { + "constant": false, + "id": 12343, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12433, + "src": "8568:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12342, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "8568:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12347, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12344, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "8592:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12346, + "indexExpression": { + "argumentTypes": null, + "id": 12345, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12337, + "src": "8602:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8592:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8568:38:43" + }, + { + "assignments": [ + 12349 + ], + "declarations": [ + { + "constant": false, + "id": 12349, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12433, + "src": "8616:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 12348, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "8616:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12356, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12350, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "8640:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12352, + "indexExpression": { + "argumentTypes": null, + "id": 12351, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12337, + "src": "8649:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8640:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12355, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12353, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8654:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8654:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8640:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8616:49:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12358, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12337, + "src": "8686:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12357, + "name": "updatePool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12329, + "src": "8675:10:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8675:15:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12360, + "nodeType": "ExpressionStatement", + "src": "8675:15:43" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12361, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "8704:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12362, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "8704:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8718:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8704:15:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12386, + "nodeType": "IfStatement", + "src": "8700:216:43", + "trueBody": { + "id": 12385, + "nodeType": "Block", + "src": "8721:195:43", + "statements": [ + { + "assignments": [ + 12366 + ], + "declarations": [ + { + "constant": false, + "id": 12366, + "mutability": "mutable", + "name": "pending", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12385, + "src": "8735:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8735:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12378, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12375, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "8825:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12376, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "8825:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12369, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "8769:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12370, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "8769:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12371, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12343, + "src": "8782:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12372, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "8782:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12367, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "8753:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "8753:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8753:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "8753:54:43", + "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": 12377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8753:101:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8735:119:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12380, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8885:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8885:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 12382, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12366, + "src": "8897:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12379, + "name": "safeDODOTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12821, + "src": "8868:16:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8868:37:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12384, + "nodeType": "ExpressionStatement", + "src": "8868:37:43" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12394, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8971:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8971:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 12393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8963:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12392, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8963:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 12396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8963:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12399, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8992:4:43", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOMine_$12822", + "typeString": "contract DODOMine" + } + ], + "id": 12398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8984:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12397, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8984:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 12400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8984:13:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12401, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12333, + "src": "8999:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12388, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12343, + "src": "8932:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12389, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lpToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11662, + "src": "8932:12:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12387, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "8925:6:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8925:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11354, + "src": "8925:37:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 12402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8925:82:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12403, + "nodeType": "ExpressionStatement", + "src": "8925:82:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12404, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "9017:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12406, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9017:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12410, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12333, + "src": "9047:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12407, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "9031:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12408, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9031:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "9031:15:43", + "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": 12411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9031:24:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9017:38:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12413, + "nodeType": "ExpressionStatement", + "src": "9017:38:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12414, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "9065:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12416, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "9065:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12419, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12349, + "src": "9099:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12420, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9099:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12421, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12343, + "src": "9112:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12422, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "9112:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12417, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "9083:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "9083:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9083:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9065:68:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12425, + "nodeType": "ExpressionStatement", + "src": "9065:68:43" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12427, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9156:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9156:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 12429, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12337, + "src": "9168:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12430, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12333, + "src": "9173:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12426, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11703, + "src": "9148:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 12431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9148:33:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12432, + "nodeType": "EmitStatement", + "src": "9143:38:43" + } + ] + }, + "documentation": null, + "functionSelector": "47e7ef24", + "id": 12434, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12331, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12434, + "src": "8476:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8476:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12333, + "mutability": "mutable", + "name": "_amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12434, + "src": "8494:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12332, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8494:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8475:35:43" + }, + "returnParameters": { + "id": 12335, + "nodeType": "ParameterList", + "parameters": [], + "src": "8518:0:43" + }, + "scope": 12822, + "src": "8459:729:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12536, + "nodeType": "Block", + "src": "9254:635:43", + "statements": [ + { + "assignments": [ + 12442 + ], + "declarations": [ + { + "constant": false, + "id": 12442, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12536, + "src": "9264:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9264:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12446, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12444, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12436, + "src": "9285:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12443, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "9278:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 12445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9278:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9264:30:43" + }, + { + "assignments": [ + 12448 + ], + "declarations": [ + { + "constant": false, + "id": 12448, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12536, + "src": "9304:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12447, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "9304:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12452, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12449, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "9328:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12451, + "indexExpression": { + "argumentTypes": null, + "id": 12450, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12442, + "src": "9338:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9328:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9304:38:43" + }, + { + "assignments": [ + 12454 + ], + "declarations": [ + { + "constant": false, + "id": 12454, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12536, + "src": "9352:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 12453, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "9352:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12461, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12455, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "9376:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12457, + "indexExpression": { + "argumentTypes": null, + "id": 12456, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12442, + "src": "9385:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9376:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12460, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12458, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9390:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9390:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9376:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9352:49:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12463, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9419:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12464, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9419:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 12465, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12438, + "src": "9434:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9419:22:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "776974686472617720746f6f206d756368", + "id": 12467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9443:19:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c36bb679920b61b680a8b24a18ff078642b393d25605ff3a7616b83483e73b38", + "typeString": "literal_string \"withdraw too much\"" + }, + "value": "withdraw too much" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c36bb679920b61b680a8b24a18ff078642b393d25605ff3a7616b83483e73b38", + "typeString": "literal_string \"withdraw too much\"" + } + ], + "id": 12462, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9411:7:43", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 12468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9411:52:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12469, + "nodeType": "ExpressionStatement", + "src": "9411:52:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12471, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12442, + "src": "9484:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12470, + "name": "updatePool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12329, + "src": "9473:10:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9473:15:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12473, + "nodeType": "ExpressionStatement", + "src": "9473:15:43" + }, + { + "assignments": [ + 12475 + ], + "declarations": [ + { + "constant": false, + "id": 12475, + "mutability": "mutable", + "name": "pending", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12536, + "src": "9498:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9498:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12487, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12484, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9571:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12485, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "9571:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12478, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9532:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12479, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9532:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12480, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12448, + "src": "9545:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12481, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "9545:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12476, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "9516:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "9516:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9516:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "9516:54:43", + "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": 12486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9516:71:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9498:89:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12489, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9614:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9614:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 12491, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12475, + "src": "9626:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12488, + "name": "safeDODOTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12821, + "src": "9597:16:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9597:37:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12493, + "nodeType": "ExpressionStatement", + "src": "9597:37:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12494, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9644:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9644:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12500, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12438, + "src": "9674:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12497, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9658:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12498, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9658:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "9658:15:43", + "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": 12501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9658:24:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9644:38:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12503, + "nodeType": "ExpressionStatement", + "src": "9644:38:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12504, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9692:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12506, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "9692:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12509, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12454, + "src": "9726:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "9726:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12511, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12448, + "src": "9739:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12512, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "9739:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12507, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "9710:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "9710:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9710:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9692:68:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12515, + "nodeType": "ExpressionStatement", + "src": "9692:68:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12523, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9812:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9812:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 12522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9804:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12521, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9804:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 12525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9804:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12526, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12438, + "src": "9825:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12517, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12448, + "src": "9777:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lpToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11662, + "src": "9777:12:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12516, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9770:6:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9770:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "9770:33:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 12527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9770:63:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12528, + "nodeType": "ExpressionStatement", + "src": "9770:63:43" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12530, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9857:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9857:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 12532, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12442, + "src": "9869:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12533, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12438, + "src": "9874:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12529, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11711, + "src": "9848:8:43", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 12534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9848:34:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12535, + "nodeType": "EmitStatement", + "src": "9843:39:43" + } + ] + }, + "documentation": null, + "functionSelector": "f3fef3a3", + "id": 12537, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12436, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12537, + "src": "9212:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12435, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9212:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12438, + "mutability": "mutable", + "name": "_amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12537, + "src": "9230:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9230:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9211:35:43" + }, + "returnParameters": { + "id": 12440, + "nodeType": "ParameterList", + "parameters": [], + "src": "9254:0:43" + }, + "scope": 12822, + "src": "9194:695:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12555, + "nodeType": "Block", + "src": "9941:110:43", + "statements": [ + { + "assignments": [ + 12543 + ], + "declarations": [ + { + "constant": false, + "id": 12543, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12555, + "src": "9951:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9951:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12545, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12539, + "src": "9986:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12546, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9996:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9996:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 12544, + "name": "getUserLpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11818, + "src": "9969:16:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view returns (uint256)" + } + }, + "id": 12548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9969:38:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9951:56:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12551, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12539, + "src": "10026:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12552, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12543, + "src": "10036:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12550, + "name": "withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12537, + "src": "10017:8:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:27:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12554, + "nodeType": "ExpressionStatement", + "src": "10017:27:43" + } + ] + }, + "documentation": null, + "functionSelector": "fa09e630", + "id": 12556, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawAll", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12539, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12556, + "src": "9916:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12538, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9916:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9915:18:43" + }, + "returnParameters": { + "id": 12541, + "nodeType": "ParameterList", + "parameters": [], + "src": "9941:0:43" + }, + "scope": 12822, + "src": "9895:156:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12608, + "nodeType": "Block", + "src": "10171:285:43", + "statements": [ + { + "assignments": [ + 12562 + ], + "declarations": [ + { + "constant": false, + "id": 12562, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12608, + "src": "10181:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10181:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12566, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12564, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12558, + "src": "10202:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12563, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "10195:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 12565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10195:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10181:30:43" + }, + { + "assignments": [ + 12568 + ], + "declarations": [ + { + "constant": false, + "id": 12568, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12608, + "src": "10221:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12567, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "10221:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12572, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12569, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "10245:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12571, + "indexExpression": { + "argumentTypes": null, + "id": 12570, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12562, + "src": "10255:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10245:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10221:38:43" + }, + { + "assignments": [ + 12574 + ], + "declarations": [ + { + "constant": false, + "id": 12574, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12608, + "src": "10269:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 12573, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "10269:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12581, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12575, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "10293:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12577, + "indexExpression": { + "argumentTypes": null, + "id": 12576, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12562, + "src": "10302:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10293:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12580, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12578, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10307:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10307:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10293:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10269:49:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10370:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10370:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 12588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10362:7:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10362:7:43", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 12591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10362:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12592, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12574, + "src": "10383:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12593, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "10383:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12583, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12568, + "src": "10335:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12584, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "lpToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 11662, + "src": "10335:12:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12582, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10328:6:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10328:20:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "10328:33:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 12594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10328:67:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12595, + "nodeType": "ExpressionStatement", + "src": "10328:67:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12596, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12574, + "src": "10405:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12598, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "10405:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 12599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10419:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10405:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12601, + "nodeType": "ExpressionStatement", + "src": "10405:15:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12602, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12574, + "src": "10430:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "10430:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 12605, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10448:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10430:19:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12607, + "nodeType": "ExpressionStatement", + "src": "10430:19:43" + } + ] + }, + "documentation": null, + "functionSelector": "6ff1c9bc", + "id": 12609, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "emergencyWithdraw", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12558, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12609, + "src": "10146:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12557, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10146:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10145:18:43" + }, + "returnParameters": { + "id": 12560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10171:0:43" + }, + "scope": 12822, + "src": "10119:337:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12690, + "nodeType": "Block", + "src": "10502:532:43", + "statements": [ + { + "assignments": [ + 12615 + ], + "declarations": [ + { + "constant": false, + "id": 12615, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12690, + "src": "10512:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10512:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12619, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12617, + "name": "_lpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12611, + "src": "10533:8:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12616, + "name": "getPid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11795, + "src": "10526:6:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 12618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10526:16:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10512:30:43" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12620, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "10556:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12622, + "indexExpression": { + "argumentTypes": null, + "id": 12621, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "10565:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10556:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12625, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12623, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10570:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10570:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10556:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "id": 12626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "10556:32:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10592:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10556:37:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12629, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "10597:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12631, + "indexExpression": { + "argumentTypes": null, + "id": 12630, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "10607:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10597:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "id": 12632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "10597:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10626:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10597:30:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10556:71:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12638, + "nodeType": "IfStatement", + "src": "10552:120:43", + "trueBody": { + "id": 12637, + "nodeType": "Block", + "src": "10629:43:43", + "statements": [ + { + "expression": null, + "functionReturnParameters": 12613, + "id": 12636, + "nodeType": "Return", + "src": "10643:7:43" + } + ] + } + }, + { + "assignments": [ + 12640 + ], + "declarations": [ + { + "constant": false, + "id": 12640, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12690, + "src": "10681:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12639, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "10681:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12644, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12641, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "10705:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12643, + "indexExpression": { + "argumentTypes": null, + "id": 12642, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "10715:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10705:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10681:38:43" + }, + { + "assignments": [ + 12646 + ], + "declarations": [ + { + "constant": false, + "id": 12646, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12690, + "src": "10729:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 12645, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "10729:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12653, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12647, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "10753:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12649, + "indexExpression": { + "argumentTypes": null, + "id": 12648, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "10762:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10753:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12652, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12650, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10767:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10767:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10753:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10729:49:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12655, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12615, + "src": "10799:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12654, + "name": "updatePool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12329, + "src": "10788:10:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10788:15:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12657, + "nodeType": "ExpressionStatement", + "src": "10788:15:43" + }, + { + "assignments": [ + 12659 + ], + "declarations": [ + { + "constant": false, + "id": 12659, + "mutability": "mutable", + "name": "pending", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12690, + "src": "10813:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10813:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12671, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12668, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12646, + "src": "10886:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12669, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "10886:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12662, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12646, + "src": "10847:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12663, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "10847:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12664, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12640, + "src": "10860:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12665, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "10860:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12660, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "10831:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "10831:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10831:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "10831:54:43", + "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": 12670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10831:71:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10813:89:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12672, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12646, + "src": "10912:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12674, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "10912:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12677, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12646, + "src": "10946:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12678, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "10946:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12679, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12640, + "src": "10959:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12680, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "10959:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12675, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "10930:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "10930:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10930:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10912:68:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12683, + "nodeType": "ExpressionStatement", + "src": "10912:68:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12685, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11007:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11007:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 12687, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12659, + "src": "11019:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12684, + "name": "safeDODOTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12821, + "src": "10990:16:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10990:37:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12689, + "nodeType": "ExpressionStatement", + "src": "10990:37:43" + } + ] + }, + "documentation": null, + "functionSelector": "1e83409a", + "id": 12691, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12611, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12691, + "src": "10477:16:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10477:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10476:18:43" + }, + "returnParameters": { + "id": 12613, + "nodeType": "ParameterList", + "parameters": [], + "src": "10502:0:43" + }, + "scope": 12822, + "src": "10462:572:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12788, + "nodeType": "Block", + "src": "11067:696:43", + "statements": [ + { + "assignments": [ + 12695 + ], + "declarations": [ + { + "constant": false, + "id": 12695, + "mutability": "mutable", + "name": "length", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12788, + "src": "11077:14:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11077:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12698, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12696, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "11094:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11094:16:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11077:33:43" + }, + { + "assignments": [ + 12700 + ], + "declarations": [ + { + "constant": false, + "id": 12700, + "mutability": "mutable", + "name": "pending", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12788, + "src": "11120:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11120:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12702, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 12701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11138:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11120:19:43" + }, + { + "body": { + "id": 12780, + "nodeType": "Block", + "src": "11192:518:43", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 12728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12713, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "11210:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12715, + "indexExpression": { + "argumentTypes": null, + "id": 12714, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11219:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11210:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12718, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12716, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11224:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11224:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11210:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "id": 12719, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "11210:32:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11246:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11210:37:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12722, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "11251:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12724, + "indexExpression": { + "argumentTypes": null, + "id": 12723, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11261:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11251:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "id": 12725, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "allocPoint", + "nodeType": "MemberAccess", + "referencedDeclaration": 11664, + "src": "11251:25:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 12726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11280:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11251:30:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11210:71:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 12731, + "nodeType": "IfStatement", + "src": "11206:130:43", + "trueBody": { + "id": 12730, + "nodeType": "Block", + "src": "11283:53:43", + "statements": [ + { + "id": 12729, + "nodeType": "Continue", + "src": "11301:8:43" + } + ] + } + }, + { + "assignments": [ + 12733 + ], + "declarations": [ + { + "constant": false, + "id": 12733, + "mutability": "mutable", + "name": "pool", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12780, + "src": "11349:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + }, + "typeName": { + "contractScope": null, + "id": 12732, + "name": "PoolInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11669, + "src": "11349:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12737, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12734, + "name": "poolInfos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11676, + "src": "11373:9:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_PoolInfo_$11669_storage_$dyn_storage", + "typeString": "struct DODOMine.PoolInfo storage ref[] storage ref" + } + }, + "id": 12736, + "indexExpression": { + "argumentTypes": null, + "id": 12735, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11383:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11373:14:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage", + "typeString": "struct DODOMine.PoolInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11349:38:43" + }, + { + "assignments": [ + 12739 + ], + "declarations": [ + { + "constant": false, + "id": 12739, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12780, + "src": "11401:21:43", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + }, + "typeName": { + "contractScope": null, + "id": 12738, + "name": "UserInfo", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11660, + "src": "11401:8:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12746, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12740, + "name": "userInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11686, + "src": "11425:8:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$_$", + "typeString": "mapping(uint256 => mapping(address => struct DODOMine.UserInfo storage ref))" + } + }, + "id": 12742, + "indexExpression": { + "argumentTypes": null, + "id": 12741, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11434:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11425:13:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UserInfo_$11660_storage_$", + "typeString": "mapping(address => struct DODOMine.UserInfo storage ref)" + } + }, + "id": 12745, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12743, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11439:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11439:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11425:25:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage", + "typeString": "struct DODOMine.UserInfo storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11401:49:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12748, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11475:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12747, + "name": "updatePool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12329, + "src": "11464:10:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 12749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11464:15:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12750, + "nodeType": "ExpressionStatement", + "src": "11464:15:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12751, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12700, + "src": "11493:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12762, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12739, + "src": "11587:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12763, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "11587:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12756, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12739, + "src": "11548:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12757, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "11548:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12758, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12733, + "src": "11561:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12759, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "11561:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12754, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "11532:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "11532:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11532:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "11532:54:43", + "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": 12764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11532:71:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12752, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12700, + "src": "11503:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "11503:11:43", + "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": 12765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11503:114:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11493:124:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12767, + "nodeType": "ExpressionStatement", + "src": "11493:124:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12768, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12739, + "src": "11631:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12770, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "rewardDebt", + "nodeType": "MemberAccess", + "referencedDeclaration": 11659, + "src": "11631:15:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12773, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12739, + "src": "11665:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UserInfo_$11660_storage_ptr", + "typeString": "struct DODOMine.UserInfo storage pointer" + } + }, + "id": 12774, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 11657, + "src": "11665:11:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12775, + "name": "pool", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12733, + "src": "11678:4:43", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PoolInfo_$11669_storage_ptr", + "typeString": "struct DODOMine.PoolInfo storage pointer" + } + }, + "id": 12776, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "accDODOPerShare", + "nodeType": "MemberAccess", + "referencedDeclaration": 11668, + "src": "11678:20:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12771, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "11649:11:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 12772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "11649:15:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 12777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11649:50:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11631:68:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12779, + "nodeType": "ExpressionStatement", + "src": "11631:68:43" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 12707, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11171:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 12708, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12695, + "src": "11177:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11171:12:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12781, + "initializationExpression": { + "assignments": [ + 12704 + ], + "declarations": [ + { + "constant": false, + "id": 12704, + "mutability": "mutable", + "name": "pid", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12781, + "src": "11154:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11154:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12706, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 12705, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11168:1:43", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11154:15:43" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 12711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "11185:5:43", + "subExpression": { + "argumentTypes": null, + "id": 12710, + "name": "pid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12704, + "src": "11187:3:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12712, + "nodeType": "ExpressionStatement", + "src": "11185:5:43" + }, + "nodeType": "ForStatement", + "src": "11149:561:43" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 12783, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11736:3:43", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 12784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11736:10:43", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 12785, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12700, + "src": "11748:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12782, + "name": "safeDODOTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12821, + "src": "11719:16:43", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11719:37:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12787, + "nodeType": "ExpressionStatement", + "src": "11719:37:43" + } + ] + }, + "documentation": null, + "functionSelector": "d1058e59", + "id": 12789, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claimAll", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12692, + "nodeType": "ParameterList", + "parameters": [], + "src": "11057:2:43" + }, + "returnParameters": { + "id": 12693, + "nodeType": "ParameterList", + "parameters": [], + "src": "11067:0:43" + }, + "scope": 12822, + "src": "11040:723:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12820, + "nodeType": "Block", + "src": "11869:169:43", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12800, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12791, + "src": "11920:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12801, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12793, + "src": "11925:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12797, + "name": "dodoRewardVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11671, + "src": "11896:15:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12796, + "name": "IDODORewardVault", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12962, + "src": "11879:16:43", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODORewardVault_$12962_$", + "typeString": "type(contract IDODORewardVault)" + } + }, + "id": 12798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11879:33:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODORewardVault_$12962", + "typeString": "contract IDODORewardVault" + } + }, + "id": 12799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "reward", + "nodeType": "MemberAccess", + "referencedDeclaration": 12961, + "src": "11879:40:43", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 12802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11879:54:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12803, + "nodeType": "ExpressionStatement", + "src": "11879:54:43" + }, + { + "expression": { + "argumentTypes": null, + "id": 12813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12804, + "name": "realizedReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11690, + "src": "11943:14:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12806, + "indexExpression": { + "argumentTypes": null, + "id": 12805, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12791, + "src": "11958:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11943:19:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12811, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12793, + "src": "11989:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 12807, + "name": "realizedReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11690, + "src": "11965:14:43", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 12809, + "indexExpression": { + "argumentTypes": null, + "id": 12808, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12791, + "src": "11980:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11965:19:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "11965:23:43", + "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": 12812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11965:32:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11943:54:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12814, + "nodeType": "ExpressionStatement", + "src": "11943:54:43" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12816, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12791, + "src": "12018:3:43", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12817, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12793, + "src": "12023:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12815, + "name": "Claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11717, + "src": "12012:5:43", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 12818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12012:19:43", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12819, + "nodeType": "EmitStatement", + "src": "12007:24:43" + } + ] + }, + "documentation": null, + "id": 12821, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeDODOTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12791, + "mutability": "mutable", + "name": "_to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12821, + "src": "11830:11:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12790, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11830:7:43", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12793, + "mutability": "mutable", + "name": "_amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12821, + "src": "11843:15:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11843:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11829:30:43" + }, + "returnParameters": { + "id": 12795, + "nodeType": "ParameterList", + "parameters": [], + "src": "11869:0:43" + }, + "scope": 12822, + "src": "11804:234:43", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 12823, + "src": "444:11596:43" + } + ], + "src": "78:11963:43" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.725Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/DODOMineReader.json b/build-v1/contracts/DODOMineReader.json new file mode 100644 index 0000000..262c405 --- /dev/null +++ b/build-v1/contracts/DODOMineReader.json @@ -0,0 +1,3640 @@ +{ + "contractName": "DODOMineReader", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_dodoMine", + "type": "address" + }, + { + "internalType": "address", + "name": "_dodo", + "type": "address" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "getUserStakedBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "baseBalance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quoteBalance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dodoMine\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_dodo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getUserStakedBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"baseBalance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quoteBalance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMineReader.sol\":\"DODOMineReader\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol\":{\"keccak256\":\"0x8fd9ec49ff1517e33698dc8dd4022da05f3a1ae6e4bf97c48f5f5b6714df2123\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cfaa388f09d627ad26c66e6c4a73c232d494010b73b989392e264f815a84cd1d\",\"dweb:/ipfs/QmSBNeEyjgFSAtcYpKjyQfKZx7ahZKFwUtnnbpSSpS3p2H\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMineReader.sol\":{\"keccak256\":\"0xacdbbc17ce75a41a7656e2ff50c85633af00f5c57240269a3bcfcc4800427574\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b915a0b00401e7355693594d02a1b606172e29c8886fe909749b4422bd8accb3\",\"dweb:/ipfs/QmbaER9zTzjuUh4x4YMDMiXu4cHzMCqihBUP7h2DP4ERmq\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506105d5806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80634e41de7f14610030575b600080fd5b61004361003e36600461048f565b61005a565b604051610051929190610579565b60405180910390f35b6000806000846001600160a01b031663d689107c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561009857600080fd5b505afa1580156100ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d09190610473565b90506000856001600160a01b031663ac1fbc986040518163ffffffff1660e01b815260040160206040518083038186803b15801561010d57600080fd5b505afa158015610121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101459190610473565b90506000876001600160a01b03166319a78f5584886040518363ffffffff1660e01b8152600401610177929190610514565b60206040518083038186803b15801561018f57600080fd5b505afa1580156101a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c791906104d9565b90506000886001600160a01b03166319a78f5584896040518363ffffffff1660e01b81526004016101f9929190610514565b60206040518083038186803b15801561021157600080fd5b505afa158015610225573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024991906104d9565b90506000846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561028657600080fd5b505afa15801561029a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102be91906104d9565b90506000846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102fb57600080fd5b505afa15801561030f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033391906104d9565b90506000808b6001600160a01b031663ffa642256040518163ffffffff1660e01b8152600401604080518083038186803b15801561037057600080fd5b505afa158015610384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a891906104f1565b90925090506103cd846103c1848963ffffffff6103f516565b9063ffffffff61044116565b99506103e3836103c1838863ffffffff6103f516565b98505050505050505050935093915050565b6000826104045750600061043b565b8282028284828161041157fe5b04146104385760405162461bcd60e51b815260040161042f90610556565b60405180910390fd5b90505b92915050565b60008082116104625760405162461bcd60e51b815260040161042f9061052e565b81838161046b57fe5b049392505050565b600060208284031215610484578081fd5b815161043881610587565b6000806000606084860312156104a3578182fd5b83356104ae81610587565b925060208401356104be81610587565b915060408401356104ce81610587565b809150509250925092565b6000602082840312156104ea578081fd5b5051919050565b60008060408385031215610503578182fd5b505080516020909101519092909150565b6001600160a01b0392831681529116602082015260400190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b918252602082015260400190565b6001600160a01b038116811461059c57600080fd5b5056fea264697066735822122058a9b2316ed397b51ced2cada4331ee4342b25e67e74fb636333495dc36ed57c64736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80634e41de7f14610030575b600080fd5b61004361003e36600461048f565b61005a565b604051610051929190610579565b60405180910390f35b6000806000846001600160a01b031663d689107c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561009857600080fd5b505afa1580156100ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d09190610473565b90506000856001600160a01b031663ac1fbc986040518163ffffffff1660e01b815260040160206040518083038186803b15801561010d57600080fd5b505afa158015610121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101459190610473565b90506000876001600160a01b03166319a78f5584886040518363ffffffff1660e01b8152600401610177929190610514565b60206040518083038186803b15801561018f57600080fd5b505afa1580156101a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c791906104d9565b90506000886001600160a01b03166319a78f5584896040518363ffffffff1660e01b81526004016101f9929190610514565b60206040518083038186803b15801561021157600080fd5b505afa158015610225573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024991906104d9565b90506000846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561028657600080fd5b505afa15801561029a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102be91906104d9565b90506000846001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102fb57600080fd5b505afa15801561030f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033391906104d9565b90506000808b6001600160a01b031663ffa642256040518163ffffffff1660e01b8152600401604080518083038186803b15801561037057600080fd5b505afa158015610384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a891906104f1565b90925090506103cd846103c1848963ffffffff6103f516565b9063ffffffff61044116565b99506103e3836103c1838863ffffffff6103f516565b98505050505050505050935093915050565b6000826104045750600061043b565b8282028284828161041157fe5b04146104385760405162461bcd60e51b815260040161042f90610556565b60405180910390fd5b90505b92915050565b60008082116104625760405162461bcd60e51b815260040161042f9061052e565b81838161046b57fe5b049392505050565b600060208284031215610484578081fd5b815161043881610587565b6000806000606084860312156104a3578182fd5b83356104ae81610587565b925060208401356104be81610587565b915060408401356104ce81610587565b809150509250925092565b6000602082840312156104ea578081fd5b5051919050565b60008060408385031215610503578182fd5b505080516020909101519092909150565b6001600160a01b0392831681529116602082015260400190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b918252602082015260400190565b6001600160a01b038116811461059c57600080fd5b5056fea264697066735822122058a9b2316ed397b51ced2cada4331ee4342b25e67e74fb636333495dc36ed57c64736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "390:1001:44:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "390:1001:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;453:936;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;585:19;606:20;638:19;666:5;-1:-1:-1;;;;;660:33:44;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;638:57;;705:20;734:5;-1:-1:-1;;;;;728:34:44;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;705:59;;775:21;809:9;-1:-1:-1;;;;;799:37:44;;837:11;850:5;799:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;775:81;;866:22;901:9;-1:-1:-1;;;;;891:37:44;;929:12;943:5;891:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;866:83;;960:25;995:11;-1:-1:-1;;;;;988:31:44;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;960:61;;1031:26;1067:12;-1:-1:-1;;;;;1060:32:44;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1031:63;;1106:18;1126:19;1155:5;-1:-1:-1;;;;;1149:30:44;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1105:76;;-1:-1:-1;1105:76:44;-1:-1:-1;1205:52:44;1239:17;1205:29;1105:76;1220:13;1205:29;:14;:29;:::i;:::-;:33;:52;:33;:52;:::i;:::-;1191:66;-1:-1:-1;1282:55:44;1318:18;1282:31;:11;1298:14;1282:31;:15;:31;:::i;:55::-;1267:70;-1:-1:-1;;;;;;;;;453:936:44;;;;;;:::o;281:217:41:-;339:7;362:6;358:45;;-1:-1:-1;391:1:41;384:8;;358:45;425:5;;;429:1;425;:5;:1;448:5;;;;;:10;440:32;;;;-1:-1:-1;;;440:32:41;;;;;;;;;;;;;;;;;490:1;-1:-1:-1;281:217:41;;;;;:::o;504:138::-;562:7;593:1;589;:5;581:32;;;;-1:-1:-1;;;581:32:41;;;;;;;;;634:1;630;:5;;;;;;;504:138;-1:-1:-1;;;504:138:41:o;424:263:-1:-;;539:2;527:9;518:7;514:23;510:32;507:2;;;-1:-1;;545:12;507:2;226:6;220:13;238:33;265:5;238:33;;694:491;;;;832:2;820:9;811:7;807:23;803:32;800:2;;;-1:-1;;838:12;800:2;85:6;72:20;97:33;124:5;97:33;;;890:63;-1:-1;990:2;1029:22;;72:20;97:33;72:20;97:33;;;998:63;-1:-1;1098:2;1137:22;;72:20;97:33;72:20;97:33;;;1106:63;;;;794:391;;;;;;1192:263;;1307:2;1295:9;1286:7;1282:23;1278:32;1275:2;;;-1:-1;;1313:12;1275:2;-1:-1;361:13;;1269:186;-1:-1;1269:186;1462:399;;;1594:2;1582:9;1573:7;1569:23;1565:32;1562:2;;;-1:-1;;1600:12;1562:2;-1:-1;;361:13;;1763:2;1813:22;;;361:13;;;;;-1:-1;1556:305;2748:333;-1:-1;;;;;4606:54;;;1939:37;;4606:54;;3067:2;3052:18;;1939:37;2903:2;2888:18;;2874:207;3088:416;3288:2;3302:47;;;2213:2;3273:18;;;4378:19;-1:-1;;;4418:14;;;2229:37;2285:12;;;3259:245;3511:416;3711:2;3725:47;;;2536:1;3696:18;;;4378:19;-1:-1;;;4418:14;;;2551:32;2602:12;;;3682:245;3934:333;2699:37;;;4253:2;4238:18;;2699:37;4089:2;4074:18;;4060:207;4751:117;-1:-1;;;;;4606:54;;4810:35;;4800:2;;4859:1;;4849:12;4800:2;4794:74;", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {IDODO} from \"../intf/IDODO.sol\";\nimport {IERC20} from \"../intf/IERC20.sol\";\nimport {SafeMath} from \"../lib/SafeMath.sol\";\n\n\ninterface IDODOMine {\n function getUserLpBalance(address _lpToken, address _user) external view returns (uint256);\n}\n\n\ncontract DODOMineReader {\n using SafeMath for uint256;\n\n function getUserStakedBalance(\n address _dodoMine,\n address _dodo,\n address _user\n ) external view returns (uint256 baseBalance, uint256 quoteBalance) {\n address baseLpToken = IDODO(_dodo)._BASE_CAPITAL_TOKEN_();\n address quoteLpToken = IDODO(_dodo)._QUOTE_CAPITAL_TOKEN_();\n\n uint256 baseLpBalance = IDODOMine(_dodoMine).getUserLpBalance(baseLpToken, _user);\n uint256 quoteLpBalance = IDODOMine(_dodoMine).getUserLpBalance(quoteLpToken, _user);\n\n uint256 baseLpTotalSupply = IERC20(baseLpToken).totalSupply();\n uint256 quoteLpTotalSupply = IERC20(quoteLpToken).totalSupply();\n\n (uint256 baseTarget, uint256 quoteTarget) = IDODO(_dodo).getExpectedTarget();\n baseBalance = baseTarget.mul(baseLpBalance).div(baseLpTotalSupply);\n quoteBalance = quoteTarget.mul(quoteLpBalance).div(quoteLpTotalSupply);\n\n return (baseBalance, quoteBalance);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMineReader.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMineReader.sol", + "exportedSymbols": { + "DODOMineReader": [ + 12945 + ], + "IDODOMine": [ + 12841 + ] + }, + "id": 12946, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12824, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:44" + }, + { + "id": 12825, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:44" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "file": "../intf/IDODO.sol", + "id": 12827, + "nodeType": "ImportDirective", + "scope": 12946, + "sourceUnit": 10492, + "src": "136:40:44", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12826, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:5:44", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 12829, + "nodeType": "ImportDirective", + "scope": 12946, + "sourceUnit": 10608, + "src": "177:42:44", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12828, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "185:6:44", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 12831, + "nodeType": "ImportDirective", + "scope": 12946, + "sourceUnit": 11624, + "src": "220:45:44", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12830, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "228:8:44", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 12841, + "linearizedBaseContracts": [ + 12841 + ], + "name": "IDODOMine", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "19a78f55", + "id": 12840, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getUserLpBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12833, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12840, + "src": "320:16:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "320:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12835, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12840, + "src": "338:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12834, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "338:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "319:33:44" + }, + "returnParameters": { + "id": 12839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12838, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12840, + "src": "376:7:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12837, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "376:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "375:9:44" + }, + "scope": 12841, + "src": "294:91:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12946, + "src": "268:119:44" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12945, + "linearizedBaseContracts": [ + 12945 + ], + "name": "DODOMineReader", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 12844, + "libraryName": { + "contractScope": null, + "id": 12842, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "426:8:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "420:27:44", + "typeName": { + "id": 12843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "439:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 12943, + "nodeType": "Block", + "src": "628:761:44", + "statements": [ + { + "assignments": [ + 12858 + ], + "declarations": [ + { + "constant": false, + "id": 12858, + "mutability": "mutable", + "name": "baseLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "638:19:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "638:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12864, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12860, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "666:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12859, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "660:5:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 12861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "660:12:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 12862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10475, + "src": "660:33:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 12863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "660:35:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "638:57:44" + }, + { + "assignments": [ + 12866 + ], + "declarations": [ + { + "constant": false, + "id": 12866, + "mutability": "mutable", + "name": "quoteLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "705:20:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12865, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "705:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12872, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12868, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "734:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12867, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "728:5:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 12869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "728:12:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 12870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10480, + "src": "728:34:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 12871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "728:36:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "705:59:44" + }, + { + "assignments": [ + 12874 + ], + "declarations": [ + { + "constant": false, + "id": 12874, + "mutability": "mutable", + "name": "baseLpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "775:21:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "775:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12882, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12879, + "name": "baseLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12858, + "src": "837:11:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12880, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12850, + "src": "850:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12876, + "name": "_dodoMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12846, + "src": "809:9:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12875, + "name": "IDODOMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12841, + "src": "799:9:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOMine_$12841_$", + "typeString": "type(contract IDODOMine)" + } + }, + "id": 12877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "799:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOMine_$12841", + "typeString": "contract IDODOMine" + } + }, + "id": 12878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUserLpBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 12840, + "src": "799:37:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 12881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "799:57:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "775:81:44" + }, + { + "assignments": [ + 12884 + ], + "declarations": [ + { + "constant": false, + "id": 12884, + "mutability": "mutable", + "name": "quoteLpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "866:22:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "866:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12892, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12889, + "name": "quoteLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12866, + "src": "929:12:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12890, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12850, + "src": "943:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12886, + "name": "_dodoMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12846, + "src": "901:9:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12885, + "name": "IDODOMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12841, + "src": "891:9:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOMine_$12841_$", + "typeString": "type(contract IDODOMine)" + } + }, + "id": 12887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "891:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOMine_$12841", + "typeString": "contract IDODOMine" + } + }, + "id": 12888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUserLpBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 12840, + "src": "891:37:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 12891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "891:58:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "866:83:44" + }, + { + "assignments": [ + 12894 + ], + "declarations": [ + { + "constant": false, + "id": 12894, + "mutability": "mutable", + "name": "baseLpTotalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "960:25:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "960:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12900, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12896, + "name": "baseLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12858, + "src": "995:11:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12895, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "988:6:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "988:19:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 10546, + "src": "988:31:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 12899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "988:33:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "960:61:44" + }, + { + "assignments": [ + 12902 + ], + "declarations": [ + { + "constant": false, + "id": 12902, + "mutability": "mutable", + "name": "quoteLpTotalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "1031:26:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12901, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1031:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12908, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12904, + "name": "quoteLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12866, + "src": "1067:12:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12903, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1060:6:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1060:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 10546, + "src": "1060:32:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 12907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1060:34:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1031:63:44" + }, + { + "assignments": [ + 12910, + 12912 + ], + "declarations": [ + { + "constant": false, + "id": 12910, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "1106:18:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12909, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1106:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12912, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "1126:19:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1126:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12918, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12914, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "1155:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12913, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1149:5:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 12915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1149:12:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 12916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExpectedTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10428, + "src": "1149:30:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 12917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1149:32:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1105:76:44" + }, + { + "expression": { + "argumentTypes": null, + "id": 12927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12919, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12853, + "src": "1191:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12925, + "name": "baseLpTotalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12894, + "src": "1239:17:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12922, + "name": "baseLpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12874, + "src": "1220:13:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12920, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12910, + "src": "1205:10:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "1205:14:44", + "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": 12923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1205:29:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "1205:33:44", + "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": 12926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1205:52:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1191:66:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12928, + "nodeType": "ExpressionStatement", + "src": "1191:66:44" + }, + { + "expression": { + "argumentTypes": null, + "id": 12937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12929, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12855, + "src": "1267:12:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12935, + "name": "quoteLpTotalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12902, + "src": "1318:18:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12932, + "name": "quoteLpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12884, + "src": "1298:14:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12930, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12912, + "src": "1282:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "1282:15:44", + "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": 12933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:31:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "1282:35:44", + "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": 12936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:55:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1267:70:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12938, + "nodeType": "ExpressionStatement", + "src": "1267:70:44" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 12939, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12853, + "src": "1356:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12940, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12855, + "src": "1369:12:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 12941, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1355:27:44", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 12856, + "id": 12942, + "nodeType": "Return", + "src": "1348:34:44" + } + ] + }, + "documentation": null, + "functionSelector": "4e41de7f", + "id": 12944, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUserStakedBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12846, + "mutability": "mutable", + "name": "_dodoMine", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "492:17:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "492:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12848, + "mutability": "mutable", + "name": "_dodo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "519:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "519:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12850, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "542:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12849, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "542:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "482:79:44" + }, + "returnParameters": { + "id": 12856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12853, + "mutability": "mutable", + "name": "baseBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "585:19:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "585:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12855, + "mutability": "mutable", + "name": "quoteBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "606:20:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "606:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "584:43:44" + }, + "scope": 12945, + "src": "453:936:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12946, + "src": "390:1001:44" + } + ], + "src": "78:1314:44" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMineReader.sol", + "exportedSymbols": { + "DODOMineReader": [ + 12945 + ], + "IDODOMine": [ + 12841 + ] + }, + "id": 12946, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12824, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:44" + }, + { + "id": 12825, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:44" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "file": "../intf/IDODO.sol", + "id": 12827, + "nodeType": "ImportDirective", + "scope": 12946, + "sourceUnit": 10492, + "src": "136:40:44", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12826, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:5:44", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 12829, + "nodeType": "ImportDirective", + "scope": 12946, + "sourceUnit": 10608, + "src": "177:42:44", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12828, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "185:6:44", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 12831, + "nodeType": "ImportDirective", + "scope": 12946, + "sourceUnit": 11624, + "src": "220:45:44", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12830, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "228:8:44", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 12841, + "linearizedBaseContracts": [ + 12841 + ], + "name": "IDODOMine", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "19a78f55", + "id": 12840, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getUserLpBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12833, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12840, + "src": "320:16:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "320:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12835, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12840, + "src": "338:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12834, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "338:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "319:33:44" + }, + "returnParameters": { + "id": 12839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12838, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12840, + "src": "376:7:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12837, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "376:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "375:9:44" + }, + "scope": 12841, + "src": "294:91:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12946, + "src": "268:119:44" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12945, + "linearizedBaseContracts": [ + 12945 + ], + "name": "DODOMineReader", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 12844, + "libraryName": { + "contractScope": null, + "id": 12842, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "426:8:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "420:27:44", + "typeName": { + "id": 12843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "439:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 12943, + "nodeType": "Block", + "src": "628:761:44", + "statements": [ + { + "assignments": [ + 12858 + ], + "declarations": [ + { + "constant": false, + "id": 12858, + "mutability": "mutable", + "name": "baseLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "638:19:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "638:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12864, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12860, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "666:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12859, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "660:5:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 12861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "660:12:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 12862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10475, + "src": "660:33:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 12863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "660:35:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "638:57:44" + }, + { + "assignments": [ + 12866 + ], + "declarations": [ + { + "constant": false, + "id": 12866, + "mutability": "mutable", + "name": "quoteLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "705:20:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12865, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "705:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12872, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12868, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "734:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12867, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "728:5:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 12869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "728:12:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 12870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10480, + "src": "728:34:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 12871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "728:36:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "705:59:44" + }, + { + "assignments": [ + 12874 + ], + "declarations": [ + { + "constant": false, + "id": 12874, + "mutability": "mutable", + "name": "baseLpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "775:21:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "775:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12882, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12879, + "name": "baseLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12858, + "src": "837:11:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12880, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12850, + "src": "850:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12876, + "name": "_dodoMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12846, + "src": "809:9:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12875, + "name": "IDODOMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12841, + "src": "799:9:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOMine_$12841_$", + "typeString": "type(contract IDODOMine)" + } + }, + "id": 12877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "799:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOMine_$12841", + "typeString": "contract IDODOMine" + } + }, + "id": 12878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUserLpBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 12840, + "src": "799:37:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 12881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "799:57:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "775:81:44" + }, + { + "assignments": [ + 12884 + ], + "declarations": [ + { + "constant": false, + "id": 12884, + "mutability": "mutable", + "name": "quoteLpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "866:22:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "866:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12892, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12889, + "name": "quoteLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12866, + "src": "929:12:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12890, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12850, + "src": "943:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12886, + "name": "_dodoMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12846, + "src": "901:9:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12885, + "name": "IDODOMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12841, + "src": "891:9:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOMine_$12841_$", + "typeString": "type(contract IDODOMine)" + } + }, + "id": 12887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "891:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOMine_$12841", + "typeString": "contract IDODOMine" + } + }, + "id": 12888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUserLpBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 12840, + "src": "891:37:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 12891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "891:58:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "866:83:44" + }, + { + "assignments": [ + 12894 + ], + "declarations": [ + { + "constant": false, + "id": 12894, + "mutability": "mutable", + "name": "baseLpTotalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "960:25:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "960:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12900, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12896, + "name": "baseLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12858, + "src": "995:11:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12895, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "988:6:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "988:19:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 10546, + "src": "988:31:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 12899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "988:33:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "960:61:44" + }, + { + "assignments": [ + 12902 + ], + "declarations": [ + { + "constant": false, + "id": 12902, + "mutability": "mutable", + "name": "quoteLpTotalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "1031:26:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12901, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1031:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12908, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12904, + "name": "quoteLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12866, + "src": "1067:12:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12903, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1060:6:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1060:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 10546, + "src": "1060:32:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 12907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1060:34:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1031:63:44" + }, + { + "assignments": [ + 12910, + 12912 + ], + "declarations": [ + { + "constant": false, + "id": 12910, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "1106:18:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12909, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1106:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12912, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "1126:19:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1126:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12918, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12914, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "1155:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12913, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1149:5:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 12915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1149:12:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 12916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExpectedTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10428, + "src": "1149:30:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 12917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1149:32:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1105:76:44" + }, + { + "expression": { + "argumentTypes": null, + "id": 12927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12919, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12853, + "src": "1191:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12925, + "name": "baseLpTotalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12894, + "src": "1239:17:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12922, + "name": "baseLpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12874, + "src": "1220:13:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12920, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12910, + "src": "1205:10:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "1205:14:44", + "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": 12923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1205:29:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "1205:33:44", + "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": 12926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1205:52:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1191:66:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12928, + "nodeType": "ExpressionStatement", + "src": "1191:66:44" + }, + { + "expression": { + "argumentTypes": null, + "id": 12937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12929, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12855, + "src": "1267:12:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12935, + "name": "quoteLpTotalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12902, + "src": "1318:18:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12932, + "name": "quoteLpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12884, + "src": "1298:14:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12930, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12912, + "src": "1282:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "1282:15:44", + "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": 12933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:31:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "1282:35:44", + "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": 12936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:55:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1267:70:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12938, + "nodeType": "ExpressionStatement", + "src": "1267:70:44" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 12939, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12853, + "src": "1356:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12940, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12855, + "src": "1369:12:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 12941, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1355:27:44", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 12856, + "id": 12942, + "nodeType": "Return", + "src": "1348:34:44" + } + ] + }, + "documentation": null, + "functionSelector": "4e41de7f", + "id": 12944, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUserStakedBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12846, + "mutability": "mutable", + "name": "_dodoMine", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "492:17:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "492:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12848, + "mutability": "mutable", + "name": "_dodo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "519:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "519:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12850, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "542:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12849, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "542:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "482:79:44" + }, + "returnParameters": { + "id": 12856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12853, + "mutability": "mutable", + "name": "baseBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "585:19:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "585:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12855, + "mutability": "mutable", + "name": "quoteBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "606:20:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "606:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "584:43:44" + }, + "scope": 12945, + "src": "453:936:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12946, + "src": "390:1001:44" + } + ], + "src": "78:1314:44" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.735Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/DODORewardVault.json b/build-v1/contracts/DODORewardVault.json new file mode 100644 index 0000000..6688285 --- /dev/null +++ b/build-v1/contracts/DODORewardVault.json @@ -0,0 +1,1496 @@ +{ + "contractName": "DODORewardVault", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_dodoToken", + "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": "OwnershipTransferPrepared", + "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" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "dodoToken", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "reward", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dodoToken\",\"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\":\"OwnershipTransferPrepared\",\"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\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dodoToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol\":\"DODORewardVault\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol\":{\"keccak256\":\"0xb7a2ca6570834e4784e86d19fd5a4b6b1eff22a4586dc240659943396a365aa5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5855a493c78e787d7effd87d9c661acbcd19ca1e1ba72dbeaa91c3c8db29cbb4\",\"dweb:/ipfs/QmSddEexZ5okMatgoQ5JZRoJqe7BwsJwwWA2o1kKx7vbTH\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol\":{\"keccak256\":\"0x9a1ad5dfb8c36b3750f7c3c9aef091e63bad36e2145355eb212d67988914dc1d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e8ad414d377a1860b064193e015ca67187da4a47c9e925123cef4c9a6cd3448b\",\"dweb:/ipfs/QmS7Po2mSdB7Bk784Zcsxx7HFwJ17WXqKv3FuDGxH5aCFY\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5060405161068638038061068683398101604081905261002f9161009d565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600280546001600160a01b0319166001600160a01b03929092169190911790556100cb565b6000602082840312156100ae578081fd5b81516001600160a01b03811681146100c4578182fd5b9392505050565b6105ac806100da6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806316048bc41461006757806321670f22146100855780634e71e0c81461009a57806375123ff9146100a25780638456db15146100aa578063f2fde38b146100b2575b600080fd5b61006f6100c5565b60405161007c9190610459565b60405180910390f35b6100986100933660046103d6565b6100d4565b005b610098610128565b61006f6101b6565b61006f6101c5565b6100986100c03660046103b4565b6101d4565b6000546001600160a01b031681565b6000546001600160a01b031633146101075760405162461bcd60e51b81526004016100fe90610509565b60405180910390fd5b600254610124906001600160a01b0316838363ffffffff61027f16565b5050565b6001546001600160a01b031633146101525760405162461bcd60e51b81526004016100fe90610486565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b031681565b6001546001600160a01b031681565b6000546001600160a01b031633146101fe5760405162461bcd60e51b81526004016100fe90610509565b6001600160a01b0381166102245760405162461bcd60e51b81526004016100fe906104e2565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6102d58363a9059cbb60e01b848460405160240161029e92919061046d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526102da565b505050565b60006060836001600160a01b0316836040516102f69190610420565b6000604051808303816000865af19150503d8060008114610333576040519150601f19603f3d011682016040523d82523d6000602084013e610338565b606091505b50915091508161035a5760405162461bcd60e51b81526004016100fe906104ad565b80511561039157808060200190518101906103759190610400565b6103915760405162461bcd60e51b81526004016100fe9061052c565b50505050565b80356001600160a01b03811681146103ae57600080fd5b92915050565b6000602082840312156103c5578081fd5b6103cf8383610397565b9392505050565b600080604083850312156103e8578081fd5b6103f28484610397565b946020939093013593505050565b600060208284031215610411578081fd5b815180151581146103cf578182fd5b60008251815b818110156104405760208186018101518583015201610426565b8181111561044e5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b60608201526080019056fea26469706673582212205ad8caf142b7a2c457e73a7f840e61c56c23ddb79da79a892a5d31d7e8a1d28c64736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c806316048bc41461006757806321670f22146100855780634e71e0c81461009a57806375123ff9146100a25780638456db15146100aa578063f2fde38b146100b2575b600080fd5b61006f6100c5565b60405161007c9190610459565b60405180910390f35b6100986100933660046103d6565b6100d4565b005b610098610128565b61006f6101b6565b61006f6101c5565b6100986100c03660046103b4565b6101d4565b6000546001600160a01b031681565b6000546001600160a01b031633146101075760405162461bcd60e51b81526004016100fe90610509565b60405180910390fd5b600254610124906001600160a01b0316838363ffffffff61027f16565b5050565b6001546001600160a01b031633146101525760405162461bcd60e51b81526004016100fe90610486565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b031681565b6001546001600160a01b031681565b6000546001600160a01b031633146101fe5760405162461bcd60e51b81526004016100fe90610509565b6001600160a01b0381166102245760405162461bcd60e51b81526004016100fe906104e2565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6102d58363a9059cbb60e01b848460405160240161029e92919061046d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526102da565b505050565b60006060836001600160a01b0316836040516102f69190610420565b6000604051808303816000865af19150503d8060008114610333576040519150601f19603f3d011682016040523d82523d6000602084013e610338565b606091505b50915091508161035a5760405162461bcd60e51b81526004016100fe906104ad565b80511561039157808060200190518101906103759190610400565b6103915760405162461bcd60e51b81526004016100fe9061052c565b50505050565b80356001600160a01b03811681146103ae57600080fd5b92915050565b6000602082840312156103c5578081fd5b6103cf8383610397565b9392505050565b600080604083850312156103e8578081fd5b6103f28484610397565b946020939093013593505050565b600060208284031215610411578081fd5b815180151581146103cf578182fd5b60008251815b818110156104405760208186018101518583015201610426565b8181111561044e5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b60608201526080019056fea26469706673582212205ad8caf142b7a2c457e73a7f840e61c56c23ddb79da79a892a5d31d7e8a1d28c64736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "364:314:45:-:0;;;470:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;757:7:38;:20;;-1:-1:-1;;;;;;757:20:38;767:10;757:20;;;;792:41;;-1:-1:-1;;;;;825:7:38;;;;757;792:41;;757:7;;792:41;519:9:45;:22;;-1:-1:-1;;;;;;519:22:45;-1:-1:-1;;;;;519:22:45;;;;;;;;;;364:314;;146:263:-1;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;83:13;;-1:-1;;;;;576:54;;701:35;;691:2;;-1:-1;;740:12;691:2;319:74;223:186;-1:-1;;;223:186;;364:314:45;;;;;;", + "deployedSourceMap": "364:314:45:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;251:22:38;;;:::i;:::-;;;;;;;;;;;;;;;;554:122:45;;;;;;;;;:::i;:::-;;1072:225:38;;;:::i;439:24:45:-;;;:::i;279:26:38:-;;;:::i;846:220::-;;;;;;;;;:::i;251:22::-;;;-1:-1:-1;;;;;251:22:38;;:::o;554:122:45:-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;;;;;;;;;634:9:45::1;::::0;627:42:::1;::::0;-1:-1:-1;;;;;634:9:45::1;658:2:::0;662:6;627:30:::1;:42::i;:::-;554:122:::0;;:::o;1072:225:38:-;1139:11;;-1:-1:-1;;;;;1139:11:38;1125:10;:25;1117:51;;;;-1:-1:-1;;;1117:51:38;;;;;;;;;1213:11;;;1204:7;;1183:42;;-1:-1:-1;;;;;1213:11:38;;;;1204:7;;;;1183:42;;;1245:11;;;;1235:21;;-1:-1:-1;;;;;1245:11:38;;-1:-1:-1;;;;;;1235:21:38;;;;;;;1266:24;;;1072:225::o;439:24:45:-;;;-1:-1:-1;;;;;439:24:45;;:::o;279:26:38:-;;;-1:-1:-1;;;;;279:26:38;;:::o;846:220::-;635:7;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;-1:-1:-1;;;;;928:22:38;::::1;920:48;;;::::0;-1:-1:-1;;;920:48:38;;::::1;::::0;::::1;;;;;1009:7;::::0;;983:44:::1;::::0;-1:-1:-1;;;;;983:44:38;;::::1;::::0;1009:7;::::1;::::0;983:44:::1;::::0;::::1;1037:11;:22:::0;;-1:-1:-1;;;;;;1037:22:38::1;-1:-1:-1::0;;;;;1037:22:38;;;::::1;::::0;;;::::1;::::0;;846:220::o;804:205:40:-;916:86;936:5;966:23;;;991:2;995:5;943:58;;;;;;;;;;;;;;-1:-1:-1;;943:58:40;;;;;;;;;;;;;;-1:-1:-1;;;;;943:58:40;-1:-1:-1;;;;;;943:58:40;;;;;;;;;;;916:19;:86::i;:::-;804:205;;;:::o;2335:1027::-;3025:25;;2984:12;;2998:23;;-1:-1:-1;;;;;3025:19:40;;;:25;;3045:4;;3025:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2983:67;;;;3068:7;3060:52;;;;-1:-1:-1;;;3060:52:40;;;;;;;;;3127:17;;:21;3123:233;;3279:10;3268:30;;;;;;;;;;;;;;3260:85;;;;-1:-1:-1;;;3260:85:40;;;;;;;;;2335:1027;;;;:::o;5:130:-1:-;72:20;;-1:-1;;;;;7259:54;;7740:35;;7730:2;;7789:1;;7779:12;7730:2;57:78;;;;;414:241;;518:2;506:9;497:7;493:23;489:32;486:2;;;-1:-1;;524:12;486:2;586:53;631:7;607:22;586:53;;;576:63;480:175;-1:-1;;;480:175;662:366;;;783:2;771:9;762:7;758:23;754:32;751:2;;;-1:-1;;789:12;751:2;851:53;896:7;872:22;851:53;;;841:63;941:2;980:22;;;;344:20;;-1:-1;;;745:283;1035:257;;1147:2;1135:9;1126:7;1122:23;1118:32;1115:2;;;-1:-1;;1153:12;1115:2;223:6;217:13;7886:5;7171:13;7164:21;7864:5;7861:32;7851:2;;-1:-1;;7897:12;3592:271;;1579:5;6641:12;-1:-1;7477:101;7491:6;7488:1;7485:13;7477:101;;;1723:4;7558:11;;;;;7552:18;7539:11;;;7532:39;7506:10;7477:101;;;7593:6;7590:1;7587:13;7584:2;;;-1:-1;7649:6;7644:3;7640:16;7633:27;7584:2;-1:-1;1754:16;;;;;3726:137;-1:-1;;3726:137;3870:222;-1:-1;;;;;7259:54;;;;1370:37;;3997:2;3982:18;;3968:124;4099:333;-1:-1;;;;;7259:54;;;;1370:37;;4418:2;4403:18;;3543:37;4254:2;4239:18;;4225:207;4439:416;4639:2;4653:47;;;2007:2;4624:18;;;6939:19;-1:-1;;;6979:14;;;2023:36;2078:12;;;4610:245;4862:416;5062:2;5076:47;;;5047:18;;;6939:19;2365:34;6979:14;;;2345:55;2419:12;;;5033:245;5285:416;5485:2;5499:47;;;2670:2;5470:18;;;6939:19;-1:-1;;;6979:14;;;2686:36;2741:12;;;5456:245;5708:416;5908:2;5922:47;;;2992:1;5893:18;;;6939:19;-1:-1;;;6979:14;;;3007:32;3058:12;;;5879:245;6131:416;6331:2;6345:47;;;3309:2;6316:18;;;6939:19;3345:34;6979:14;;;3325:55;-1:-1;;;3400:12;;;3393:34;3446:12;;;6302:245", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {Ownable} from \"../lib/Ownable.sol\";\nimport {SafeERC20} from \"../lib/SafeERC20.sol\";\nimport {IERC20} from \"../intf/IERC20.sol\";\n\n\ninterface IDODORewardVault {\n function reward(address to, uint256 amount) external;\n}\n\n\ncontract DODORewardVault is Ownable {\n using SafeERC20 for IERC20;\n\n address public dodoToken;\n\n constructor(address _dodoToken) public {\n dodoToken = _dodoToken;\n }\n\n function reward(address to, uint256 amount) external onlyOwner {\n IERC20(dodoToken).safeTransfer(to, amount);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol", + "exportedSymbols": { + "DODORewardVault": [ + 12998 + ], + "IDODORewardVault": [ + 12962 + ] + }, + "id": 12999, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12947, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:45" + }, + { + "id": 12948, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:45" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 12950, + "nodeType": "ImportDirective", + "scope": 12999, + "sourceUnit": 11272, + "src": "136:43:45", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12949, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:45", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "../lib/SafeERC20.sol", + "id": 12952, + "nodeType": "ImportDirective", + "scope": 12999, + "sourceUnit": 11441, + "src": "180:47:45", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12951, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "188:9:45", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 12954, + "nodeType": "ImportDirective", + "scope": 12999, + "sourceUnit": 10608, + "src": "228:42:45", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12953, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "236:6:45", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 12962, + "linearizedBaseContracts": [ + 12962 + ], + "name": "IDODORewardVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "21670f22", + "id": 12961, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "reward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12959, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12956, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12961, + "src": "322:10:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12955, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "322:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12958, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12961, + "src": "334:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12957, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "334:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "321:28:45" + }, + "returnParameters": { + "id": 12960, + "nodeType": "ParameterList", + "parameters": [], + "src": "358:0:45" + }, + "scope": 12962, + "src": "306:53:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12999, + "src": "273:88:45" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12963, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "392:7:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 12964, + "nodeType": "InheritanceSpecifier", + "src": "392:7:45" + } + ], + "contractDependencies": [ + 11271 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12998, + "linearizedBaseContracts": [ + 12998, + 11271 + ], + "name": "DODORewardVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 12967, + "libraryName": { + "contractScope": null, + "id": 12965, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "412:9:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "406:27:45", + "typeName": { + "contractScope": null, + "id": 12966, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "426:6:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "constant": false, + "functionSelector": "75123ff9", + "id": 12969, + "mutability": "mutable", + "name": "dodoToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12998, + "src": "439:24:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "439:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 12978, + "nodeType": "Block", + "src": "509:39:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12974, + "name": "dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12969, + "src": "519:9:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12975, + "name": "_dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12971, + "src": "531:10:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "519:22:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12977, + "nodeType": "ExpressionStatement", + "src": "519:22:45" + } + ] + }, + "documentation": null, + "id": 12979, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12971, + "mutability": "mutable", + "name": "_dodoToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12979, + "src": "482:18:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "482:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "481:20:45" + }, + "returnParameters": { + "id": 12973, + "nodeType": "ParameterList", + "parameters": [], + "src": "509:0:45" + }, + "scope": 12998, + "src": "470:78:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12996, + "nodeType": "Block", + "src": "617:59:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12992, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12981, + "src": "658:2:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12993, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12983, + "src": "662:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12989, + "name": "dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12969, + "src": "634:9:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12988, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "627:6:45", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "627:17:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "627:30:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 12994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "627:42:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12995, + "nodeType": "ExpressionStatement", + "src": "627:42:45" + } + ] + }, + "documentation": null, + "functionSelector": "21670f22", + "id": 12997, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 12986, + "modifierName": { + "argumentTypes": null, + "id": 12985, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "607:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "607:9:45" + } + ], + "name": "reward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12981, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12997, + "src": "570:10:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12980, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "570:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12983, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12997, + "src": "582:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "582:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "569:28:45" + }, + "returnParameters": { + "id": 12987, + "nodeType": "ParameterList", + "parameters": [], + "src": "617:0:45" + }, + "scope": 12998, + "src": "554:122:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12999, + "src": "364:314:45" + } + ], + "src": "78:601:45" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol", + "exportedSymbols": { + "DODORewardVault": [ + 12998 + ], + "IDODORewardVault": [ + 12962 + ] + }, + "id": 12999, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12947, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:45" + }, + { + "id": 12948, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:45" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 12950, + "nodeType": "ImportDirective", + "scope": 12999, + "sourceUnit": 11272, + "src": "136:43:45", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12949, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:45", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "../lib/SafeERC20.sol", + "id": 12952, + "nodeType": "ImportDirective", + "scope": 12999, + "sourceUnit": 11441, + "src": "180:47:45", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12951, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "188:9:45", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 12954, + "nodeType": "ImportDirective", + "scope": 12999, + "sourceUnit": 10608, + "src": "228:42:45", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12953, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "236:6:45", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 12962, + "linearizedBaseContracts": [ + 12962 + ], + "name": "IDODORewardVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "21670f22", + "id": 12961, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "reward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12959, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12956, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12961, + "src": "322:10:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12955, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "322:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12958, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12961, + "src": "334:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12957, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "334:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "321:28:45" + }, + "returnParameters": { + "id": 12960, + "nodeType": "ParameterList", + "parameters": [], + "src": "358:0:45" + }, + "scope": 12962, + "src": "306:53:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12999, + "src": "273:88:45" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12963, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "392:7:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 12964, + "nodeType": "InheritanceSpecifier", + "src": "392:7:45" + } + ], + "contractDependencies": [ + 11271 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12998, + "linearizedBaseContracts": [ + 12998, + 11271 + ], + "name": "DODORewardVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 12967, + "libraryName": { + "contractScope": null, + "id": 12965, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "412:9:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "406:27:45", + "typeName": { + "contractScope": null, + "id": 12966, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "426:6:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "constant": false, + "functionSelector": "75123ff9", + "id": 12969, + "mutability": "mutable", + "name": "dodoToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12998, + "src": "439:24:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "439:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 12978, + "nodeType": "Block", + "src": "509:39:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12974, + "name": "dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12969, + "src": "519:9:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12975, + "name": "_dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12971, + "src": "531:10:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "519:22:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12977, + "nodeType": "ExpressionStatement", + "src": "519:22:45" + } + ] + }, + "documentation": null, + "id": 12979, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12971, + "mutability": "mutable", + "name": "_dodoToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12979, + "src": "482:18:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "482:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "481:20:45" + }, + "returnParameters": { + "id": 12973, + "nodeType": "ParameterList", + "parameters": [], + "src": "509:0:45" + }, + "scope": 12998, + "src": "470:78:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12996, + "nodeType": "Block", + "src": "617:59:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12992, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12981, + "src": "658:2:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12993, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12983, + "src": "662:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12989, + "name": "dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12969, + "src": "634:9:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12988, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "627:6:45", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "627:17:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "627:30:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 12994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "627:42:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12995, + "nodeType": "ExpressionStatement", + "src": "627:42:45" + } + ] + }, + "documentation": null, + "functionSelector": "21670f22", + "id": 12997, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 12986, + "modifierName": { + "argumentTypes": null, + "id": 12985, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "607:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "607:9:45" + } + ], + "name": "reward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12981, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12997, + "src": "570:10:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12980, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "570:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12983, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12997, + "src": "582:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "582:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "569:28:45" + }, + "returnParameters": { + "id": 12987, + "nodeType": "ParameterList", + "parameters": [], + "src": "617:0:45" + }, + "scope": 12998, + "src": "554:122:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12999, + "src": "364:314:45" + } + ], + "src": "78:601:45" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.739Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/DODOToken.json b/build-v1/contracts/DODOToken.json new file mode 100644 index 0000000..10966a8 --- /dev/null +++ b/build-v1/contracts/DODOToken.json @@ -0,0 +1,7127 @@ +{ + "contractName": "DODOToken", + "abi": [ + { + "inputs": [], + "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": "amount", + "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": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "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": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "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": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"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\":\"amount\",\"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\":\"amount\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\",\"params\":{\"owner\":\"address The address which owns the funds.\",\"spender\":\"address The address which will spend the funds.\"},\"returns\":{\"_0\":\"A uint256 specifying the amount of tokens still available for the spender.\"}},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\",\"params\":{\"amount\":\"The amount of tokens to be spent.\",\"spender\":\"The address which will spend the funds.\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\",\"params\":{\"owner\":\"The address to query the the balance of.\"},\"returns\":{\"balance\":\"An uint256 representing the amount owned by the passed address.\"}},\"transfer(address,uint256)\":{\"details\":\"transfer token for a specified address\",\"params\":{\"amount\":\"The amount to be transferred.\",\"to\":\"The address to transfer to.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another\",\"params\":{\"amount\":\"uint256 the amount of tokens to be transferred\",\"from\":\"address The address which you want to send tokens from\",\"to\":\"address The address which you want to transfer to\"}}},\"title\":\"DODO Token\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOToken.sol\":\"DODOToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOToken.sol\":{\"keccak256\":\"0xb04850d5e89e97ca51756b998152561ba9f4d284ab60cd8cc0be27b14d8d79af\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f515f4fd75c74f81c1f187982b8d0143d6bf8876602d97857b9706f92f402540\",\"dweb:/ipfs/QmPECJfxAuRzXdCTtr76yg5URmdThzPHpDG65zfYgwLtAd\"]}},\"version\":1}", + "bytecode": "0x60c06040526004608081905263444f444f60e01b60a09081526100259160009190610091565b50604080518082019091526009808252681113d113c8189a5c9960ba1b602090920191825261005691600191610091565b5060126002556b033b2e3c9fd0803ce800000060035534801561007857600080fd5b506003543360009081526004602052604090205561012c565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100d257805160ff19168380011785556100ff565b828001600101855582156100ff579182015b828111156100ff5782518255916020019190600101906100e4565b5061010b92915061010f565b5090565b61012991905b8082111561010b5760008155600101610115565b90565b6107cb8061013b6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce567146100fe57806370a082311461010657806395d89b4114610119578063a9059cbb14610121578063dd62ed3e1461013457610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100d657806323b872dd146100eb575b600080fd5b6100a0610147565b6040516100ad9190610681565b60405180910390f35b6100c96100c436600461064c565b6101d4565b6040516100ad9190610676565b6100de61023f565b6040516100ad9190610774565b6100c96100f936600461060c565b610245565b6100de6103db565b6100de6101143660046105bd565b6103e1565b6100a06103fc565b6100c961012f36600461064c565b610457565b6100de6101423660046105d8565b610527565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101cc5780601f106101a1576101008083540402835291602001916101cc565b820191906000526020600020905b8154815290600101906020018083116101af57829003601f168201915b505050505081565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061022d908690610774565b60405180910390a35060015b92915050565b60035481565b6001600160a01b0383166000908152600460205260408120548211156102865760405162461bcd60e51b815260040161027d90610725565b60405180910390fd5b6001600160a01b03841660009081526005602090815260408083203384529091529020548211156102c95760405162461bcd60e51b815260040161027d906106d4565b6001600160a01b0384166000908152600460205260409020546102f2908363ffffffff61055216565b6001600160a01b038086166000908152600460205260408082209390935590851681522054610327908363ffffffff61057a16565b6001600160a01b03808516600090815260046020908152604080832094909455918716815260058252828120338252909152205461036b908363ffffffff61055216565b6001600160a01b0380861660008181526005602090815260408083203384529091529081902093909355915190851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103c9908690610774565b60405180910390a35060019392505050565b60025481565b6001600160a01b031660009081526004602052604090205490565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101cc5780601f106101a1576101008083540402835291602001916101cc565b336000908152600460205260408120548211156104865760405162461bcd60e51b815260040161027d90610725565b336000908152600460205260409020546104a6908363ffffffff61055216565b33600090815260046020526040808220929092556001600160a01b038516815220546104d8908363ffffffff61057a16565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061022d908690610774565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6000828211156105745760405162461bcd60e51b815260040161027d90610702565b50900390565b60008282018381101561059f5760405162461bcd60e51b815260040161027d90610751565b9392505050565b80356001600160a01b038116811461023957600080fd5b6000602082840312156105ce578081fd5b61059f83836105a6565b600080604083850312156105ea578081fd5b6105f484846105a6565b915061060384602085016105a6565b90509250929050565b600080600060608486031215610620578081fd5b833561062b8161077d565b9250602084013561063b8161077d565b929592945050506040919091013590565b6000806040838503121561065e578182fd5b61066884846105a6565b946020939093013593505050565b901515815260200190565b6000602080835283518082850152825b818110156106ad57858101830151858201604001528201610691565b818111156106be5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526014908201527308298989eae829c868abe9c9ea8be8a9c9eaa8e960631b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252601290820152710848298829c868abe9c9ea8be8a9c9eaa8e960731b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b90815260200190565b6001600160a01b038116811461079257600080fd5b5056fea2646970667358221220bafeb3afc7adfd898ddcf112e8acd950deaa5b7758f6617aa358132e9a8795b064736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063313ce56711610066578063313ce567146100fe57806370a082311461010657806395d89b4114610119578063a9059cbb14610121578063dd62ed3e1461013457610093565b806306fdde0314610098578063095ea7b3146100b657806318160ddd146100d657806323b872dd146100eb575b600080fd5b6100a0610147565b6040516100ad9190610681565b60405180910390f35b6100c96100c436600461064c565b6101d4565b6040516100ad9190610676565b6100de61023f565b6040516100ad9190610774565b6100c96100f936600461060c565b610245565b6100de6103db565b6100de6101143660046105bd565b6103e1565b6100a06103fc565b6100c961012f36600461064c565b610457565b6100de6101423660046105d8565b610527565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101cc5780601f106101a1576101008083540402835291602001916101cc565b820191906000526020600020905b8154815290600101906020018083116101af57829003601f168201915b505050505081565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061022d908690610774565b60405180910390a35060015b92915050565b60035481565b6001600160a01b0383166000908152600460205260408120548211156102865760405162461bcd60e51b815260040161027d90610725565b60405180910390fd5b6001600160a01b03841660009081526005602090815260408083203384529091529020548211156102c95760405162461bcd60e51b815260040161027d906106d4565b6001600160a01b0384166000908152600460205260409020546102f2908363ffffffff61055216565b6001600160a01b038086166000908152600460205260408082209390935590851681522054610327908363ffffffff61057a16565b6001600160a01b03808516600090815260046020908152604080832094909455918716815260058252828120338252909152205461036b908363ffffffff61055216565b6001600160a01b0380861660008181526005602090815260408083203384529091529081902093909355915190851691907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103c9908690610774565b60405180910390a35060019392505050565b60025481565b6001600160a01b031660009081526004602052604090205490565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156101cc5780601f106101a1576101008083540402835291602001916101cc565b336000908152600460205260408120548211156104865760405162461bcd60e51b815260040161027d90610725565b336000908152600460205260409020546104a6908363ffffffff61055216565b33600090815260046020526040808220929092556001600160a01b038516815220546104d8908363ffffffff61057a16565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061022d908690610774565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6000828211156105745760405162461bcd60e51b815260040161027d90610702565b50900390565b60008282018381101561059f5760405162461bcd60e51b815260040161027d90610751565b9392505050565b80356001600160a01b038116811461023957600080fd5b6000602082840312156105ce578081fd5b61059f83836105a6565b600080604083850312156105ea578081fd5b6105f484846105a6565b915061060384602085016105a6565b90509250929050565b600080600060608486031215610620578081fd5b833561062b8161077d565b9250602084013561063b8161077d565b929592945050506040919091013590565b6000806040838503121561065e578182fd5b61066884846105a6565b946020939093013593505050565b901515815260200190565b6000602080835283518082850152825b818110156106ad57858101830151858201604001528201610691565b818111156106be5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526014908201527308298989eae829c868abe9c9ea8be8a9c9eaa8e960631b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252601290820152710848298829c868abe9c9ea8be8a9c9eaa8e960731b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b90815260200190565b6001600160a01b038116811461079257600080fd5b5056fea2646970667358221220bafeb3afc7adfd898ddcf112e8acd950deaa5b7758f6617aa358132e9a8795b064736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "295:29:46:-:0;237:3209;295:29;;237:3209;295:29;;;-1:-1:-1;;;295:29:46;;;;;;-1:-1:-1;;295:29:46;;:::i;:::-;-1:-1:-1;330:32:46;;;;;;;;;;;;;-1:-1:-1;;;330:32:46;;;;;;;;;;;;:::i;:::-;;395:2;369:28;;432:19;403:48;;842:72;;;;;;;;;-1:-1:-1;896:11:46;;882:10;873:20;;;;:8;:20;;;;;:34;237:3209;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;237:3209:46;;;-1:-1:-1;237:3209:46;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "237:3209:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;330:32;;;:::i;:::-;;;;;;;;;;;;;;;;2786:199;;;;;;;;;:::i;:::-;;;;;;;;403:48;;;:::i;:::-;;;;;;;;2037:506;;;;;;;;;:::i;369:28::-;;;:::i;1637:113::-;;;;;;;;;:::i;295:29::-;;;:::i;1083:329::-;;;;;;;;;:::i;3316:128::-;;;;;;;;;:::i;330:32::-;;;;;;;;;;;;;;;-1:-1:-1;;330:32:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2786:199::-;2876:10;2852:4;2868:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;2868:28:46;;;;;;;;;;:37;;;2920;2852:4;;2868:28;;2920:37;;;;2899:6;;2920:37;;;;;;;;;;-1:-1:-1;2974:4:46;2786:199;;;;;:::o;403:48::-;;;;:::o;2037:506::-;-1:-1:-1;;;;;2181:14:46;;2147:4;2181:14;;;:8;:14;;;;;;2171:24;;;2163:55;;;;-1:-1:-1;;;2163:55:46;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2246:13:46;;;;;;:7;:13;;;;;;;;2260:10;2246:25;;;;;;;;2236:35;;;2228:68;;;;-1:-1:-1;;;2228:68:46;;;;;;;;;-1:-1:-1;;;;;2324:14:46;;;;;;:8;:14;;;;;;:26;;2343:6;2324:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;2307:14:46;;;;;;;:8;:14;;;;;;:43;;;;2375:12;;;;;;;:24;;2392:6;2375:24;:16;:24;:::i;:::-;-1:-1:-1;;;;;2360:12:46;;;;;;;:8;:12;;;;;;;;:39;;;;2437:13;;;;;:7;:13;;;;;2451:10;2437:25;;;;;;;:37;;2467:6;2437:37;:29;:37;:::i;:::-;-1:-1:-1;;;;;2409:13:46;;;;;;;:7;:13;;;;;;;;2423:10;2409:25;;;;;;;;;:65;;;;2489:26;;;;;;2409:13;2489:26;;;;2508:6;;2489:26;;;;;;;;;;-1:-1:-1;2532:4:46;2037:506;;;;;:::o;369:28::-;;;;:::o;1637:113::-;-1:-1:-1;;;;;1728:15:46;1694;1728;;;:8;:15;;;;;;;1637:113::o;295:29::-;;;;;;;;;;;;;;;-1:-1:-1;;295:29:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1083:329;1188:10;1145:4;1179:20;;;:8;:20;;;;;;1169:30;;;1161:61;;;;-1:-1:-1;;;1161:61:46;;;;;;;;;1265:10;1256:20;;;;:8;:20;;;;;;:32;;1281:6;1256:32;:24;:32;:::i;:::-;1242:10;1233:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;1313:12:46;;;;;;:24;;1330:6;1313:24;:16;:24;:::i;:::-;-1:-1:-1;;;;;1298:12:46;;;;;;:8;:12;;;;;;;:39;;;;1352:32;;1361:10;;1352:32;;;;1377:6;;1352:32;;3316:128;-1:-1:-1;;;;;3414:14:46;;;3388:7;3414:14;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;3316:128::o;934:134:41:-;992:7;1024:1;1019;:6;;1011:28;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;1074:157::-;1132:7;1163:5;;;1186:6;;;;1178:28;;;;-1:-1:-1;;;1178:28:41;;;;;;;;;1223:1;1074:157;-1:-1:-1;;;1074:157:41:o;5:130:-1:-;72:20;;-1:-1;;;;;6654:54;;7240:35;;7230:2;;7289:1;;7279:12;279:241;;383:2;371:9;362:7;358:23;354:32;351:2;;;-1:-1;;389:12;351:2;451:53;496:7;472:22;451:53;;527:366;;;648:2;636:9;627:7;623:23;619:32;616:2;;;-1:-1;;654:12;616:2;716:53;761:7;737:22;716:53;;;706:63;;824:53;869:7;806:2;849:9;845:22;824:53;;;814:63;;610:283;;;;;;900:491;;;;1038:2;1026:9;1017:7;1013:23;1009:32;1006:2;;;-1:-1;;1044:12;1006:2;85:6;72:20;97:33;124:5;97:33;;;1096:63;-1:-1;1196:2;1235:22;;72:20;97:33;72:20;97:33;;;1000:391;;1204:63;;-1:-1;;;1304:2;1343:22;;;;209:20;;1000:391;1398:366;;;1519:2;1507:9;1498:7;1494:23;1490:32;1487:2;;;-1:-1;;1525:12;1487:2;1587:53;1632:7;1608:22;1587:53;;;1577:63;1677:2;1716:22;;;;209:20;;-1:-1;;;1481:283;3646:210;6566:13;;6559:21;1836:34;;3767:2;3752:18;;3738:118;3863:310;;4010:2;;4031:17;4024:47;2027:5;6189:12;6346:6;4010:2;3999:9;3995:18;6334:19;-1:-1;6872:101;6886:6;6883:1;6880:13;6872:101;;;6953:11;;;;;6947:18;6934:11;;;6374:14;6934:11;6927:39;6901:10;;6872:101;;;6988:6;6985:1;6982:13;6979:2;;;-1:-1;6374:14;7044:6;3999:9;7035:16;;7028:27;6979:2;-1:-1;7160:7;7144:14;-1:-1;;7140:28;2185:39;;;;6374:14;2185:39;;3981:192;-1:-1;;;3981:192;4180:416;4380:2;4394:47;;;2461:2;4365:18;;;6334:19;-1:-1;;;6374:14;;;2477:43;2539:12;;;4351:245;4603:416;4803:2;4817:47;;;2790:1;4788:18;;;6334:19;-1:-1;;;6374:14;;;2805:32;2856:12;;;4774:245;5026:416;5226:2;5240:47;;;3107:2;5211:18;;;6334:19;-1:-1;;;6374:14;;;3123:41;3183:12;;;5197:245;5449:416;5649:2;5663:47;;;3434:1;5634:18;;;6334:19;-1:-1;;;6374:14;;;3449:32;3500:12;;;5620:245;5872:222;3597:37;;;5999:2;5984:18;;5970:124;7181:117;-1:-1;;;;;6654:54;;7240:35;;7230:2;;7289:1;;7279:12;7230:2;7224:74;", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {SafeMath} from \"../lib/SafeMath.sol\";\n\n\n/**\n * @title DODO Token\n * @author DODO Breeder\n */\ncontract DODOToken {\n using SafeMath for uint256;\n\n string public symbol = \"DODO\";\n string public name = \"DODO bird\";\n\n uint256 public decimals = 18;\n uint256 public totalSupply = 1000000000 * 10**18; // 1 Billion\n\n mapping(address => uint256) internal balances;\n mapping(address => mapping(address => uint256)) internal allowed;\n\n // ============ Events ============\n\n event Transfer(address indexed from, address indexed to, uint256 amount);\n\n event Approval(address indexed owner, address indexed spender, uint256 amount);\n\n // ============ Functions ============\n\n constructor() public {\n balances[msg.sender] = totalSupply;\n }\n\n /**\n * @dev transfer token for a specified address\n * @param to The address to transfer to.\n * @param amount The amount to be transferred.\n */\n function transfer(address to, uint256 amount) public returns (bool) {\n require(amount <= balances[msg.sender], \"BALANCE_NOT_ENOUGH\");\n\n balances[msg.sender] = balances[msg.sender].sub(amount);\n balances[to] = balances[to].add(amount);\n emit Transfer(msg.sender, to, amount);\n return true;\n }\n\n /**\n * @dev Gets the balance of the specified address.\n * @param owner The address to query the the balance of.\n * @return balance An uint256 representing the amount owned by the passed address.\n */\n function balanceOf(address owner) external view returns (uint256 balance) {\n return balances[owner];\n }\n\n /**\n * @dev Transfer tokens from one address to another\n * @param from address The address which you want to send tokens from\n * @param to address The address which you want to transfer to\n * @param amount uint256 the amount of tokens to be transferred\n */\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public returns (bool) {\n require(amount <= balances[from], \"BALANCE_NOT_ENOUGH\");\n require(amount <= allowed[from][msg.sender], \"ALLOWANCE_NOT_ENOUGH\");\n\n balances[from] = balances[from].sub(amount);\n balances[to] = balances[to].add(amount);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(amount);\n emit Transfer(from, to, amount);\n return true;\n }\n\n /**\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n * @param spender The address which will spend the funds.\n * @param amount The amount of tokens to be spent.\n */\n function approve(address spender, uint256 amount) public returns (bool) {\n allowed[msg.sender][spender] = amount;\n emit Approval(msg.sender, spender, amount);\n return true;\n }\n\n /**\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\n * @param owner address The address which owns the funds.\n * @param spender address The address which will spend the funds.\n * @return A uint256 specifying the amount of tokens still available for the spender.\n */\n function allowance(address owner, address spender) public view returns (uint256) {\n return allowed[owner][spender];\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOToken.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOToken.sol", + "exportedSymbols": { + "DODOToken": [ + 13255 + ] + }, + "id": 13256, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 13000, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:46" + }, + { + "id": 13001, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:46" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 13003, + "nodeType": "ImportDirective", + "scope": 13256, + "sourceUnit": 11624, + "src": "136:45:46", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13002, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:46", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 13004, + "nodeType": "StructuredDocumentation", + "src": "184:52:46", + "text": " @title DODO Token\n @author DODO Breeder" + }, + "fullyImplemented": true, + "id": 13255, + "linearizedBaseContracts": [ + 13255 + ], + "name": "DODOToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 13007, + "libraryName": { + "contractScope": null, + "id": 13005, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "268:8:46", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "262:27:46", + "typeName": { + "id": 13006, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "281:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "95d89b41", + "id": 13010, + "mutability": "mutable", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13255, + "src": "295:29:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 13008, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "295:6:46", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "444f444f", + "id": 13009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "318:6:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0585588d96cfcc93db303104eb4624df4d2a6f3cba84f792e748a1abd81a131e", + "typeString": "literal_string \"DODO\"" + }, + "value": "DODO" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "06fdde03", + "id": 13013, + "mutability": "mutable", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13255, + "src": "330:32:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 13011, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "330:6:46", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "444f444f2062697264", + "id": 13012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "351:11:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_27ec73aa01f11312bc6e67cb818a8c37d36dbc3067474dbbe24066fb81b76e94", + "typeString": "literal_string \"DODO bird\"" + }, + "value": "DODO bird" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "313ce567", + "id": 13016, + "mutability": "mutable", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13255, + "src": "369:28:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13014, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "369:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 13015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "395:2:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 13023, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13255, + "src": "403:48:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "403:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000000" + }, + "id": 13022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030303030", + "id": 13018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "432:10:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1000000000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 13021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 13019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "445:2:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 13020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "449:2:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "445:6:46", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "src": "432:19:46", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000000" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 13027, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13255, + "src": "471:45:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 13026, + "keyType": { + "id": 13024, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "479:7:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "471:27:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 13025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "490:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13033, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13255, + "src": "522:64:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 13032, + "keyType": { + "id": 13028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "530:7:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "522:47:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 13031, + "keyType": { + "id": 13029, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "549:7:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "541:27:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 13030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 13041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 13040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13041, + "src": "649:20:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "649:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13041, + "src": "671:18:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "671:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13039, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13041, + "src": "691:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "691:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "648:58:46" + }, + "src": "634:73:46" + }, + { + "anonymous": false, + "documentation": null, + "id": 13049, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 13048, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13043, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13049, + "src": "728:21:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "728:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13045, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13049, + "src": "751:23:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "751:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13047, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13049, + "src": "776:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13046, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "776:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "727:64:46" + }, + "src": "713:79:46" + }, + { + "body": { + "id": 13059, + "nodeType": "Block", + "src": "863:51:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13052, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "873:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13055, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13053, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "882:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "882:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "873:20:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13056, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13023, + "src": "896:11:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "873:34:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13058, + "nodeType": "ExpressionStatement", + "src": "873:34:46" + } + ] + }, + "documentation": null, + "id": 13060, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13050, + "nodeType": "ParameterList", + "parameters": [], + "src": "853:2:46" + }, + "returnParameters": { + "id": 13051, + "nodeType": "ParameterList", + "parameters": [], + "src": "863:0:46" + }, + "scope": 13255, + "src": "842:72:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13113, + "nodeType": "Block", + "src": "1151:261:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13071, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13065, + "src": "1169:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13072, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "1179:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13075, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13073, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1188:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1188:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1179:20:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1169:30:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "42414c414e43455f4e4f545f454e4f554748", + "id": 13077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:20:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + }, + "value": "BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + } + ], + "id": 13070, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1161:7:46", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1161:61:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13079, + "nodeType": "ExpressionStatement", + "src": "1161:61:46" + }, + { + "expression": { + "argumentTypes": null, + "id": 13091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13080, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "1233:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13083, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13081, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1242:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1242:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1233:20:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13089, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13065, + "src": "1281:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13084, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "1256:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13087, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13085, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1265:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1265:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1256:20:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1256:24:46", + "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": 13090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1256:32:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1233:55:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13092, + "nodeType": "ExpressionStatement", + "src": "1233:55:46" + }, + { + "expression": { + "argumentTypes": null, + "id": 13102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13093, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "1298:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13095, + "indexExpression": { + "argumentTypes": null, + "id": 13094, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13063, + "src": "1307:2:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1298:12:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13100, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13065, + "src": "1330:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13096, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "1313:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13098, + "indexExpression": { + "argumentTypes": null, + "id": 13097, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13063, + "src": "1322:2:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1313:12:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1313:16:46", + "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": 13101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1313:24:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1298:39:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13103, + "nodeType": "ExpressionStatement", + "src": "1298:39:46" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13105, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1361:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1361:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 13107, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13063, + "src": "1373:2:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13108, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13065, + "src": "1377:6:46", + "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": 13104, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13041, + "src": "1352:8:46", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 13109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1352:32:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13110, + "nodeType": "EmitStatement", + "src": "1347:37:46" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 13111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1401:4:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 13069, + "id": 13112, + "nodeType": "Return", + "src": "1394:11:46" + } + ] + }, + "documentation": { + "id": 13061, + "nodeType": "StructuredDocumentation", + "src": "920:158:46", + "text": " @dev transfer token for a specified address\n @param to The address to transfer to.\n @param amount The amount to be transferred." + }, + "functionSelector": "a9059cbb", + "id": 13114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13066, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13063, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13114, + "src": "1101:10:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13062, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1101:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13065, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13114, + "src": "1113:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1113:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1100:28:46" + }, + "returnParameters": { + "id": 13069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13068, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13114, + "src": "1145:4:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13067, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1145:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1144:6:46" + }, + "scope": 13255, + "src": "1083:329:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13126, + "nodeType": "Block", + "src": "1711:39:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13122, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "1728:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13124, + "indexExpression": { + "argumentTypes": null, + "id": 13123, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13117, + "src": "1737:5:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1728:15:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13121, + "id": 13125, + "nodeType": "Return", + "src": "1721:22:46" + } + ] + }, + "documentation": { + "id": 13115, + "nodeType": "StructuredDocumentation", + "src": "1418:214:46", + "text": " @dev Gets the balance of the specified address.\n @param owner The address to query the the balance of.\n @return balance An uint256 representing the amount owned by the passed address." + }, + "functionSelector": "70a08231", + "id": 13127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13117, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13127, + "src": "1656:13:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1656:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1655:15:46" + }, + "returnParameters": { + "id": 13121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13120, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13127, + "src": "1694:15:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1694:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1693:17:46" + }, + "scope": 13255, + "src": "1637:113:46", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13207, + "nodeType": "Block", + "src": "2153:390:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13140, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13134, + "src": "2171:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13141, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "2181:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13143, + "indexExpression": { + "argumentTypes": null, + "id": 13142, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2190:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2181:14:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2171:24:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "42414c414e43455f4e4f545f454e4f554748", + "id": 13145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2197:20:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + }, + "value": "BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + } + ], + "id": 13139, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2163:7:46", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2163:55:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13147, + "nodeType": "ExpressionStatement", + "src": "2163:55:46" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13149, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13134, + "src": "2236:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13150, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13033, + "src": "2246:7:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 13152, + "indexExpression": { + "argumentTypes": null, + "id": 13151, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2254:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2246:13:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13155, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13153, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2260:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2260:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2246:25:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2236:35:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414c4c4f57414e43455f4e4f545f454e4f554748", + "id": 13157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2273:22:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_28638f118cb48e54afcdd39bdb97baeb95a670cffee1fd95f73350a923dc1c6f", + "typeString": "literal_string \"ALLOWANCE_NOT_ENOUGH\"" + }, + "value": "ALLOWANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_28638f118cb48e54afcdd39bdb97baeb95a670cffee1fd95f73350a923dc1c6f", + "typeString": "literal_string \"ALLOWANCE_NOT_ENOUGH\"" + } + ], + "id": 13148, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2228:7:46", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2228:68:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13159, + "nodeType": "ExpressionStatement", + "src": "2228:68:46" + }, + { + "expression": { + "argumentTypes": null, + "id": 13169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13160, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "2307:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13162, + "indexExpression": { + "argumentTypes": null, + "id": 13161, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2316:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2307:14:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13167, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13134, + "src": "2343:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "2324:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13165, + "indexExpression": { + "argumentTypes": null, + "id": 13164, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2333:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2324:14:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2324:18:46", + "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": 13168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2324:26:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2307:43:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13170, + "nodeType": "ExpressionStatement", + "src": "2307:43:46" + }, + { + "expression": { + "argumentTypes": null, + "id": 13180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13171, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "2360:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13173, + "indexExpression": { + "argumentTypes": null, + "id": 13172, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13132, + "src": "2369:2:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2360:12:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13178, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13134, + "src": "2392:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13174, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "2375:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13176, + "indexExpression": { + "argumentTypes": null, + "id": 13175, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13132, + "src": "2384:2:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2375:12:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2375:16:46", + "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": 13179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2375:24:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2360:39:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13181, + "nodeType": "ExpressionStatement", + "src": "2360:39:46" + }, + { + "expression": { + "argumentTypes": null, + "id": 13197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13182, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13033, + "src": "2409:7:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 13186, + "indexExpression": { + "argumentTypes": null, + "id": 13183, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2417:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2409:13:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13187, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2423:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2423:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2409:25:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13195, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13134, + "src": "2467:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13188, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13033, + "src": "2437:7:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 13190, + "indexExpression": { + "argumentTypes": null, + "id": 13189, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2445:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2437:13:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13193, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13191, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2451:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2451:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2437:25:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2437:29:46", + "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": 13196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2437:37:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2409:65:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13198, + "nodeType": "ExpressionStatement", + "src": "2409:65:46" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13200, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2498:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13201, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13132, + "src": "2504:2:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13202, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13134, + "src": "2508:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13199, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13041, + "src": "2489:8:46", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 13203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2489:26:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13204, + "nodeType": "EmitStatement", + "src": "2484:31:46" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 13205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2532:4:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 13138, + "id": 13206, + "nodeType": "Return", + "src": "2525:11:46" + } + ] + }, + "documentation": { + "id": 13128, + "nodeType": "StructuredDocumentation", + "src": "1756:276:46", + "text": " @dev Transfer tokens from one address to another\n @param from address The address which you want to send tokens from\n @param to address The address which you want to transfer to\n @param amount uint256 the amount of tokens to be transferred" + }, + "functionSelector": "23b872dd", + "id": 13208, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13135, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13130, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13208, + "src": "2068:12:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2068:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13132, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13208, + "src": "2090:10:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13131, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2090:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13134, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13208, + "src": "2110:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13133, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2110:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2058:72:46" + }, + "returnParameters": { + "id": 13138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13137, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13208, + "src": "2147:4:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13136, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2147:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2146:6:46" + }, + "scope": 13255, + "src": "2037:506:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13236, + "nodeType": "Block", + "src": "2858:127:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13218, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13033, + "src": "2868:7:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 13222, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13219, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2876:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2876:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2868:19:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13223, + "indexExpression": { + "argumentTypes": null, + "id": 13221, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13211, + "src": "2888:7:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2868:28:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13224, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13213, + "src": "2899:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2868:37:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13226, + "nodeType": "ExpressionStatement", + "src": "2868:37:46" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13228, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2929:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2929:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 13230, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13211, + "src": "2941:7:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13231, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13213, + "src": "2950:6:46", + "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": 13227, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13049, + "src": "2920:8:46", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 13232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2920:37:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13233, + "nodeType": "EmitStatement", + "src": "2915:42:46" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 13234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2974:4:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 13217, + "id": 13235, + "nodeType": "Return", + "src": "2967:11:46" + } + ] + }, + "documentation": { + "id": 13209, + "nodeType": "StructuredDocumentation", + "src": "2549:232:46", + "text": " @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n @param spender The address which will spend the funds.\n @param amount The amount of tokens to be spent." + }, + "functionSelector": "095ea7b3", + "id": 13237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13214, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13211, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13237, + "src": "2803:15:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13210, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2803:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13213, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13237, + "src": "2820:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13212, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2820:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2802:33:46" + }, + "returnParameters": { + "id": 13217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13216, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13237, + "src": "2852:4:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13215, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2852:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2851:6:46" + }, + "scope": 13255, + "src": "2786:199:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13253, + "nodeType": "Block", + "src": "3397:47:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13247, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13033, + "src": "3414:7:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 13249, + "indexExpression": { + "argumentTypes": null, + "id": 13248, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13240, + "src": "3422:5:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3414:14:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13251, + "indexExpression": { + "argumentTypes": null, + "id": 13250, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13242, + "src": "3429:7:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3414:23:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13246, + "id": 13252, + "nodeType": "Return", + "src": "3407:30:46" + } + ] + }, + "documentation": { + "id": 13238, + "nodeType": "StructuredDocumentation", + "src": "2991:320:46", + "text": " @dev Function to check the amount of tokens that an owner allowed to a spender.\n @param owner address The address which owns the funds.\n @param spender address The address which will spend the funds.\n @return A uint256 specifying the amount of tokens still available for the spender." + }, + "functionSelector": "dd62ed3e", + "id": 13254, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13240, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13254, + "src": "3335:13:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3335:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13242, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13254, + "src": "3350:15:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13241, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3350:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3334:32:46" + }, + "returnParameters": { + "id": 13246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13245, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13254, + "src": "3388:7:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3388:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3387:9:46" + }, + "scope": 13255, + "src": "3316:128:46", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 13256, + "src": "237:3209:46" + } + ], + "src": "78:3369:46" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOToken.sol", + "exportedSymbols": { + "DODOToken": [ + 13255 + ] + }, + "id": 13256, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 13000, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:46" + }, + { + "id": 13001, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:46" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 13003, + "nodeType": "ImportDirective", + "scope": 13256, + "sourceUnit": 11624, + "src": "136:45:46", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13002, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:46", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 13004, + "nodeType": "StructuredDocumentation", + "src": "184:52:46", + "text": " @title DODO Token\n @author DODO Breeder" + }, + "fullyImplemented": true, + "id": 13255, + "linearizedBaseContracts": [ + 13255 + ], + "name": "DODOToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 13007, + "libraryName": { + "contractScope": null, + "id": 13005, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "268:8:46", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "262:27:46", + "typeName": { + "id": 13006, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "281:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "95d89b41", + "id": 13010, + "mutability": "mutable", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13255, + "src": "295:29:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 13008, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "295:6:46", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "444f444f", + "id": 13009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "318:6:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0585588d96cfcc93db303104eb4624df4d2a6f3cba84f792e748a1abd81a131e", + "typeString": "literal_string \"DODO\"" + }, + "value": "DODO" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "06fdde03", + "id": 13013, + "mutability": "mutable", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13255, + "src": "330:32:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 13011, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "330:6:46", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "444f444f2062697264", + "id": 13012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "351:11:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_27ec73aa01f11312bc6e67cb818a8c37d36dbc3067474dbbe24066fb81b76e94", + "typeString": "literal_string \"DODO bird\"" + }, + "value": "DODO bird" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "313ce567", + "id": 13016, + "mutability": "mutable", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13255, + "src": "369:28:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13014, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "369:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 13015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "395:2:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 13023, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13255, + "src": "403:48:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "403:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000000" + }, + "id": 13022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030303030303030", + "id": 13018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "432:10:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1000000000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 13021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 13019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "445:2:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 13020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "449:2:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "445:6:46", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "src": "432:19:46", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000000000000_by_1", + "typeString": "int_const 1000000000000000000000000000" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 13027, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13255, + "src": "471:45:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 13026, + "keyType": { + "id": 13024, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "479:7:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "471:27:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 13025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "490:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13033, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13255, + "src": "522:64:46", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 13032, + "keyType": { + "id": 13028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "530:7:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "522:47:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 13031, + "keyType": { + "id": 13029, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "549:7:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "541:27:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 13030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 13041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 13040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13041, + "src": "649:20:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "649:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13041, + "src": "671:18:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "671:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13039, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13041, + "src": "691:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "691:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "648:58:46" + }, + "src": "634:73:46" + }, + { + "anonymous": false, + "documentation": null, + "id": 13049, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 13048, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13043, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13049, + "src": "728:21:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "728:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13045, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13049, + "src": "751:23:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "751:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13047, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13049, + "src": "776:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13046, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "776:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "727:64:46" + }, + "src": "713:79:46" + }, + { + "body": { + "id": 13059, + "nodeType": "Block", + "src": "863:51:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13052, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "873:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13055, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13053, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "882:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "882:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "873:20:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13056, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13023, + "src": "896:11:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "873:34:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13058, + "nodeType": "ExpressionStatement", + "src": "873:34:46" + } + ] + }, + "documentation": null, + "id": 13060, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13050, + "nodeType": "ParameterList", + "parameters": [], + "src": "853:2:46" + }, + "returnParameters": { + "id": 13051, + "nodeType": "ParameterList", + "parameters": [], + "src": "863:0:46" + }, + "scope": 13255, + "src": "842:72:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13113, + "nodeType": "Block", + "src": "1151:261:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13071, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13065, + "src": "1169:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13072, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "1179:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13075, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13073, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1188:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1188:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1179:20:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1169:30:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "42414c414e43455f4e4f545f454e4f554748", + "id": 13077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1201:20:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + }, + "value": "BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + } + ], + "id": 13070, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1161:7:46", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1161:61:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13079, + "nodeType": "ExpressionStatement", + "src": "1161:61:46" + }, + { + "expression": { + "argumentTypes": null, + "id": 13091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13080, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "1233:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13083, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13081, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1242:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1242:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1233:20:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13089, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13065, + "src": "1281:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13084, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "1256:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13087, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13085, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1265:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1265:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1256:20:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1256:24:46", + "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": 13090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1256:32:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1233:55:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13092, + "nodeType": "ExpressionStatement", + "src": "1233:55:46" + }, + { + "expression": { + "argumentTypes": null, + "id": 13102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13093, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "1298:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13095, + "indexExpression": { + "argumentTypes": null, + "id": 13094, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13063, + "src": "1307:2:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1298:12:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13100, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13065, + "src": "1330:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13096, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "1313:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13098, + "indexExpression": { + "argumentTypes": null, + "id": 13097, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13063, + "src": "1322:2:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1313:12:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1313:16:46", + "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": 13101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1313:24:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1298:39:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13103, + "nodeType": "ExpressionStatement", + "src": "1298:39:46" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13105, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1361:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1361:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 13107, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13063, + "src": "1373:2:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13108, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13065, + "src": "1377:6:46", + "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": 13104, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13041, + "src": "1352:8:46", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 13109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1352:32:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13110, + "nodeType": "EmitStatement", + "src": "1347:37:46" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 13111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1401:4:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 13069, + "id": 13112, + "nodeType": "Return", + "src": "1394:11:46" + } + ] + }, + "documentation": { + "id": 13061, + "nodeType": "StructuredDocumentation", + "src": "920:158:46", + "text": " @dev transfer token for a specified address\n @param to The address to transfer to.\n @param amount The amount to be transferred." + }, + "functionSelector": "a9059cbb", + "id": 13114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13066, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13063, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13114, + "src": "1101:10:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13062, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1101:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13065, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13114, + "src": "1113:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1113:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1100:28:46" + }, + "returnParameters": { + "id": 13069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13068, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13114, + "src": "1145:4:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13067, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1145:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1144:6:46" + }, + "scope": 13255, + "src": "1083:329:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13126, + "nodeType": "Block", + "src": "1711:39:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13122, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "1728:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13124, + "indexExpression": { + "argumentTypes": null, + "id": 13123, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13117, + "src": "1737:5:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1728:15:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13121, + "id": 13125, + "nodeType": "Return", + "src": "1721:22:46" + } + ] + }, + "documentation": { + "id": 13115, + "nodeType": "StructuredDocumentation", + "src": "1418:214:46", + "text": " @dev Gets the balance of the specified address.\n @param owner The address to query the the balance of.\n @return balance An uint256 representing the amount owned by the passed address." + }, + "functionSelector": "70a08231", + "id": 13127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13117, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13127, + "src": "1656:13:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1656:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1655:15:46" + }, + "returnParameters": { + "id": 13121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13120, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13127, + "src": "1694:15:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1694:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1693:17:46" + }, + "scope": 13255, + "src": "1637:113:46", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13207, + "nodeType": "Block", + "src": "2153:390:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13140, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13134, + "src": "2171:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13141, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "2181:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13143, + "indexExpression": { + "argumentTypes": null, + "id": 13142, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2190:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2181:14:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2171:24:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "42414c414e43455f4e4f545f454e4f554748", + "id": 13145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2197:20:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + }, + "value": "BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + } + ], + "id": 13139, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2163:7:46", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2163:55:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13147, + "nodeType": "ExpressionStatement", + "src": "2163:55:46" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13149, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13134, + "src": "2236:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13150, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13033, + "src": "2246:7:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 13152, + "indexExpression": { + "argumentTypes": null, + "id": 13151, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2254:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2246:13:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13155, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13153, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2260:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2260:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2246:25:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2236:35:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414c4c4f57414e43455f4e4f545f454e4f554748", + "id": 13157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2273:22:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_28638f118cb48e54afcdd39bdb97baeb95a670cffee1fd95f73350a923dc1c6f", + "typeString": "literal_string \"ALLOWANCE_NOT_ENOUGH\"" + }, + "value": "ALLOWANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_28638f118cb48e54afcdd39bdb97baeb95a670cffee1fd95f73350a923dc1c6f", + "typeString": "literal_string \"ALLOWANCE_NOT_ENOUGH\"" + } + ], + "id": 13148, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2228:7:46", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2228:68:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13159, + "nodeType": "ExpressionStatement", + "src": "2228:68:46" + }, + { + "expression": { + "argumentTypes": null, + "id": 13169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13160, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "2307:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13162, + "indexExpression": { + "argumentTypes": null, + "id": 13161, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2316:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2307:14:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13167, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13134, + "src": "2343:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13163, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "2324:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13165, + "indexExpression": { + "argumentTypes": null, + "id": 13164, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2333:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2324:14:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2324:18:46", + "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": 13168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2324:26:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2307:43:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13170, + "nodeType": "ExpressionStatement", + "src": "2307:43:46" + }, + { + "expression": { + "argumentTypes": null, + "id": 13180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13171, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "2360:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13173, + "indexExpression": { + "argumentTypes": null, + "id": 13172, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13132, + "src": "2369:2:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2360:12:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13178, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13134, + "src": "2392:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13174, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13027, + "src": "2375:8:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13176, + "indexExpression": { + "argumentTypes": null, + "id": 13175, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13132, + "src": "2384:2:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2375:12:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2375:16:46", + "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": 13179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2375:24:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2360:39:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13181, + "nodeType": "ExpressionStatement", + "src": "2360:39:46" + }, + { + "expression": { + "argumentTypes": null, + "id": 13197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13182, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13033, + "src": "2409:7:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 13186, + "indexExpression": { + "argumentTypes": null, + "id": 13183, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2417:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2409:13:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13187, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2423:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2423:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2409:25:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13195, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13134, + "src": "2467:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13188, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13033, + "src": "2437:7:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 13190, + "indexExpression": { + "argumentTypes": null, + "id": 13189, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2445:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2437:13:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13193, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13191, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2451:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2451:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2437:25:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2437:29:46", + "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": 13196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2437:37:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2409:65:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13198, + "nodeType": "ExpressionStatement", + "src": "2409:65:46" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13200, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "2498:4:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13201, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13132, + "src": "2504:2:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13202, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13134, + "src": "2508:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13199, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13041, + "src": "2489:8:46", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 13203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2489:26:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13204, + "nodeType": "EmitStatement", + "src": "2484:31:46" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 13205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2532:4:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 13138, + "id": 13206, + "nodeType": "Return", + "src": "2525:11:46" + } + ] + }, + "documentation": { + "id": 13128, + "nodeType": "StructuredDocumentation", + "src": "1756:276:46", + "text": " @dev Transfer tokens from one address to another\n @param from address The address which you want to send tokens from\n @param to address The address which you want to transfer to\n @param amount uint256 the amount of tokens to be transferred" + }, + "functionSelector": "23b872dd", + "id": 13208, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13135, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13130, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13208, + "src": "2068:12:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2068:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13132, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13208, + "src": "2090:10:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13131, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2090:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13134, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13208, + "src": "2110:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13133, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2110:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2058:72:46" + }, + "returnParameters": { + "id": 13138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13137, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13208, + "src": "2147:4:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13136, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2147:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2146:6:46" + }, + "scope": 13255, + "src": "2037:506:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13236, + "nodeType": "Block", + "src": "2858:127:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13218, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13033, + "src": "2868:7:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 13222, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13219, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2876:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2876:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2868:19:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13223, + "indexExpression": { + "argumentTypes": null, + "id": 13221, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13211, + "src": "2888:7:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2868:28:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13224, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13213, + "src": "2899:6:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2868:37:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13226, + "nodeType": "ExpressionStatement", + "src": "2868:37:46" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13228, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2929:3:46", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2929:10:46", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 13230, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13211, + "src": "2941:7:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13231, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13213, + "src": "2950:6:46", + "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": 13227, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13049, + "src": "2920:8:46", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 13232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2920:37:46", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13233, + "nodeType": "EmitStatement", + "src": "2915:42:46" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 13234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2974:4:46", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 13217, + "id": 13235, + "nodeType": "Return", + "src": "2967:11:46" + } + ] + }, + "documentation": { + "id": 13209, + "nodeType": "StructuredDocumentation", + "src": "2549:232:46", + "text": " @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\n @param spender The address which will spend the funds.\n @param amount The amount of tokens to be spent." + }, + "functionSelector": "095ea7b3", + "id": 13237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13214, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13211, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13237, + "src": "2803:15:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13210, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2803:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13213, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13237, + "src": "2820:14:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13212, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2820:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2802:33:46" + }, + "returnParameters": { + "id": 13217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13216, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13237, + "src": "2852:4:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13215, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2852:4:46", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2851:6:46" + }, + "scope": 13255, + "src": "2786:199:46", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13253, + "nodeType": "Block", + "src": "3397:47:46", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13247, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13033, + "src": "3414:7:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 13249, + "indexExpression": { + "argumentTypes": null, + "id": 13248, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13240, + "src": "3422:5:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3414:14:46", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13251, + "indexExpression": { + "argumentTypes": null, + "id": 13250, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13242, + "src": "3429:7:46", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3414:23:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13246, + "id": 13252, + "nodeType": "Return", + "src": "3407:30:46" + } + ] + }, + "documentation": { + "id": 13238, + "nodeType": "StructuredDocumentation", + "src": "2991:320:46", + "text": " @dev Function to check the amount of tokens that an owner allowed to a spender.\n @param owner address The address which owns the funds.\n @param spender address The address which will spend the funds.\n @return A uint256 specifying the amount of tokens still available for the spender." + }, + "functionSelector": "dd62ed3e", + "id": 13254, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13240, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13254, + "src": "3335:13:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13239, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3335:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13242, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13254, + "src": "3350:15:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13241, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3350:7:46", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3334:32:46" + }, + "returnParameters": { + "id": 13246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13245, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13254, + "src": "3388:7:46", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3388:7:46", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3387:9:46" + }, + "scope": 13255, + "src": "3316:128:46", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 13256, + "src": "237:3209:46" + } + ], + "src": "78:3369:46" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.740Z", + "devdoc": { + "author": "DODO Breeder", + "methods": { + "allowance(address,address)": { + "details": "Function to check the amount of tokens that an owner allowed to a spender.", + "params": { + "owner": "address The address which owns the funds.", + "spender": "address The address which will spend the funds." + }, + "returns": { + "_0": "A uint256 specifying the amount of tokens still available for the spender." + } + }, + "approve(address,uint256)": { + "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.", + "params": { + "amount": "The amount of tokens to be spent.", + "spender": "The address which will spend the funds." + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.", + "params": { + "owner": "The address to query the the balance of." + }, + "returns": { + "balance": "An uint256 representing the amount owned by the passed address." + } + }, + "transfer(address,uint256)": { + "details": "transfer token for a specified address", + "params": { + "amount": "The amount to be transferred.", + "to": "The address to transfer to." + } + }, + "transferFrom(address,address,uint256)": { + "details": "Transfer tokens from one address to another", + "params": { + "amount": "uint256 the amount of tokens to be transferred", + "from": "address The address which you want to send tokens from", + "to": "address The address which you want to transfer to" + } + } + }, + "title": "DODO Token" + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/DODOZoo.json b/build-v1/contracts/DODOZoo.json new file mode 100644 index 0000000..1b5c7e8 --- /dev/null +++ b/build-v1/contracts/DODOZoo.json @@ -0,0 +1,9817 @@ +{ + "contractName": "DODOZoo", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_dodoLogic", + "type": "address" + }, + { + "internalType": "address", + "name": "_cloneFactory", + "type": "address" + }, + { + "internalType": "address", + "name": "_defaultSupervisor", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newBorn", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "baseToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "quoteToken", + "type": "address" + } + ], + "name": "DODOBirth", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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" + }, + { + "inputs": [], + "name": "_CLONE_FACTORY_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEFAULT_SUPERVISOR_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DODO_LOGIC_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "_DODOs", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_dodoLogic", + "type": "address" + } + ], + "name": "setDODOLogic", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_cloneFactory", + "type": "address" + } + ], + "name": "setCloneFactory", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_defaultSupervisor", + "type": "address" + } + ], + "name": "setDefaultSupervisor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dodo", + "type": "address" + } + ], + "name": "removeDODO", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dodo", + "type": "address" + } + ], + "name": "addDODO", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "maintainer", + "type": "address" + }, + { + "internalType": "address", + "name": "baseToken", + "type": "address" + }, + { + "internalType": "address", + "name": "quoteToken", + "type": "address" + }, + { + "internalType": "address", + "name": "oracle", + "type": "address" + }, + { + "internalType": "uint256", + "name": "lpFeeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "mtFeeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "k", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPriceLimit", + "type": "uint256" + } + ], + "name": "breedDODO", + "outputs": [ + { + "internalType": "address", + "name": "newBornDODO", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "baseToken", + "type": "address" + }, + { + "internalType": "address", + "name": "quoteToken", + "type": "address" + } + ], + "name": "isDODORegistered", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "baseToken", + "type": "address" + }, + { + "internalType": "address", + "name": "quoteToken", + "type": "address" + } + ], + "name": "getDODO", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getDODOs", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dodoLogic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_cloneFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_defaultSupervisor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newBorn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"quoteToken\",\"type\":\"address\"}],\"name\":\"DODOBirth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\"},{\"inputs\":[],\"name\":\"_CLONE_FACTORY_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEFAULT_SUPERVISOR_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DODO_LOGIC_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"_DODOs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dodo\",\"type\":\"address\"}],\"name\":\"addDODO\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"maintainer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"quoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lpFeeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mtFeeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"k\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPriceLimit\",\"type\":\"uint256\"}],\"name\":\"breedDODO\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"newBornDODO\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"quoteToken\",\"type\":\"address\"}],\"name\":\"getDODO\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDODOs\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"quoteToken\",\"type\":\"address\"}],\"name\":\"isDODORegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dodo\",\"type\":\"address\"}],\"name\":\"removeDODO\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_cloneFactory\",\"type\":\"address\"}],\"name\":\"setCloneFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dodoLogic\",\"type\":\"address\"}],\"name\":\"setDODOLogic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_defaultSupervisor\",\"type\":\"address\"}],\"name\":\"setDefaultSupervisor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"DODOZoo\"},\"userdoc\":{\"methods\":{},\"notice\":\"Register of All DODO\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOZoo.sol\":\"DODOZoo\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOZoo.sol\":{\"keccak256\":\"0x71a598d93b1c341b526767f3ffdb12245e9370da1ff3e8c7cc0e711857aaf27c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3cc76727410da56c59bc55a795210cf826cd8480b3a99cbd2454c2da86fb6f5a\",\"dweb:/ipfs/QmQBS8yrGbZ8jNNAAD9Uqc2nrHiaXFMDUjzbVYGZvvD5wz\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol\":{\"keccak256\":\"0x343dc91fe46604d9dc7583e4b969d7dbd2bcba68166bef4e608a85145e7735cc\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2751f30bf5bc54890d68fd6e609dea0cc5ddc08aaa928829bffda71065e66715\",\"dweb:/ipfs/QmdtAmwxpdx8VAHFKkrEPazLJmpWj1dSv2Krdd7F3uauH9\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol\":{\"keccak256\":\"0x8fd9ec49ff1517e33698dc8dd4022da05f3a1ae6e4bf97c48f5f5b6714df2123\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cfaa388f09d627ad26c66e6c4a73c232d494010b73b989392e264f815a84cd1d\",\"dweb:/ipfs/QmSBNeEyjgFSAtcYpKjyQfKZx7ahZKFwUtnnbpSSpS3p2H\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol\":{\"keccak256\":\"0xb7a2ca6570834e4784e86d19fd5a4b6b1eff22a4586dc240659943396a365aa5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5855a493c78e787d7effd87d9c661acbcd19ca1e1ba72dbeaa91c3c8db29cbb4\",\"dweb:/ipfs/QmSddEexZ5okMatgoQ5JZRoJqe7BwsJwwWA2o1kKx7vbTH\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50604051610fc3380380610fc383398101604081905261002f916100ba565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600280546001600160a01b039485166001600160a01b03199182161790915560038054938516938216939093179092556004805491909316911617905561011e565b6000806000606084860312156100ce578283fd5b83516100d981610106565b60208501519093506100ea81610106565b60408501519092506100fb81610106565b809150509250925092565b6001600160a01b038116811461011b57600080fd5b50565b610e968061012d6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063816bd40e116100a2578063eb774d0511610071578063eb774d05146101e4578063ecfa2d24146101ec578063eef55d3d146101ff578063f2fde38b14610212578063fa20e0d9146102255761010b565b8063816bd40e146101a15780638456db15146101b45780639a07cd82146101bc578063a0b0a4d1146101c45761010b565b80634f4e6eea116100de5780634f4e6eea1461015357806352491217146101665780635891296f1461017b5780636ace4afd1461018e5761010b565b80631273b0c61461011057806316048bc4146101395780633e73d4b4146101415780634e71e0c814610149575b600080fd5b61012361011e366004610bc6565b610238565b6040516101309190610c95565b60405180910390f35b610123610267565b610123610276565b610151610285565b005b610151610161366004610b87565b61031c565b61016e610368565b6040516101309190610d29565b610151610189366004610b87565b6103ca565b61012361019c366004610bfe565b610623565b6101516101af366004610b87565b6107c8565b610123610814565b610123610823565b6101d76101d2366004610bc6565b610832565b6040516101309190610d76565b6101236108a3565b6101516101fa366004610b87565b6108b2565b61015161020d366004610b87565b610a69565b610151610220366004610b87565b610ab5565b610123610233366004610c7d565b610b60565b6001600160a01b0380831660009081526005602090815260408083208585168452909152902054165b92915050565b6000546001600160a01b031681565b6004546001600160a01b031681565b6001546001600160a01b031633146102b85760405162461bcd60e51b81526004016102af90610d81565b60405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031633146103465760405162461bcd60e51b81526004016102af90610e25565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b606060068054806020026020016040519081016040528092919081815260200182805480156103c057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103a2575b5050505050905090565b6000546001600160a01b031633146103f45760405162461bcd60e51b81526004016102af90610e25565b6000816001600160a01b0316634a248d2a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561043157600080fd5b505af1158015610445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104699190610baa565b90506000826001600160a01b031663d4b970466040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156104a857600080fd5b505af11580156104bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e09190610baa565b90506104ec8282610832565b6105085760405162461bcd60e51b81526004016102af90610df8565b6001600160a01b038083166000908152600560209081526040808320938516835292905290812080546001600160a01b03191690555b60065460001901811161061d57836001600160a01b03166006828154811061056257fe5b6000918252602090912001546001600160a01b031614156106155760068054600019810190811061058f57fe5b600091825260209091200154600680546001600160a01b0390921691839081106105b557fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060068054806105ee57fe5b600082815260209020810160001990810180546001600160a01b031916905501905561061d565b60010161053e565b50505050565b600080546001600160a01b0316331461064e5760405162461bcd60e51b81526004016102af90610e25565b6106588888610832565b156106755760405162461bcd60e51b81526004016102af90610da8565b6003546002546040516340925bc760e11b81526001600160a01b0392831692638124b78e926106a992911690600401610c95565b602060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fb9190610baa565b6000546004805460405163f00f9a0960e01b81529394506001600160a01b038086169463f00f9a09946107469490831693909216918f918f918f918f918f918f918f918f9101610ccc565b600060405180830381600087803b15801561076057600080fd5b505af1158015610774573d6000803e3d6000fd5b50505050610781816108b2565b7f5c428a2e12ecaa744a080b25b4cda8b86359c82d726575d7d747e07708071f938189896040516107b493929190610ca9565b60405180910390a198975050505050505050565b6000546001600160a01b031633146107f25760405162461bcd60e51b81526004016102af90610e25565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b6002546001600160a01b031681565b6001600160a01b038281166000908152600560209081526040808320858516845290915281205490911615801561088e57506001600160a01b038281166000908152600560209081526040808320878516845290915290205416155b1561089b57506000610261565b506001610261565b6003546001600160a01b031681565b6000546001600160a01b031633146108dc5760405162461bcd60e51b81526004016102af90610e25565b6000816001600160a01b0316634a248d2a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561091957600080fd5b505af115801561092d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109519190610baa565b90506000826001600160a01b031663d4b970466040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c89190610baa565b90506109d48282610832565b156109f15760405162461bcd60e51b81526004016102af90610da8565b6001600160a01b03918216600090815260056020908152604080832093851683529290529081208054929093166001600160a01b031992831681179093556006805460018101825591527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180549091169091179055565b6000546001600160a01b03163314610a935760405162461bcd60e51b81526004016102af90610e25565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610adf5760405162461bcd60e51b81526004016102af90610e25565b6001600160a01b038116610b055760405162461bcd60e51b81526004016102af90610dd1565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b60068181548110610b6d57fe5b6000918252602090912001546001600160a01b0316905081565b600060208284031215610b98578081fd5b8135610ba381610e48565b9392505050565b600060208284031215610bbb578081fd5b8151610ba381610e48565b60008060408385031215610bd8578081fd5b8235610be381610e48565b91506020830135610bf381610e48565b809150509250929050565b600080600080600080600080610100898b031215610c1a578384fd5b8835610c2581610e48565b97506020890135610c3581610e48565b96506040890135610c4581610e48565b95506060890135610c5581610e48565b979a969950949760808101359660a0820135965060c0820135955060e0909101359350915050565b600060208284031215610c8e578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b039a8b168152988a1660208a0152968916604089015294881660608801529287166080870152951660a085015260c084019490945260e08301939093526101008201929092526101208101919091526101400190565b6020808252825182820181905260009190848201906040850190845b81811015610d6a5783516001600160a01b031683529284019291840191600101610d45565b50909695505050505050565b901515815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600f908201526e1113d113d7d49151d254d511549151608a1b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601390820152721113d113d7d393d517d49151d254d511549151606a1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6001600160a01b0381168114610e5d57600080fd5b5056fea26469706673582212209f9d65b8a74ad719f4c083d82b808375858b7415fc8894426496fb3a8444e53964736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063816bd40e116100a2578063eb774d0511610071578063eb774d05146101e4578063ecfa2d24146101ec578063eef55d3d146101ff578063f2fde38b14610212578063fa20e0d9146102255761010b565b8063816bd40e146101a15780638456db15146101b45780639a07cd82146101bc578063a0b0a4d1146101c45761010b565b80634f4e6eea116100de5780634f4e6eea1461015357806352491217146101665780635891296f1461017b5780636ace4afd1461018e5761010b565b80631273b0c61461011057806316048bc4146101395780633e73d4b4146101415780634e71e0c814610149575b600080fd5b61012361011e366004610bc6565b610238565b6040516101309190610c95565b60405180910390f35b610123610267565b610123610276565b610151610285565b005b610151610161366004610b87565b61031c565b61016e610368565b6040516101309190610d29565b610151610189366004610b87565b6103ca565b61012361019c366004610bfe565b610623565b6101516101af366004610b87565b6107c8565b610123610814565b610123610823565b6101d76101d2366004610bc6565b610832565b6040516101309190610d76565b6101236108a3565b6101516101fa366004610b87565b6108b2565b61015161020d366004610b87565b610a69565b610151610220366004610b87565b610ab5565b610123610233366004610c7d565b610b60565b6001600160a01b0380831660009081526005602090815260408083208585168452909152902054165b92915050565b6000546001600160a01b031681565b6004546001600160a01b031681565b6001546001600160a01b031633146102b85760405162461bcd60e51b81526004016102af90610d81565b60405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031633146103465760405162461bcd60e51b81526004016102af90610e25565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b606060068054806020026020016040519081016040528092919081815260200182805480156103c057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116103a2575b5050505050905090565b6000546001600160a01b031633146103f45760405162461bcd60e51b81526004016102af90610e25565b6000816001600160a01b0316634a248d2a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561043157600080fd5b505af1158015610445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104699190610baa565b90506000826001600160a01b031663d4b970466040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156104a857600080fd5b505af11580156104bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e09190610baa565b90506104ec8282610832565b6105085760405162461bcd60e51b81526004016102af90610df8565b6001600160a01b038083166000908152600560209081526040808320938516835292905290812080546001600160a01b03191690555b60065460001901811161061d57836001600160a01b03166006828154811061056257fe5b6000918252602090912001546001600160a01b031614156106155760068054600019810190811061058f57fe5b600091825260209091200154600680546001600160a01b0390921691839081106105b557fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060068054806105ee57fe5b600082815260209020810160001990810180546001600160a01b031916905501905561061d565b60010161053e565b50505050565b600080546001600160a01b0316331461064e5760405162461bcd60e51b81526004016102af90610e25565b6106588888610832565b156106755760405162461bcd60e51b81526004016102af90610da8565b6003546002546040516340925bc760e11b81526001600160a01b0392831692638124b78e926106a992911690600401610c95565b602060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106fb9190610baa565b6000546004805460405163f00f9a0960e01b81529394506001600160a01b038086169463f00f9a09946107469490831693909216918f918f918f918f918f918f918f918f9101610ccc565b600060405180830381600087803b15801561076057600080fd5b505af1158015610774573d6000803e3d6000fd5b50505050610781816108b2565b7f5c428a2e12ecaa744a080b25b4cda8b86359c82d726575d7d747e07708071f938189896040516107b493929190610ca9565b60405180910390a198975050505050505050565b6000546001600160a01b031633146107f25760405162461bcd60e51b81526004016102af90610e25565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b6002546001600160a01b031681565b6001600160a01b038281166000908152600560209081526040808320858516845290915281205490911615801561088e57506001600160a01b038281166000908152600560209081526040808320878516845290915290205416155b1561089b57506000610261565b506001610261565b6003546001600160a01b031681565b6000546001600160a01b031633146108dc5760405162461bcd60e51b81526004016102af90610e25565b6000816001600160a01b0316634a248d2a6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561091957600080fd5b505af115801561092d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109519190610baa565b90506000826001600160a01b031663d4b970466040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c89190610baa565b90506109d48282610832565b156109f15760405162461bcd60e51b81526004016102af90610da8565b6001600160a01b03918216600090815260056020908152604080832093851683529290529081208054929093166001600160a01b031992831681179093556006805460018101825591527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180549091169091179055565b6000546001600160a01b03163314610a935760405162461bcd60e51b81526004016102af90610e25565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610adf5760405162461bcd60e51b81526004016102af90610e25565b6001600160a01b038116610b055760405162461bcd60e51b81526004016102af90610dd1565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b60068181548110610b6d57fe5b6000918252602090912001546001600160a01b0316905081565b600060208284031215610b98578081fd5b8135610ba381610e48565b9392505050565b600060208284031215610bbb578081fd5b8151610ba381610e48565b60008060408385031215610bd8578081fd5b8235610be381610e48565b91506020830135610bf381610e48565b809150509250929050565b600080600080600080600080610100898b031215610c1a578384fd5b8835610c2581610e48565b97506020890135610c3581610e48565b96506040890135610c4581610e48565b95506060890135610c5581610e48565b979a969950949760808101359660a0820135965060c0820135955060e0909101359350915050565b600060208284031215610c8e578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6001600160a01b0393841681529183166020830152909116604082015260600190565b6001600160a01b039a8b168152988a1660208a0152968916604089015294881660608801529287166080870152951660a085015260c084019490945260e08301939093526101008201929092526101208101919091526101400190565b6020808252825182820181905260009190848201906040850190845b81811015610d6a5783516001600160a01b031683529284019291840191600101610d45565b50909695505050505050565b901515815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600f908201526e1113d113d7d49151d254d511549151608a1b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252601390820152721113d113d7d393d517d49151d254d511549151606a1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b6001600160a01b0381168114610e5d57600080fd5b5056fea26469706673582212209f9d65b8a74ad719f4c083d82b808375858b7415fc8894426496fb3a8444e53964736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "363:3531:1:-:0;;;791:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;757:7:38;:20;;-1:-1:-1;;;;;;757:20:38;767:10;757:20;;;;792:41;;-1:-1:-1;;;;;825:7:38;;;;;757;792:41;;757:7;;792:41;921:12:1;:25;;-1:-1:-1;;;;;921:25:1;;;-1:-1:-1;;;;;;921:25:1;;;;;;;956:15;:31;;;;;;;;;;;;;;;997:20;:41;;;;;;;;;;;363:3531;;146:535:-1;;;;295:2;283:9;274:7;270:23;266:32;263:2;;;-1:-1;;301:12;263:2;89:6;83:13;101:33;128:5;101:33;;;464:2;514:22;;83:13;353:74;;-1:-1;101:33;83:13;101:33;;;583:2;633:22;;83:13;472:74;;-1:-1;101:33;83:13;101:33;;;591:74;;;;257:424;;;;;;914:117;-1:-1;;;;;848:54;;973:35;;963:2;;1022:1;;1012:12;963:2;957:74;;;363:3531:1;;;;;;", + "deployedSourceMap": "363:3531:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3645:150;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;251:22:38;;;:::i;467:35:1:-;;;:::i;1072:225:38:-;;;:::i;:::-;;1209:115:1;;;;;;;;;:::i;3801:91::-;;;:::i;:::-;;;;;;;;1471:544;;;;;;;;;:::i;2410:839::-;;;;;;;;;:::i;1100:103::-;;;;;;;;;:::i;279:26:38:-;;;:::i;397:27:1:-;;;:::i;3304:335::-;;;;;;;;;:::i;:::-;;;;;;;;430:30;;;:::i;2021:329::-;;;;;;;;;:::i;1330:135::-;;;;;;;;;:::i;846:220:38:-;;;;;;;;;:::i;587:23:1:-;;;;;;;;;:::i;3645:150::-;-1:-1:-1;;;;;3750:26:1;;;3724:7;3750:26;;;:15;:26;;;;;;;;:38;;;;;;;;;;;;3645:150;;;;;:::o;251:22:38:-;;;-1:-1:-1;;;;;251:22:38;;:::o;467:35:1:-;;;-1:-1:-1;;;;;467:35:1;;:::o;1072:225:38:-;1139:11;;-1:-1:-1;;;;;1139:11:38;1125:10;:25;1117:51;;;;-1:-1:-1;;;1117:51:38;;;;;;;;;;;;;;;;;1213:11;;;1204:7;;1183:42;;-1:-1:-1;;;;;1213:11:38;;;;1204:7;;;;1183:42;;;1245:11;;;;1235:21;;-1:-1:-1;;;;;;1235:21:38;;;-1:-1:-1;;;;;1245:11:38;;1235:21;;;;1266:24;;;1072:225::o;1209:115:1:-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;1286:15:1::1;:31:::0;;-1:-1:-1;;;;;;1286:31:1::1;-1:-1:-1::0;;;;;1286:31:1;;;::::1;::::0;;;::::1;::::0;;1209:115::o;3801:91::-;3844:16;3879:6;3872:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3872:13:1;;;;;;;;;;;;;;;;;;;;;;;3801:91;:::o;1471:544::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;1534:17:1::1;1560:4;-1:-1:-1::0;;;;;1554:24:1::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1534:46;;1590:18;1617:4;-1:-1:-1::0;;;;;1611:25:1::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1590:48;;1656:39;1673:9;1684:10;1656:16;:39::i;:::-;1648:71;;;;-1:-1:-1::0;;;1648:71:1::1;;;;;;;;;-1:-1:-1::0;;;;;1729:26:1;;::::1;1778:1;1729:26:::0;;;:15:::1;:26;::::0;;;;;;;:38;;::::1;::::0;;;;;;;;:51;;-1:-1:-1;;;;;;1729:51:1::1;::::0;;1790:219:::1;1815:6;:13:::0;-1:-1:-1;;1815:17:1;1810:22;::::1;1790:219;;1870:4;-1:-1:-1::0;;;;;1857:17:1::1;:6;1864:1;1857:9;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;1857:9:1::1;:17;1853:146;;;1906:6;1913:13:::0;;-1:-1:-1;;1913:17:1;;;1906:25;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;1894:6:::1;:9:::0;;-1:-1:-1;;;;;1906:25:1;;::::1;::::0;1901:1;;1894:9;::::1;;;;;;;;;;;;;:37;;;;;-1:-1:-1::0;;;;;1894:37:1::1;;;;;-1:-1:-1::0;;;;;1894:37:1::1;;;;;;1949:6;:12;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;1949:12:1;;;;;-1:-1:-1;;;;;;1949:12:1::1;::::0;;;;;1979:5:::1;;1853:146;1834:3;;1790:219;;;;666:1:38;;1471:544:1::0;:::o;2410:839::-;2674:19;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;2714:39:1::1;2731:9;2742:10;2714:16;:39::i;:::-;2713:40;2705:68;;;;-1:-1:-1::0;;;2705:68:1::1;;;;;;;;;2811:15;::::0;2834:12:::1;::::0;2797:50:::1;::::0;-1:-1:-1;;;2797:50:1;;-1:-1:-1;;;;;2811:15:1;;::::1;::::0;2797:36:::1;::::0;:50:::1;::::0;2834:12;::::1;::::0;2797:50:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2894:7;::::0;2915:20:::1;::::0;;2857:267:::1;::::0;-1:-1:-1;;;2857:267:1;;2783:64;;-1:-1:-1;;;;;;2857:23:1;;::::1;::::0;::::1;::::0;:267:::1;::::0;2894:7;;::::1;::::0;2915:20;;::::1;::::0;2949:10;;2973:9;;2996:10;;3020:6;;3040:9;;3063;;3086:1;;3101:13;;2857:267:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3134:20;3142:11;3134:7;:20::i;:::-;3169:45;3179:11;3192:9;3203:10;3169:45;;;;;;;;;;;;;;;;;2410:839:::0;;;;;;;;;;:::o;1100:103::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;1171:12:1::1;:25:::0;;-1:-1:-1;;;;;;1171:25:1::1;-1:-1:-1::0;;;;;1171:25:1;;;::::1;::::0;;;::::1;::::0;;1100:103::o;279:26:38:-;;;-1:-1:-1;;;;;279:26:38;;:::o;397:27:1:-;;;-1:-1:-1;;;;;397:27:1;;:::o;3304:335::-;-1:-1:-1;;;;;3423:26:1;;;3390:4;3423:26;;;:15;:26;;;;;;;;:38;;;;;;;;;;;3390:4;;3423:38;:52;:120;;;;-1:-1:-1;;;;;;3491:27:1;;;3541:1;3491:27;;;:15;:27;;;;;;;;:38;;;;;;;;;;;;:52;3423:120;3406:227;;;-1:-1:-1;3575:5:1;3568:12;;3406:227;-1:-1:-1;3618:4:1;3611:11;;430:30;;;-1:-1:-1;;;;;430:30:1;;:::o;2021:329::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;2079:17:1::1;2105:4;-1:-1:-1::0;;;;;2099:24:1::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2079:46;;2135:18;2162:4;-1:-1:-1::0;;;;;2156:25:1::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2135:48;;2202:39;2219:9;2230:10;2202:16;:39::i;:::-;2201:40;2193:68;;;;-1:-1:-1::0;;;2193:68:1::1;;;;;;;;;-1:-1:-1::0;;;;;2271:26:1;;::::1;;::::0;;;:15:::1;:26;::::0;;;;;;;:38;;::::1;::::0;;;;;;;;:45;;;;;::::1;-1:-1:-1::0;;;;;;2271:45:1;;::::1;::::0;::::1;::::0;;;2326:6:::1;:17:::0;;2271:45;2326:17;::::1;::::0;;;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;2021:329::o;1330:135::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;1417:20:1::1;:41:::0;;-1:-1:-1;;;;;;1417:41:1::1;-1:-1:-1::0;;;;;1417:41:1;;;::::1;::::0;;;::::1;::::0;;1330:135::o;846:220:38:-;635:7;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;-1:-1:-1;;;;;928:22:38;::::1;920:48;;;;-1:-1:-1::0;;;920:48:38::1;;;;;;;;;1009:7;::::0;;983:44:::1;::::0;-1:-1:-1;;;;;983:44:38;;::::1;::::0;1009:7;::::1;::::0;983:44:::1;::::0;::::1;1037:11;:22:::0;;-1:-1:-1;;;;;;1037:22:38::1;-1:-1:-1::0;;;;;1037:22:38;;;::::1;::::0;;;::::1;::::0;;846:220::o;587:23:1:-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;587:23:1;;-1:-1:-1;587:23:1;:::o;420:241:-1:-;;524:2;512:9;503:7;499:23;495:32;492:2;;;-1:-1;;530:12;492:2;85:6;72:20;97:33;124:5;97:33;;;582:63;486:175;-1:-1;;;486:175;668:263;;783:2;771:9;762:7;758:23;754:32;751:2;;;-1:-1;;789:12;751:2;226:6;220:13;238:33;265:5;238:33;;938:366;;;1059:2;1047:9;1038:7;1034:23;1030:32;1027:2;;;-1:-1;;1065:12;1027:2;85:6;72:20;97:33;124:5;97:33;;;1117:63;-1:-1;1217:2;1256:22;;72:20;97:33;72:20;97:33;;;1225:63;;;;1021:283;;;;;;1311:1121;;;;;;;;;1534:3;1522:9;1513:7;1509:23;1505:33;1502:2;;;-1:-1;;1541:12;1502:2;85:6;72:20;97:33;124:5;97:33;;;1593:63;-1:-1;1693:2;1732:22;;72:20;97:33;72:20;97:33;;;1701:63;-1:-1;1801:2;1840:22;;72:20;97:33;72:20;97:33;;;1809:63;-1:-1;1909:2;1948:22;;72:20;97:33;72:20;97:33;;;1496:936;;;;-1:-1;1496:936;;2017:3;2057:22;;350:20;;2126:3;2166:22;;350:20;;-1:-1;2235:3;2275:22;;350:20;;-1:-1;2344:3;2384:22;;;350:20;;-1:-1;1496:936;-1:-1;;1496:936;2439:241;;2543:2;2531:9;2522:7;2518:23;2514:32;2511:2;;;-1:-1;;2549:12;2511:2;-1:-1;350:20;;2505:175;-1:-1;2505:175;5672:222;-1:-1;;;;;11324:54;;;;2930:37;;5799:2;5784:18;;5770:124;5901:444;-1:-1;;;;;11324:54;;;2930:37;;11324:54;;;6248:2;6233:18;;2930:37;11324:54;;;6331:2;6316:18;;2930:37;6084:2;6069:18;;6055:290;6352:1228;-1:-1;;;;;11324:54;;;2930:37;;11324:54;;;6896:2;6881:18;;2930:37;11324:54;;;6979:2;6964:18;;2930:37;11324:54;;;7062:2;7047:18;;2930:37;11324:54;;;7145:3;7130:19;;2930:37;11324:54;;11335:42;7214:19;;2930:37;7313:3;7298:19;;5623:37;;;;7397:3;7382:19;;5623:37;;;;7481:3;7466:19;;5623:37;;;;7565:3;7550:19;;5623:37;;;;6731:3;6716:19;;6702:878;7587:370;7764:2;7778:47;;;10557:12;;7749:18;;;10832:19;;;7587:370;;7764:2;10411:14;;;;10872;;;;7587:370;3538:260;3563:6;3560:1;3557:13;3538:260;;;3624:13;;-1:-1;;;;;11324:54;2930:37;;10687:14;;;;2841;;;;11335:42;3578:9;3538:260;;;-1:-1;7831:116;;7735:222;-1:-1;;;;;;7735:222;7964:210;11236:13;;11229:21;3893:34;;8085:2;8070:18;;8056:118;8181:416;8381:2;8395:47;;;4164:2;8366:18;;;10832:19;-1:-1;;;10872:14;;;4180:36;4235:12;;;8352:245;8604:416;8804:2;8818:47;;;4486:2;8789:18;;;10832:19;-1:-1;;;10872:14;;;4502:38;4559:12;;;8775:245;9027:416;9227:2;9241:47;;;4810:2;9212:18;;;10832:19;-1:-1;;;10872:14;;;4826:36;4881:12;;;9198:245;9450:416;9650:2;9664:47;;;5132:2;9635:18;;;10832:19;-1:-1;;;10872:14;;;5148:42;5209:12;;;9621:245;9873:416;10073:2;10087:47;;;5460:1;10058:18;;;10832:19;-1:-1;;;10872:14;;;5475:32;5526:12;;;10044:245;11469:117;-1:-1;;;;;11324:54;;11528:35;;11518:2;;11577:1;;11567:12;11518:2;11512:74;", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {Ownable} from \"./lib/Ownable.sol\";\nimport {IDODO} from \"./intf/IDODO.sol\";\nimport {ICloneFactory} from \"./helper/CloneFactory.sol\";\n\n\n/**\n * @title DODOZoo\n * @author DODO Breeder\n *\n * @notice Register of All DODO\n */\ncontract DODOZoo is Ownable {\n address public _DODO_LOGIC_;\n address public _CLONE_FACTORY_;\n\n address public _DEFAULT_SUPERVISOR_;\n\n mapping(address => mapping(address => address)) internal _DODO_REGISTER_;\n address[] public _DODOs;\n\n // ============ Events ============\n\n event DODOBirth(address newBorn, address baseToken, address quoteToken);\n\n // ============ Constructor Function ============\n\n constructor(\n address _dodoLogic,\n address _cloneFactory,\n address _defaultSupervisor\n ) public {\n _DODO_LOGIC_ = _dodoLogic;\n _CLONE_FACTORY_ = _cloneFactory;\n _DEFAULT_SUPERVISOR_ = _defaultSupervisor;\n }\n\n // ============ Admin Function ============\n\n function setDODOLogic(address _dodoLogic) external onlyOwner {\n _DODO_LOGIC_ = _dodoLogic;\n }\n\n function setCloneFactory(address _cloneFactory) external onlyOwner {\n _CLONE_FACTORY_ = _cloneFactory;\n }\n\n function setDefaultSupervisor(address _defaultSupervisor) external onlyOwner {\n _DEFAULT_SUPERVISOR_ = _defaultSupervisor;\n }\n\n function removeDODO(address dodo) external onlyOwner {\n address baseToken = IDODO(dodo)._BASE_TOKEN_();\n address quoteToken = IDODO(dodo)._QUOTE_TOKEN_();\n require(isDODORegistered(baseToken, quoteToken), \"DODO_NOT_REGISTERED\");\n _DODO_REGISTER_[baseToken][quoteToken] = address(0);\n for (uint256 i = 0; i <= _DODOs.length - 1; i++) {\n if (_DODOs[i] == dodo) {\n _DODOs[i] = _DODOs[_DODOs.length - 1];\n _DODOs.pop();\n break;\n }\n }\n }\n\n function addDODO(address dodo) public onlyOwner {\n address baseToken = IDODO(dodo)._BASE_TOKEN_();\n address quoteToken = IDODO(dodo)._QUOTE_TOKEN_();\n require(!isDODORegistered(baseToken, quoteToken), \"DODO_REGISTERED\");\n _DODO_REGISTER_[baseToken][quoteToken] = dodo;\n _DODOs.push(dodo);\n }\n\n // ============ Breed DODO Function ============\n\n function breedDODO(\n address maintainer,\n address baseToken,\n address quoteToken,\n address oracle,\n uint256 lpFeeRate,\n uint256 mtFeeRate,\n uint256 k,\n uint256 gasPriceLimit\n ) external onlyOwner returns (address newBornDODO) {\n require(!isDODORegistered(baseToken, quoteToken), \"DODO_REGISTERED\");\n newBornDODO = ICloneFactory(_CLONE_FACTORY_).clone(_DODO_LOGIC_);\n IDODO(newBornDODO).init(\n _OWNER_,\n _DEFAULT_SUPERVISOR_,\n maintainer,\n baseToken,\n quoteToken,\n oracle,\n lpFeeRate,\n mtFeeRate,\n k,\n gasPriceLimit\n );\n addDODO(newBornDODO);\n emit DODOBirth(newBornDODO, baseToken, quoteToken);\n return newBornDODO;\n }\n\n // ============ View Functions ============\n\n function isDODORegistered(address baseToken, address quoteToken) public view returns (bool) {\n if (\n _DODO_REGISTER_[baseToken][quoteToken] == address(0) &&\n _DODO_REGISTER_[quoteToken][baseToken] == address(0)\n ) {\n return false;\n } else {\n return true;\n }\n }\n\n function getDODO(address baseToken, address quoteToken) external view returns (address) {\n return _DODO_REGISTER_[baseToken][quoteToken];\n }\n\n function getDODOs() external view returns (address[] memory) {\n return _DODOs;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOZoo.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOZoo.sol", + "exportedSymbols": { + "DODOZoo": [ + 1522 + ] + }, + "id": 1523, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1168, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:1" + }, + { + "id": 1169, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:1" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "./lib/Ownable.sol", + "id": 1171, + "nodeType": "ImportDirective", + "scope": 1523, + "sourceUnit": 11272, + "src": "136:42:1", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1170, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "file": "./intf/IDODO.sol", + "id": 1173, + "nodeType": "ImportDirective", + "scope": 1523, + "sourceUnit": 10492, + "src": "179:39:1", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1172, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "187:5:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol", + "file": "./helper/CloneFactory.sol", + "id": 1175, + "nodeType": "ImportDirective", + "scope": 1523, + "sourceUnit": 2009, + "src": "219:56:1", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1174, + "name": "ICloneFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "227:13:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1177, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "383:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 1178, + "nodeType": "InheritanceSpecifier", + "src": "383:7:1" + } + ], + "contractDependencies": [ + 11271 + ], + "contractKind": "contract", + "documentation": { + "id": 1176, + "nodeType": "StructuredDocumentation", + "src": "278:84:1", + "text": " @title DODOZoo\n @author DODO Breeder\n @notice Register of All DODO" + }, + "fullyImplemented": true, + "id": 1522, + "linearizedBaseContracts": [ + 1522, + 11271 + ], + "name": "DODOZoo", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9a07cd82", + "id": 1180, + "mutability": "mutable", + "name": "_DODO_LOGIC_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1522, + "src": "397:27:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1179, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "397:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "eb774d05", + "id": 1182, + "mutability": "mutable", + "name": "_CLONE_FACTORY_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1522, + "src": "430:30:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "430:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3e73d4b4", + "id": 1184, + "mutability": "mutable", + "name": "_DEFAULT_SUPERVISOR_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1522, + "src": "467:35:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1183, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "467:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1190, + "mutability": "mutable", + "name": "_DODO_REGISTER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1522, + "src": "509:72:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "typeName": { + "id": 1189, + "keyType": { + "id": 1185, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "517:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "509:47:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "valueType": { + "id": 1188, + "keyType": { + "id": 1186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "528:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueType": { + "id": 1187, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "547:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "functionSelector": "fa20e0d9", + "id": 1193, + "mutability": "mutable", + "name": "_DODOs", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1522, + "src": "587:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1191, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "587:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1192, + "length": null, + "nodeType": "ArrayTypeName", + "src": "587:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 1201, + "name": "DODOBirth", + "nodeType": "EventDefinition", + "parameters": { + "id": 1200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1195, + "indexed": false, + "mutability": "mutable", + "name": "newBorn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1201, + "src": "674:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1194, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "674:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1197, + "indexed": false, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1201, + "src": "691:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1196, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "691:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1199, + "indexed": false, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1201, + "src": "710:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "710:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "673:56:1" + }, + "src": "658:72:1" + }, + { + "body": { + "id": 1222, + "nodeType": "Block", + "src": "911:134:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1210, + "name": "_DODO_LOGIC_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1180, + "src": "921:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1211, + "name": "_dodoLogic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1203, + "src": "936:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "921:25:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1213, + "nodeType": "ExpressionStatement", + "src": "921:25:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1214, + "name": "_CLONE_FACTORY_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1182, + "src": "956:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1215, + "name": "_cloneFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1205, + "src": "974:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "956:31:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1217, + "nodeType": "ExpressionStatement", + "src": "956:31:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1218, + "name": "_DEFAULT_SUPERVISOR_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1184, + "src": "997:20:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1219, + "name": "_defaultSupervisor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "1020:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "997:41:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1221, + "nodeType": "ExpressionStatement", + "src": "997:41:1" + } + ] + }, + "documentation": null, + "id": 1223, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1203, + "mutability": "mutable", + "name": "_dodoLogic", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1223, + "src": "812:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "812:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1205, + "mutability": "mutable", + "name": "_cloneFactory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1223, + "src": "840:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "840:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1207, + "mutability": "mutable", + "name": "_defaultSupervisor", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1223, + "src": "871:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "871:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:101:1" + }, + "returnParameters": { + "id": 1209, + "nodeType": "ParameterList", + "parameters": [], + "src": "911:0:1" + }, + "scope": 1522, + "src": "791:254:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1234, + "nodeType": "Block", + "src": "1161:42:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1230, + "name": "_DODO_LOGIC_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1180, + "src": "1171:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1231, + "name": "_dodoLogic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "1186:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1171:25:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1233, + "nodeType": "ExpressionStatement", + "src": "1171:25:1" + } + ] + }, + "documentation": null, + "functionSelector": "816bd40e", + "id": 1235, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1228, + "modifierName": { + "argumentTypes": null, + "id": 1227, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "1151:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1151:9:1" + } + ], + "name": "setDODOLogic", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1225, + "mutability": "mutable", + "name": "_dodoLogic", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1235, + "src": "1122:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1122:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1121:20:1" + }, + "returnParameters": { + "id": 1229, + "nodeType": "ParameterList", + "parameters": [], + "src": "1161:0:1" + }, + "scope": 1522, + "src": "1100:103:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1246, + "nodeType": "Block", + "src": "1276:48:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1242, + "name": "_CLONE_FACTORY_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1182, + "src": "1286:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1243, + "name": "_cloneFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1237, + "src": "1304:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1286:31:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1245, + "nodeType": "ExpressionStatement", + "src": "1286:31:1" + } + ] + }, + "documentation": null, + "functionSelector": "4f4e6eea", + "id": 1247, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1240, + "modifierName": { + "argumentTypes": null, + "id": 1239, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "1266:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1266:9:1" + } + ], + "name": "setCloneFactory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1237, + "mutability": "mutable", + "name": "_cloneFactory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1247, + "src": "1234:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1234:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1233:23:1" + }, + "returnParameters": { + "id": 1241, + "nodeType": "ParameterList", + "parameters": [], + "src": "1276:0:1" + }, + "scope": 1522, + "src": "1209:115:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1258, + "nodeType": "Block", + "src": "1407:58:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1254, + "name": "_DEFAULT_SUPERVISOR_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1184, + "src": "1417:20:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1255, + "name": "_defaultSupervisor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1249, + "src": "1440:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1417:41:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1257, + "nodeType": "ExpressionStatement", + "src": "1417:41:1" + } + ] + }, + "documentation": null, + "functionSelector": "eef55d3d", + "id": 1259, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1252, + "modifierName": { + "argumentTypes": null, + "id": 1251, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "1397:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1397:9:1" + } + ], + "name": "setDefaultSupervisor", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1249, + "mutability": "mutable", + "name": "_defaultSupervisor", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1259, + "src": "1360:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1359:28:1" + }, + "returnParameters": { + "id": 1253, + "nodeType": "ParameterList", + "parameters": [], + "src": "1407:0:1" + }, + "scope": 1522, + "src": "1330:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1340, + "nodeType": "Block", + "src": "1524:491:1", + "statements": [ + { + "assignments": [ + 1267 + ], + "declarations": [ + { + "constant": false, + "id": 1267, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1340, + "src": "1534:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1266, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1534:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1273, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1269, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1261, + "src": "1560:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1268, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1554:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1554:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10485, + "src": "1554:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 1272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1554:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1534:46:1" + }, + { + "assignments": [ + 1275 + ], + "declarations": [ + { + "constant": false, + "id": 1275, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1340, + "src": "1590:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1274, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1281, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1277, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1261, + "src": "1617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1276, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1611:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1611:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10490, + "src": "1611:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1611:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1590:48:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1284, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "1673:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1285, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1275, + "src": "1684:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1283, + "name": "isDODORegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1496, + "src": "1656:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1656:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f52454749535445524544", + "id": 1287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1697:21:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b50ecbf3dec9c1d08f8b11752d744ffea1bb705d81bfe5ed0e82dd347f6f85af", + "typeString": "literal_string \"DODO_NOT_REGISTERED\"" + }, + "value": "DODO_NOT_REGISTERED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b50ecbf3dec9c1d08f8b11752d744ffea1bb705d81bfe5ed0e82dd347f6f85af", + "typeString": "literal_string \"DODO_NOT_REGISTERED\"" + } + ], + "id": 1282, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1648:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1289, + "nodeType": "ExpressionStatement", + "src": "1648:71:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1290, + "name": "_DODO_REGISTER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "1729:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 1293, + "indexExpression": { + "argumentTypes": null, + "id": 1291, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "1745:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1729:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1294, + "indexExpression": { + "argumentTypes": null, + "id": 1292, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1275, + "src": "1756:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1729:38:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1778:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1770:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1295, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1770:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1770:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1729:51:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1300, + "nodeType": "ExpressionStatement", + "src": "1729:51:1" + }, + { + "body": { + "id": 1338, + "nodeType": "Block", + "src": "1839:170:1", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1314, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "1857:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1316, + "indexExpression": { + "argumentTypes": null, + "id": 1315, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1302, + "src": "1864:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1857:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1317, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1261, + "src": "1870:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1857:17:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1337, + "nodeType": "IfStatement", + "src": "1853:146:1", + "trueBody": { + "id": 1336, + "nodeType": "Block", + "src": "1876:123:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1319, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "1894:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1321, + "indexExpression": { + "argumentTypes": null, + "id": 1320, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1302, + "src": "1901:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1894:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1322, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "1906:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1327, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1323, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "1913:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1913:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1929:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1913:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1906:25:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1894:37:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1329, + "nodeType": "ExpressionStatement", + "src": "1894:37:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1330, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "1949:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1949:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1949:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1334, + "nodeType": "ExpressionStatement", + "src": "1949:12:1" + }, + { + "id": 1335, + "nodeType": "Break", + "src": "1979:5:1" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1305, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1302, + "src": "1810:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1306, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "1815:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1815:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1831:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1815:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1810:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1339, + "initializationExpression": { + "assignments": [ + 1302 + ], + "declarations": [ + { + "constant": false, + "id": 1302, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1339, + "src": "1795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1301, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1304, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1807:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1795:13:1" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1834:3:1", + "subExpression": { + "argumentTypes": null, + "id": 1311, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1302, + "src": "1834:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1313, + "nodeType": "ExpressionStatement", + "src": "1834:3:1" + }, + "nodeType": "ForStatement", + "src": "1790:219:1" + } + ] + }, + "documentation": null, + "functionSelector": "5891296f", + "id": 1341, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1264, + "modifierName": { + "argumentTypes": null, + "id": 1263, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "1514:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1514:9:1" + } + ], + "name": "removeDODO", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1261, + "mutability": "mutable", + "name": "dodo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1341, + "src": "1491:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1491:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1490:14:1" + }, + "returnParameters": { + "id": 1265, + "nodeType": "ParameterList", + "parameters": [], + "src": "1524:0:1" + }, + "scope": 1522, + "src": "1471:544:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1387, + "nodeType": "Block", + "src": "2069:281:1", + "statements": [ + { + "assignments": [ + 1349 + ], + "declarations": [ + { + "constant": false, + "id": 1349, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1387, + "src": "2079:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2079:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1355, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1351, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "2105:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1350, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "2099:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2099:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10485, + "src": "2099:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2099:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2079:46:1" + }, + { + "assignments": [ + 1357 + ], + "declarations": [ + { + "constant": false, + "id": 1357, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1387, + "src": "2135:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1356, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2135:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1363, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1359, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "2162:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1358, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "2156:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2156:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10490, + "src": "2156:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 1362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2156:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2135:48:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2201:40:1", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1366, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1349, + "src": "2219:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1367, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "2230:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1365, + "name": "isDODORegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1496, + "src": "2202:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2202:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f52454749535445524544", + "id": 1370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2243:17:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_91c4d50fcfe249a82b583a710e7b11daad3d018b071212ff400e43a4509e7111", + "typeString": "literal_string \"DODO_REGISTERED\"" + }, + "value": "DODO_REGISTERED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_91c4d50fcfe249a82b583a710e7b11daad3d018b071212ff400e43a4509e7111", + "typeString": "literal_string \"DODO_REGISTERED\"" + } + ], + "id": 1364, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2193:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1372, + "nodeType": "ExpressionStatement", + "src": "2193:68:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1373, + "name": "_DODO_REGISTER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "2271:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 1376, + "indexExpression": { + "argumentTypes": null, + "id": 1374, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1349, + "src": "2287:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2271:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1377, + "indexExpression": { + "argumentTypes": null, + "id": 1375, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "2298:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2271:38:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1378, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "2312:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2271:45:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1380, + "nodeType": "ExpressionStatement", + "src": "2271:45:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1384, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "2338:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1381, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "2326:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2326:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2326:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1386, + "nodeType": "ExpressionStatement", + "src": "2326:17:1" + } + ] + }, + "documentation": null, + "functionSelector": "ecfa2d24", + "id": 1388, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1346, + "modifierName": { + "argumentTypes": null, + "id": 1345, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "2059:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2059:9:1" + } + ], + "name": "addDODO", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1343, + "mutability": "mutable", + "name": "dodo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1388, + "src": "2038:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2038:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2037:14:1" + }, + "returnParameters": { + "id": 1347, + "nodeType": "ParameterList", + "parameters": [], + "src": "2069:0:1" + }, + "scope": 1522, + "src": "2021:329:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1457, + "nodeType": "Block", + "src": "2695:554:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2713:40:1", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1413, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "2731:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1414, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "2742:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1412, + "name": "isDODORegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1496, + "src": "2714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2714:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f52454749535445524544", + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2755:17:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_91c4d50fcfe249a82b583a710e7b11daad3d018b071212ff400e43a4509e7111", + "typeString": "literal_string \"DODO_REGISTERED\"" + }, + "value": "DODO_REGISTERED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_91c4d50fcfe249a82b583a710e7b11daad3d018b071212ff400e43a4509e7111", + "typeString": "literal_string \"DODO_REGISTERED\"" + } + ], + "id": 1411, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2705:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2705:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1419, + "nodeType": "ExpressionStatement", + "src": "2705:68:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1420, + "name": "newBornDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1409, + "src": "2783:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1425, + "name": "_DODO_LOGIC_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1180, + "src": "2834:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1422, + "name": "_CLONE_FACTORY_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1182, + "src": "2811:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1421, + "name": "ICloneFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1986, + "src": "2797:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ICloneFactory_$1986_$", + "typeString": "type(contract ICloneFactory)" + } + }, + "id": 1423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2797:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICloneFactory_$1986", + "typeString": "contract ICloneFactory" + } + }, + "id": 1424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "clone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1985, + "src": "2797:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_address_$", + "typeString": "function (address) external returns (address)" + } + }, + "id": 1426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2797:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2783:64:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1428, + "nodeType": "ExpressionStatement", + "src": "2783:64:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1433, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "2894:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1434, + "name": "_DEFAULT_SUPERVISOR_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1184, + "src": "2915:20:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1435, + "name": "maintainer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "2949:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1436, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "2973:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1437, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "2996:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1438, + "name": "oracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "3020:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1439, + "name": "lpFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1398, + "src": "3040:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1440, + "name": "mtFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "3063:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1441, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1402, + "src": "3086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1442, + "name": "gasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1404, + "src": "3101:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1430, + "name": "newBornDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1409, + "src": "2863:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1429, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "2857:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2857:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "init", + "nodeType": "MemberAccess", + "referencedDeclaration": 10377, + "src": "2857:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,address,address,address,uint256,uint256,uint256,uint256) external" + } + }, + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2857:267:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1444, + "nodeType": "ExpressionStatement", + "src": "2857:267:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1446, + "name": "newBornDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1409, + "src": "3142:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1445, + "name": "addDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1388, + "src": "3134:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3134:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1448, + "nodeType": "ExpressionStatement", + "src": "3134:20:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1450, + "name": "newBornDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1409, + "src": "3179:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1451, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "3192:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1452, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "3203:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1449, + "name": "DODOBirth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1201, + "src": "3169:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3169:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1454, + "nodeType": "EmitStatement", + "src": "3164:50:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1455, + "name": "newBornDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1409, + "src": "3231:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1410, + "id": 1456, + "nodeType": "Return", + "src": "3224:18:1" + } + ] + }, + "documentation": null, + "functionSelector": "6ace4afd", + "id": 1458, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1407, + "modifierName": { + "argumentTypes": null, + "id": 1406, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "2655:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2655:9:1" + } + ], + "name": "breedDODO", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1390, + "mutability": "mutable", + "name": "maintainer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2438:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2438:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1392, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2466:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1391, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2466:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1394, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2493:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2493:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1396, + "mutability": "mutable", + "name": "oracle", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2521:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2521:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1398, + "mutability": "mutable", + "name": "lpFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2545:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1400, + "mutability": "mutable", + "name": "mtFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2572:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1399, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2572:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1402, + "mutability": "mutable", + "name": "k", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2599:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1401, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1404, + "mutability": "mutable", + "name": "gasPriceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2618:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2618:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2428:217:1" + }, + "returnParameters": { + "id": 1410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1409, + "mutability": "mutable", + "name": "newBornDODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2674:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2674:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2673:21:1" + }, + "scope": 1522, + "src": "2410:839:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1495, + "nodeType": "Block", + "src": "3396:243:1", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1467, + "name": "_DODO_REGISTER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "3423:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 1469, + "indexExpression": { + "argumentTypes": null, + "id": 1468, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "3439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3423:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1471, + "indexExpression": { + "argumentTypes": null, + "id": 1470, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "3450:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3423:38:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3473:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3465:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3465:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3423:52:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1477, + "name": "_DODO_REGISTER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "3491:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 1479, + "indexExpression": { + "argumentTypes": null, + "id": 1478, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "3507:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3491:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1481, + "indexExpression": { + "argumentTypes": null, + "id": 1480, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "3519:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3491:38:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3541:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3533:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3533:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3533:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3491:52:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3423:120:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1493, + "nodeType": "Block", + "src": "3597:36:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3618:4:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1466, + "id": 1492, + "nodeType": "Return", + "src": "3611:11:1" + } + ] + }, + "id": 1494, + "nodeType": "IfStatement", + "src": "3406:227:1", + "trueBody": { + "id": 1490, + "nodeType": "Block", + "src": "3554:37:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3575:5:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1466, + "id": 1489, + "nodeType": "Return", + "src": "3568:12:1" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "a0b0a4d1", + "id": 1496, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isDODORegistered", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1460, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1496, + "src": "3330:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3330:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1462, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1496, + "src": "3349:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3349:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3329:39:1" + }, + "returnParameters": { + "id": 1466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1465, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1496, + "src": "3390:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1464, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3390:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3389:6:1" + }, + "scope": 1522, + "src": "3304:335:1", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1511, + "nodeType": "Block", + "src": "3733:62:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1505, + "name": "_DODO_REGISTER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "3750:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 1507, + "indexExpression": { + "argumentTypes": null, + "id": 1506, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1498, + "src": "3766:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3750:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1509, + "indexExpression": { + "argumentTypes": null, + "id": 1508, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1500, + "src": "3777:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3750:38:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1504, + "id": 1510, + "nodeType": "Return", + "src": "3743:45:1" + } + ] + }, + "documentation": null, + "functionSelector": "1273b0c6", + "id": 1512, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDODO", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1498, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1512, + "src": "3662:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1500, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1512, + "src": "3681:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3681:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3661:39:1" + }, + "returnParameters": { + "id": 1504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1503, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1512, + "src": "3724:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1502, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3723:9:1" + }, + "scope": 1522, + "src": "3645:150:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1520, + "nodeType": "Block", + "src": "3862:30:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1518, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "3879:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 1517, + "id": 1519, + "nodeType": "Return", + "src": "3872:13:1" + } + ] + }, + "documentation": null, + "functionSelector": "52491217", + "id": 1521, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDODOs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1513, + "nodeType": "ParameterList", + "parameters": [], + "src": "3818:2:1" + }, + "returnParameters": { + "id": 1517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1521, + "src": "3844:16:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3844:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1515, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3844:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3843:18:1" + }, + "scope": 1522, + "src": "3801:91:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1523, + "src": "363:3531:1" + } + ], + "src": "78:3817:1" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOZoo.sol", + "exportedSymbols": { + "DODOZoo": [ + 1522 + ] + }, + "id": 1523, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1168, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:1" + }, + { + "id": 1169, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:1" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "./lib/Ownable.sol", + "id": 1171, + "nodeType": "ImportDirective", + "scope": 1523, + "sourceUnit": 11272, + "src": "136:42:1", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1170, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "file": "./intf/IDODO.sol", + "id": 1173, + "nodeType": "ImportDirective", + "scope": 1523, + "sourceUnit": 10492, + "src": "179:39:1", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1172, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "187:5:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol", + "file": "./helper/CloneFactory.sol", + "id": 1175, + "nodeType": "ImportDirective", + "scope": 1523, + "sourceUnit": 2009, + "src": "219:56:1", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1174, + "name": "ICloneFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "227:13:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1177, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "383:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 1178, + "nodeType": "InheritanceSpecifier", + "src": "383:7:1" + } + ], + "contractDependencies": [ + 11271 + ], + "contractKind": "contract", + "documentation": { + "id": 1176, + "nodeType": "StructuredDocumentation", + "src": "278:84:1", + "text": " @title DODOZoo\n @author DODO Breeder\n @notice Register of All DODO" + }, + "fullyImplemented": true, + "id": 1522, + "linearizedBaseContracts": [ + 1522, + 11271 + ], + "name": "DODOZoo", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "9a07cd82", + "id": 1180, + "mutability": "mutable", + "name": "_DODO_LOGIC_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1522, + "src": "397:27:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1179, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "397:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "eb774d05", + "id": 1182, + "mutability": "mutable", + "name": "_CLONE_FACTORY_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1522, + "src": "430:30:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "430:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3e73d4b4", + "id": 1184, + "mutability": "mutable", + "name": "_DEFAULT_SUPERVISOR_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1522, + "src": "467:35:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1183, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "467:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1190, + "mutability": "mutable", + "name": "_DODO_REGISTER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1522, + "src": "509:72:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "typeName": { + "id": 1189, + "keyType": { + "id": 1185, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "517:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "509:47:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + }, + "valueType": { + "id": 1188, + "keyType": { + "id": 1186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "536:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "528:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueType": { + "id": 1187, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "547:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "functionSelector": "fa20e0d9", + "id": 1193, + "mutability": "mutable", + "name": "_DODOs", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1522, + "src": "587:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1191, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "587:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1192, + "length": null, + "nodeType": "ArrayTypeName", + "src": "587:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 1201, + "name": "DODOBirth", + "nodeType": "EventDefinition", + "parameters": { + "id": 1200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1195, + "indexed": false, + "mutability": "mutable", + "name": "newBorn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1201, + "src": "674:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1194, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "674:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1197, + "indexed": false, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1201, + "src": "691:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1196, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "691:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1199, + "indexed": false, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1201, + "src": "710:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "710:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "673:56:1" + }, + "src": "658:72:1" + }, + { + "body": { + "id": 1222, + "nodeType": "Block", + "src": "911:134:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1210, + "name": "_DODO_LOGIC_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1180, + "src": "921:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1211, + "name": "_dodoLogic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1203, + "src": "936:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "921:25:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1213, + "nodeType": "ExpressionStatement", + "src": "921:25:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1214, + "name": "_CLONE_FACTORY_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1182, + "src": "956:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1215, + "name": "_cloneFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1205, + "src": "974:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "956:31:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1217, + "nodeType": "ExpressionStatement", + "src": "956:31:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1218, + "name": "_DEFAULT_SUPERVISOR_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1184, + "src": "997:20:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1219, + "name": "_defaultSupervisor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1207, + "src": "1020:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "997:41:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1221, + "nodeType": "ExpressionStatement", + "src": "997:41:1" + } + ] + }, + "documentation": null, + "id": 1223, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1203, + "mutability": "mutable", + "name": "_dodoLogic", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1223, + "src": "812:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "812:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1205, + "mutability": "mutable", + "name": "_cloneFactory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1223, + "src": "840:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1204, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "840:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1207, + "mutability": "mutable", + "name": "_defaultSupervisor", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1223, + "src": "871:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "871:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:101:1" + }, + "returnParameters": { + "id": 1209, + "nodeType": "ParameterList", + "parameters": [], + "src": "911:0:1" + }, + "scope": 1522, + "src": "791:254:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1234, + "nodeType": "Block", + "src": "1161:42:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1230, + "name": "_DODO_LOGIC_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1180, + "src": "1171:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1231, + "name": "_dodoLogic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1225, + "src": "1186:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1171:25:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1233, + "nodeType": "ExpressionStatement", + "src": "1171:25:1" + } + ] + }, + "documentation": null, + "functionSelector": "816bd40e", + "id": 1235, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1228, + "modifierName": { + "argumentTypes": null, + "id": 1227, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "1151:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1151:9:1" + } + ], + "name": "setDODOLogic", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1225, + "mutability": "mutable", + "name": "_dodoLogic", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1235, + "src": "1122:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1122:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1121:20:1" + }, + "returnParameters": { + "id": 1229, + "nodeType": "ParameterList", + "parameters": [], + "src": "1161:0:1" + }, + "scope": 1522, + "src": "1100:103:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1246, + "nodeType": "Block", + "src": "1276:48:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1242, + "name": "_CLONE_FACTORY_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1182, + "src": "1286:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1243, + "name": "_cloneFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1237, + "src": "1304:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1286:31:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1245, + "nodeType": "ExpressionStatement", + "src": "1286:31:1" + } + ] + }, + "documentation": null, + "functionSelector": "4f4e6eea", + "id": 1247, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1240, + "modifierName": { + "argumentTypes": null, + "id": 1239, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "1266:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1266:9:1" + } + ], + "name": "setCloneFactory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1237, + "mutability": "mutable", + "name": "_cloneFactory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1247, + "src": "1234:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1234:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1233:23:1" + }, + "returnParameters": { + "id": 1241, + "nodeType": "ParameterList", + "parameters": [], + "src": "1276:0:1" + }, + "scope": 1522, + "src": "1209:115:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1258, + "nodeType": "Block", + "src": "1407:58:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1254, + "name": "_DEFAULT_SUPERVISOR_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1184, + "src": "1417:20:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1255, + "name": "_defaultSupervisor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1249, + "src": "1440:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1417:41:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1257, + "nodeType": "ExpressionStatement", + "src": "1417:41:1" + } + ] + }, + "documentation": null, + "functionSelector": "eef55d3d", + "id": 1259, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1252, + "modifierName": { + "argumentTypes": null, + "id": 1251, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "1397:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1397:9:1" + } + ], + "name": "setDefaultSupervisor", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1249, + "mutability": "mutable", + "name": "_defaultSupervisor", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1259, + "src": "1360:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1359:28:1" + }, + "returnParameters": { + "id": 1253, + "nodeType": "ParameterList", + "parameters": [], + "src": "1407:0:1" + }, + "scope": 1522, + "src": "1330:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1340, + "nodeType": "Block", + "src": "1524:491:1", + "statements": [ + { + "assignments": [ + 1267 + ], + "declarations": [ + { + "constant": false, + "id": 1267, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1340, + "src": "1534:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1266, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1534:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1273, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1269, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1261, + "src": "1560:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1268, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1554:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1554:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10485, + "src": "1554:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 1272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1554:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1534:46:1" + }, + { + "assignments": [ + 1275 + ], + "declarations": [ + { + "constant": false, + "id": 1275, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1340, + "src": "1590:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1274, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1281, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1277, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1261, + "src": "1617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1276, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1611:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1611:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10490, + "src": "1611:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1611:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1590:48:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1284, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "1673:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1285, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1275, + "src": "1684:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1283, + "name": "isDODORegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1496, + "src": "1656:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1656:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f52454749535445524544", + "id": 1287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1697:21:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b50ecbf3dec9c1d08f8b11752d744ffea1bb705d81bfe5ed0e82dd347f6f85af", + "typeString": "literal_string \"DODO_NOT_REGISTERED\"" + }, + "value": "DODO_NOT_REGISTERED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b50ecbf3dec9c1d08f8b11752d744ffea1bb705d81bfe5ed0e82dd347f6f85af", + "typeString": "literal_string \"DODO_NOT_REGISTERED\"" + } + ], + "id": 1282, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1648:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1289, + "nodeType": "ExpressionStatement", + "src": "1648:71:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1290, + "name": "_DODO_REGISTER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "1729:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 1293, + "indexExpression": { + "argumentTypes": null, + "id": 1291, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1267, + "src": "1745:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1729:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1294, + "indexExpression": { + "argumentTypes": null, + "id": 1292, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1275, + "src": "1756:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1729:38:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1778:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1770:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1295, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1770:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1770:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1729:51:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1300, + "nodeType": "ExpressionStatement", + "src": "1729:51:1" + }, + { + "body": { + "id": 1338, + "nodeType": "Block", + "src": "1839:170:1", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1314, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "1857:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1316, + "indexExpression": { + "argumentTypes": null, + "id": 1315, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1302, + "src": "1864:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1857:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1317, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1261, + "src": "1870:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1857:17:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1337, + "nodeType": "IfStatement", + "src": "1853:146:1", + "trueBody": { + "id": 1336, + "nodeType": "Block", + "src": "1876:123:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1319, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "1894:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1321, + "indexExpression": { + "argumentTypes": null, + "id": 1320, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1302, + "src": "1901:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1894:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1322, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "1906:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1327, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1323, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "1913:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1913:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1929:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1913:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1906:25:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1894:37:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1329, + "nodeType": "ExpressionStatement", + "src": "1894:37:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1330, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "1949:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1949:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1949:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1334, + "nodeType": "ExpressionStatement", + "src": "1949:12:1" + }, + { + "id": 1335, + "nodeType": "Break", + "src": "1979:5:1" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1305, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1302, + "src": "1810:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1306, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "1815:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1815:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1831:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1815:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1810:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1339, + "initializationExpression": { + "assignments": [ + 1302 + ], + "declarations": [ + { + "constant": false, + "id": 1302, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1339, + "src": "1795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1301, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1304, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 1303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1807:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1795:13:1" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 1312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1834:3:1", + "subExpression": { + "argumentTypes": null, + "id": 1311, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1302, + "src": "1834:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1313, + "nodeType": "ExpressionStatement", + "src": "1834:3:1" + }, + "nodeType": "ForStatement", + "src": "1790:219:1" + } + ] + }, + "documentation": null, + "functionSelector": "5891296f", + "id": 1341, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1264, + "modifierName": { + "argumentTypes": null, + "id": 1263, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "1514:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1514:9:1" + } + ], + "name": "removeDODO", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1261, + "mutability": "mutable", + "name": "dodo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1341, + "src": "1491:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1491:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1490:14:1" + }, + "returnParameters": { + "id": 1265, + "nodeType": "ParameterList", + "parameters": [], + "src": "1524:0:1" + }, + "scope": 1522, + "src": "1471:544:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1387, + "nodeType": "Block", + "src": "2069:281:1", + "statements": [ + { + "assignments": [ + 1349 + ], + "declarations": [ + { + "constant": false, + "id": 1349, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1387, + "src": "2079:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2079:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1355, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1351, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "2105:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1350, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "2099:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2099:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10485, + "src": "2099:24:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2099:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2079:46:1" + }, + { + "assignments": [ + 1357 + ], + "declarations": [ + { + "constant": false, + "id": 1357, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1387, + "src": "2135:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1356, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2135:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1363, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1359, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "2162:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1358, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "2156:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2156:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10490, + "src": "2156:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 1362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2156:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2135:48:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2201:40:1", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1366, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1349, + "src": "2219:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1367, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "2230:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1365, + "name": "isDODORegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1496, + "src": "2202:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2202:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f52454749535445524544", + "id": 1370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2243:17:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_91c4d50fcfe249a82b583a710e7b11daad3d018b071212ff400e43a4509e7111", + "typeString": "literal_string \"DODO_REGISTERED\"" + }, + "value": "DODO_REGISTERED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_91c4d50fcfe249a82b583a710e7b11daad3d018b071212ff400e43a4509e7111", + "typeString": "literal_string \"DODO_REGISTERED\"" + } + ], + "id": 1364, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2193:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1372, + "nodeType": "ExpressionStatement", + "src": "2193:68:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1373, + "name": "_DODO_REGISTER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "2271:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 1376, + "indexExpression": { + "argumentTypes": null, + "id": 1374, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1349, + "src": "2287:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2271:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1377, + "indexExpression": { + "argumentTypes": null, + "id": 1375, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1357, + "src": "2298:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2271:38:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1378, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "2312:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2271:45:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1380, + "nodeType": "ExpressionStatement", + "src": "2271:45:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1384, + "name": "dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1343, + "src": "2338:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 1381, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "2326:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 1383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2326:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2326:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1386, + "nodeType": "ExpressionStatement", + "src": "2326:17:1" + } + ] + }, + "documentation": null, + "functionSelector": "ecfa2d24", + "id": 1388, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1346, + "modifierName": { + "argumentTypes": null, + "id": 1345, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "2059:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2059:9:1" + } + ], + "name": "addDODO", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1343, + "mutability": "mutable", + "name": "dodo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1388, + "src": "2038:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2038:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2037:14:1" + }, + "returnParameters": { + "id": 1347, + "nodeType": "ParameterList", + "parameters": [], + "src": "2069:0:1" + }, + "scope": 1522, + "src": "2021:329:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1457, + "nodeType": "Block", + "src": "2695:554:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2713:40:1", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1413, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "2731:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1414, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "2742:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1412, + "name": "isDODORegistered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1496, + "src": "2714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2714:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f52454749535445524544", + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2755:17:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_91c4d50fcfe249a82b583a710e7b11daad3d018b071212ff400e43a4509e7111", + "typeString": "literal_string \"DODO_REGISTERED\"" + }, + "value": "DODO_REGISTERED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_91c4d50fcfe249a82b583a710e7b11daad3d018b071212ff400e43a4509e7111", + "typeString": "literal_string \"DODO_REGISTERED\"" + } + ], + "id": 1411, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2705:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2705:68:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1419, + "nodeType": "ExpressionStatement", + "src": "2705:68:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1420, + "name": "newBornDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1409, + "src": "2783:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1425, + "name": "_DODO_LOGIC_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1180, + "src": "2834:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1422, + "name": "_CLONE_FACTORY_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1182, + "src": "2811:15:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1421, + "name": "ICloneFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1986, + "src": "2797:13:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ICloneFactory_$1986_$", + "typeString": "type(contract ICloneFactory)" + } + }, + "id": 1423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2797:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICloneFactory_$1986", + "typeString": "contract ICloneFactory" + } + }, + "id": 1424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "clone", + "nodeType": "MemberAccess", + "referencedDeclaration": 1985, + "src": "2797:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_address_$", + "typeString": "function (address) external returns (address)" + } + }, + "id": 1426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2797:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2783:64:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1428, + "nodeType": "ExpressionStatement", + "src": "2783:64:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1433, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "2894:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1434, + "name": "_DEFAULT_SUPERVISOR_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1184, + "src": "2915:20:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1435, + "name": "maintainer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "2949:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1436, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "2973:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1437, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "2996:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1438, + "name": "oracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "3020:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1439, + "name": "lpFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1398, + "src": "3040:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1440, + "name": "mtFeeRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "3063:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1441, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1402, + "src": "3086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1442, + "name": "gasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1404, + "src": "3101:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1430, + "name": "newBornDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1409, + "src": "2863:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1429, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "2857:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2857:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "init", + "nodeType": "MemberAccess", + "referencedDeclaration": 10377, + "src": "2857:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,address,address,address,address,uint256,uint256,uint256,uint256) external" + } + }, + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2857:267:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1444, + "nodeType": "ExpressionStatement", + "src": "2857:267:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1446, + "name": "newBornDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1409, + "src": "3142:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1445, + "name": "addDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1388, + "src": "3134:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3134:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1448, + "nodeType": "ExpressionStatement", + "src": "3134:20:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1450, + "name": "newBornDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1409, + "src": "3179:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1451, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1392, + "src": "3192:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1452, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1394, + "src": "3203:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1449, + "name": "DODOBirth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1201, + "src": "3169:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3169:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1454, + "nodeType": "EmitStatement", + "src": "3164:50:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 1455, + "name": "newBornDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1409, + "src": "3231:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1410, + "id": 1456, + "nodeType": "Return", + "src": "3224:18:1" + } + ] + }, + "documentation": null, + "functionSelector": "6ace4afd", + "id": 1458, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1407, + "modifierName": { + "argumentTypes": null, + "id": 1406, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "2655:9:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2655:9:1" + } + ], + "name": "breedDODO", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1390, + "mutability": "mutable", + "name": "maintainer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2438:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2438:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1392, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2466:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1391, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2466:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1394, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2493:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1393, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2493:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1396, + "mutability": "mutable", + "name": "oracle", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2521:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1395, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2521:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1398, + "mutability": "mutable", + "name": "lpFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2545:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1400, + "mutability": "mutable", + "name": "mtFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2572:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1399, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2572:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1402, + "mutability": "mutable", + "name": "k", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2599:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1401, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1404, + "mutability": "mutable", + "name": "gasPriceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2618:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2618:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2428:217:1" + }, + "returnParameters": { + "id": 1410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1409, + "mutability": "mutable", + "name": "newBornDODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1458, + "src": "2674:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2674:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2673:21:1" + }, + "scope": 1522, + "src": "2410:839:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1495, + "nodeType": "Block", + "src": "3396:243:1", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1467, + "name": "_DODO_REGISTER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "3423:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 1469, + "indexExpression": { + "argumentTypes": null, + "id": 1468, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "3439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3423:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1471, + "indexExpression": { + "argumentTypes": null, + "id": 1470, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "3450:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3423:38:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3473:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3465:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3465:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3423:52:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1477, + "name": "_DODO_REGISTER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "3491:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 1479, + "indexExpression": { + "argumentTypes": null, + "id": 1478, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "3507:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3491:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1481, + "indexExpression": { + "argumentTypes": null, + "id": 1480, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1460, + "src": "3519:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3491:38:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3541:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3533:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3533:7:1", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3533:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3491:52:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3423:120:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1493, + "nodeType": "Block", + "src": "3597:36:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3618:4:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1466, + "id": 1492, + "nodeType": "Return", + "src": "3611:11:1" + } + ] + }, + "id": 1494, + "nodeType": "IfStatement", + "src": "3406:227:1", + "trueBody": { + "id": 1490, + "nodeType": "Block", + "src": "3554:37:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3575:5:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1466, + "id": 1489, + "nodeType": "Return", + "src": "3568:12:1" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "a0b0a4d1", + "id": 1496, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isDODORegistered", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1460, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1496, + "src": "3330:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3330:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1462, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1496, + "src": "3349:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1461, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3349:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3329:39:1" + }, + "returnParameters": { + "id": 1466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1465, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1496, + "src": "3390:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1464, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3390:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3389:6:1" + }, + "scope": 1522, + "src": "3304:335:1", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1511, + "nodeType": "Block", + "src": "3733:62:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1505, + "name": "_DODO_REGISTER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1190, + "src": "3750:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$", + "typeString": "mapping(address => mapping(address => address))" + } + }, + "id": 1507, + "indexExpression": { + "argumentTypes": null, + "id": 1506, + "name": "baseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1498, + "src": "3766:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3750:26:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 1509, + "indexExpression": { + "argumentTypes": null, + "id": 1508, + "name": "quoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1500, + "src": "3777:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3750:38:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1504, + "id": 1510, + "nodeType": "Return", + "src": "3743:45:1" + } + ] + }, + "documentation": null, + "functionSelector": "1273b0c6", + "id": 1512, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDODO", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1498, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1512, + "src": "3662:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1500, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1512, + "src": "3681:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3681:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3661:39:1" + }, + "returnParameters": { + "id": 1504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1503, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1512, + "src": "3724:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1502, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3723:9:1" + }, + "scope": 1522, + "src": "3645:150:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1520, + "nodeType": "Block", + "src": "3862:30:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1518, + "name": "_DODOs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "3879:6:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 1517, + "id": 1519, + "nodeType": "Return", + "src": "3872:13:1" + } + ] + }, + "documentation": null, + "functionSelector": "52491217", + "id": 1521, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDODOs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1513, + "nodeType": "ParameterList", + "parameters": [], + "src": "3818:2:1" + }, + "returnParameters": { + "id": 1517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1521, + "src": "3844:16:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3844:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1515, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3844:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3843:18:1" + }, + "scope": 1522, + "src": "3801:91:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1523, + "src": "363:3531:1" + } + ], + "src": "78:3817:1" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.484Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "DODOZoo" + }, + "userdoc": { + "methods": {}, + "notice": "Register of All DODO" + } +} \ No newline at end of file diff --git a/build-v1/contracts/DecimalMath.json b/build-v1/contracts/DecimalMath.json new file mode 100644 index 0000000..09c145e --- /dev/null +++ b/build-v1/contracts/DecimalMath.json @@ -0,0 +1,2332 @@ +{ + "contractName": "DecimalMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"DecimalMath\"},\"userdoc\":{\"methods\":{},\"notice\":\"Functions for fixed point number with 18 decimals\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":\"DecimalMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":{\"keccak256\":\"0x9a093cbac4e37ed4ee5e27495dae08754bbfec81f7c0ceb57a5a7ac4f362208f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ddd9e5de1c555f0d1232e148fe18574e6adaa348e792844d9011bbd39bf908f\",\"dweb:/ipfs/QmSgZNwPNqCrQC4kJNdwH3iQNasbTfw2cbTtAtNVcpqnYc\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207a468b0c2955324f5156945f942228fb8f246689c7181eecdf6b95fe100373bf64736f6c63430006090033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207a468b0c2955324f5156945f942228fb8f246689c7181eecdf6b95fe100373bf64736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "297:605:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "297:605:36:-:0;;;;;;;;", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {SafeMath} from \"./SafeMath.sol\";\n\n\n/**\n * @title DecimalMath\n * @author DODO Breeder\n *\n * @notice Functions for fixed point number with 18 decimals\n */\nlibrary DecimalMath {\n using SafeMath for uint256;\n\n uint256 constant ONE = 10**18;\n\n function mul(uint256 target, uint256 d) internal pure returns (uint256) {\n return target.mul(d) / ONE;\n }\n\n function mulCeil(uint256 target, uint256 d) internal pure returns (uint256) {\n return target.mul(d).divCeil(ONE);\n }\n\n function divFloor(uint256 target, uint256 d) internal pure returns (uint256) {\n return target.mul(ONE).div(d);\n }\n\n function divCeil(uint256 target, uint256 d) internal pure returns (uint256) {\n return target.mul(ONE).divCeil(d);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "exportedSymbols": { + "DecimalMath": [ + 11078 + ] + }, + "id": 11079, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10994, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:36" + }, + { + "id": 10995, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:36" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "./SafeMath.sol", + "id": 10997, + "nodeType": "ImportDirective", + "scope": 11079, + "sourceUnit": 11624, + "src": "136:40:36", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 10996, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:36", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 10998, + "nodeType": "StructuredDocumentation", + "src": "179:117:36", + "text": " @title DecimalMath\n @author DODO Breeder\n @notice Functions for fixed point number with 18 decimals" + }, + "fullyImplemented": true, + "id": 11078, + "linearizedBaseContracts": [ + 11078 + ], + "name": "DecimalMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 11001, + "libraryName": { + "contractScope": null, + "id": 10999, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "329:8:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "323:27:36", + "typeName": { + "id": 11000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "342:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 11006, + "mutability": "constant", + "name": "ONE", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11078, + "src": "356:29:36", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "356:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 11005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 11003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "379:2:36", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 11004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "383:2:36", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "379:6:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 11022, + "nodeType": "Block", + "src": "464:43:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11017, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11010, + "src": "492:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11015, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11008, + "src": "481:6:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "481:10:36", + "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": 11018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "481:13:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11019, + "name": "ONE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11006, + "src": "497:3:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "481:19:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11014, + "id": 11021, + "nodeType": "Return", + "src": "474:26:36" + } + ] + }, + "documentation": null, + "id": 11023, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11011, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11008, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11023, + "src": "405:14:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11007, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "405:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11010, + "mutability": "mutable", + "name": "d", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11023, + "src": "421:9:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11009, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "421:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "404:27:36" + }, + "returnParameters": { + "id": 11014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11013, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11023, + "src": "455:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11012, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "455:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "454:9:36" + }, + "scope": 11078, + "src": "392:115:36", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11040, + "nodeType": "Block", + "src": "589:50:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11037, + "name": "ONE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11006, + "src": "628:3:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11034, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11027, + "src": "617:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11032, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11025, + "src": "606:6:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "606:10:36", + "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": 11035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "606:13:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11536, + "src": "606:21:36", + "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": 11038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "606:26:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11031, + "id": 11039, + "nodeType": "Return", + "src": "599:33:36" + } + ] + }, + "documentation": null, + "id": 11041, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulCeil", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11025, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11041, + "src": "530:14:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "530:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11027, + "mutability": "mutable", + "name": "d", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11041, + "src": "546:9:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11026, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "546:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "529:27:36" + }, + "returnParameters": { + "id": 11031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11030, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11041, + "src": "580:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "580:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "579:9:36" + }, + "scope": 11078, + "src": "513:126:36", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11058, + "nodeType": "Block", + "src": "722:46:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11055, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11045, + "src": "759:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11052, + "name": "ONE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11006, + "src": "750:3:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11050, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11043, + "src": "739:6:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "739:10:36", + "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": 11053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "739:15:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "739:19:36", + "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": 11056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "739:22:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11049, + "id": 11057, + "nodeType": "Return", + "src": "732:29:36" + } + ] + }, + "documentation": null, + "id": 11059, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "divFloor", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11043, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11059, + "src": "663:14:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "663:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11045, + "mutability": "mutable", + "name": "d", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11059, + "src": "679:9:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "679:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "662:27:36" + }, + "returnParameters": { + "id": 11049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11059, + "src": "713:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "713:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "712:9:36" + }, + "scope": 11078, + "src": "645:123:36", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11076, + "nodeType": "Block", + "src": "850:50:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11073, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11063, + "src": "891:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11070, + "name": "ONE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11006, + "src": "878:3:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11068, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11061, + "src": "867:6:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "867:10:36", + "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": 11071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "867:15:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11536, + "src": "867:23:36", + "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": 11074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "867:26:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11067, + "id": 11075, + "nodeType": "Return", + "src": "860:33:36" + } + ] + }, + "documentation": null, + "id": 11077, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "divCeil", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11064, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11061, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11077, + "src": "791:14:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "791:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11063, + "mutability": "mutable", + "name": "d", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11077, + "src": "807:9:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11062, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "807:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "790:27:36" + }, + "returnParameters": { + "id": 11067, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11066, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11077, + "src": "841:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11065, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "841:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "840:9:36" + }, + "scope": 11078, + "src": "774:126:36", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 11079, + "src": "297:605:36" + } + ], + "src": "78:825:36" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "exportedSymbols": { + "DecimalMath": [ + 11078 + ] + }, + "id": 11079, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10994, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:36" + }, + { + "id": 10995, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:36" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "./SafeMath.sol", + "id": 10997, + "nodeType": "ImportDirective", + "scope": 11079, + "sourceUnit": 11624, + "src": "136:40:36", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 10996, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:36", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 10998, + "nodeType": "StructuredDocumentation", + "src": "179:117:36", + "text": " @title DecimalMath\n @author DODO Breeder\n @notice Functions for fixed point number with 18 decimals" + }, + "fullyImplemented": true, + "id": 11078, + "linearizedBaseContracts": [ + 11078 + ], + "name": "DecimalMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 11001, + "libraryName": { + "contractScope": null, + "id": 10999, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "329:8:36", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "323:27:36", + "typeName": { + "id": 11000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "342:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 11006, + "mutability": "constant", + "name": "ONE", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11078, + "src": "356:29:36", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "356:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 11005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 11003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "379:2:36", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 11004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "383:2:36", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "379:6:36", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 11022, + "nodeType": "Block", + "src": "464:43:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11017, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11010, + "src": "492:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11015, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11008, + "src": "481:6:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "481:10:36", + "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": 11018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "481:13:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11019, + "name": "ONE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11006, + "src": "497:3:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "481:19:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11014, + "id": 11021, + "nodeType": "Return", + "src": "474:26:36" + } + ] + }, + "documentation": null, + "id": 11023, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11011, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11008, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11023, + "src": "405:14:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11007, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "405:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11010, + "mutability": "mutable", + "name": "d", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11023, + "src": "421:9:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11009, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "421:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "404:27:36" + }, + "returnParameters": { + "id": 11014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11013, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11023, + "src": "455:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11012, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "455:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "454:9:36" + }, + "scope": 11078, + "src": "392:115:36", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11040, + "nodeType": "Block", + "src": "589:50:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11037, + "name": "ONE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11006, + "src": "628:3:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11034, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11027, + "src": "617:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11032, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11025, + "src": "606:6:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "606:10:36", + "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": 11035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "606:13:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11536, + "src": "606:21:36", + "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": 11038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "606:26:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11031, + "id": 11039, + "nodeType": "Return", + "src": "599:33:36" + } + ] + }, + "documentation": null, + "id": 11041, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulCeil", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11025, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11041, + "src": "530:14:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "530:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11027, + "mutability": "mutable", + "name": "d", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11041, + "src": "546:9:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11026, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "546:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "529:27:36" + }, + "returnParameters": { + "id": 11031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11030, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11041, + "src": "580:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "580:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "579:9:36" + }, + "scope": 11078, + "src": "513:126:36", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11058, + "nodeType": "Block", + "src": "722:46:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11055, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11045, + "src": "759:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11052, + "name": "ONE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11006, + "src": "750:3:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11050, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11043, + "src": "739:6:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "739:10:36", + "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": 11053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "739:15:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "739:19:36", + "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": 11056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "739:22:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11049, + "id": 11057, + "nodeType": "Return", + "src": "732:29:36" + } + ] + }, + "documentation": null, + "id": 11059, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "divFloor", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11043, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11059, + "src": "663:14:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "663:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11045, + "mutability": "mutable", + "name": "d", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11059, + "src": "679:9:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "679:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "662:27:36" + }, + "returnParameters": { + "id": 11049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11059, + "src": "713:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "713:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "712:9:36" + }, + "scope": 11078, + "src": "645:123:36", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11076, + "nodeType": "Block", + "src": "850:50:36", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11073, + "name": "d", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11063, + "src": "891:1:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11070, + "name": "ONE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11006, + "src": "878:3:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11068, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11061, + "src": "867:6:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "867:10:36", + "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": 11071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "867:15:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11536, + "src": "867:23:36", + "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": 11074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "867:26:36", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11067, + "id": 11075, + "nodeType": "Return", + "src": "860:33:36" + } + ] + }, + "documentation": null, + "id": 11077, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "divCeil", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11064, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11061, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11077, + "src": "791:14:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "791:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11063, + "mutability": "mutable", + "name": "d", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11077, + "src": "807:9:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11062, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "807:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "790:27:36" + }, + "returnParameters": { + "id": 11067, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11066, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11077, + "src": "841:7:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11065, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "841:7:36", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "840:9:36" + }, + "scope": 11078, + "src": "774:126:36", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 11079, + "src": "297:605:36" + } + ], + "src": "78:825:36" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.720Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "DecimalMath" + }, + "userdoc": { + "methods": {}, + "notice": "Functions for fixed point number with 18 decimals" + } +} \ No newline at end of file diff --git a/build-v1/contracts/IBandOracleAggregator.json b/build-v1/contracts/IBandOracleAggregator.json new file mode 100644 index 0000000..9ae4771 --- /dev/null +++ b/build-v1/contracts/IBandOracleAggregator.json @@ -0,0 +1,1034 @@ +{ + "contractName": "IBandOracleAggregator", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "base", + "type": "string" + }, + { + "internalType": "string", + "name": "quote", + "type": "string" + } + ], + "name": "getReferenceData", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"base\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"quote\",\"type\":\"string\"}],\"name\":\"getReferenceData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/BandBNBBUSDPriceOracleProxy.sol\":\"IBandOracleAggregator\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/BandBNBBUSDPriceOracleProxy.sol\":{\"keccak256\":\"0x3fb4b23899bd5ce681ec2f80d5ba228c9a3a86c86ee877010280286ac0a4e650\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://426b50755f7de3b9ad1eccf29c8940c859a64d4b8092a0255d6c19456198f582\",\"dweb:/ipfs/Qmc5H2rEQLz92yvPJFtiYi9RdsJsCoxtu27udHEzk66kkc\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IBandOracleAggregator {\n function getReferenceData(string memory base, string memory quote)\n external\n view\n returns (uint256);\n}\n\n\ncontract BandBNBBUSDPriceOracleProxy {\n IBandOracleAggregator public aggregator;\n\n constructor(IBandOracleAggregator _aggregator) public {\n aggregator = _aggregator;\n }\n\n function getPrice() public view returns (uint256) {\n return aggregator.getReferenceData(\"BNB\", \"USD\");\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/BandBNBBUSDPriceOracleProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/BandBNBBUSDPriceOracleProxy.sol", + "exportedSymbols": { + "BandBNBBUSDPriceOracleProxy": [ + 1728 + ], + "IBandOracleAggregator": [ + 1703 + ] + }, + "id": 1729, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1692, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:3" + }, + { + "id": 1693, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:3" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1703, + "linearizedBaseContracts": [ + 1703 + ], + "name": "IBandOracleAggregator", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "65555bcc", + "id": 1702, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReferenceData", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1695, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1702, + "src": "201:18:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1694, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "201:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1697, + "mutability": "mutable", + "name": "quote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1702, + "src": "221:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1696, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "221:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "200:41:3" + }, + "returnParameters": { + "id": 1701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1700, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1702, + "src": "289:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "289:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "288:9:3" + }, + "scope": 1703, + "src": "175:123:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1729, + "src": "137:163:3" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1728, + "linearizedBaseContracts": [ + 1728 + ], + "name": "BandBNBBUSDPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "245a7bfc", + "id": 1705, + "mutability": "mutable", + "name": "aggregator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1728, + "src": "346:39:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + }, + "typeName": { + "contractScope": null, + "id": 1704, + "name": "IBandOracleAggregator", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1703, + "src": "346:21:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1714, + "nodeType": "Block", + "src": "446:41:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1710, + "name": "aggregator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1705, + "src": "456:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1711, + "name": "_aggregator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "469:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "src": "456:24:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "id": 1713, + "nodeType": "ExpressionStatement", + "src": "456:24:3" + } + ] + }, + "documentation": null, + "id": 1715, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1707, + "mutability": "mutable", + "name": "_aggregator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1715, + "src": "404:33:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + }, + "typeName": { + "contractScope": null, + "id": 1706, + "name": "IBandOracleAggregator", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1703, + "src": "404:21:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "403:35:3" + }, + "returnParameters": { + "id": 1709, + "nodeType": "ParameterList", + "parameters": [], + "src": "446:0:3" + }, + "scope": 1728, + "src": "392:95:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1726, + "nodeType": "Block", + "src": "543:65:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "424e42", + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "588:5:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3ed03c38e59dc60c7b69c2a4bf68f9214acd953252b5a90e8f5f59583e9bc3ae", + "typeString": "literal_string \"BNB\"" + }, + "value": "BNB" + }, + { + "argumentTypes": null, + "hexValue": "555344", + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "595:5:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + }, + "value": "USD" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_3ed03c38e59dc60c7b69c2a4bf68f9214acd953252b5a90e8f5f59583e9bc3ae", + "typeString": "literal_string \"BNB\"" + }, + { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + } + ], + "expression": { + "argumentTypes": null, + "id": 1720, + "name": "aggregator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1705, + "src": "560:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getReferenceData", + "nodeType": "MemberAccess", + "referencedDeclaration": 1702, + "src": "560:27:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (string memory,string memory) view external returns (uint256)" + } + }, + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "560:41:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1719, + "id": 1725, + "nodeType": "Return", + "src": "553:48:3" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1727, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1716, + "nodeType": "ParameterList", + "parameters": [], + "src": "510:2:3" + }, + "returnParameters": { + "id": 1719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1718, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1727, + "src": "534:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "534:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "533:9:3" + }, + "scope": 1728, + "src": "493:115:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1729, + "src": "303:307:3" + } + ], + "src": "78:533:3" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/BandBNBBUSDPriceOracleProxy.sol", + "exportedSymbols": { + "BandBNBBUSDPriceOracleProxy": [ + 1728 + ], + "IBandOracleAggregator": [ + 1703 + ] + }, + "id": 1729, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1692, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:3" + }, + { + "id": 1693, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:3" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1703, + "linearizedBaseContracts": [ + 1703 + ], + "name": "IBandOracleAggregator", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "65555bcc", + "id": 1702, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReferenceData", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1695, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1702, + "src": "201:18:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1694, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "201:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1697, + "mutability": "mutable", + "name": "quote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1702, + "src": "221:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1696, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "221:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "200:41:3" + }, + "returnParameters": { + "id": 1701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1700, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1702, + "src": "289:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "289:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "288:9:3" + }, + "scope": 1703, + "src": "175:123:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1729, + "src": "137:163:3" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1728, + "linearizedBaseContracts": [ + 1728 + ], + "name": "BandBNBBUSDPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "245a7bfc", + "id": 1705, + "mutability": "mutable", + "name": "aggregator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1728, + "src": "346:39:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + }, + "typeName": { + "contractScope": null, + "id": 1704, + "name": "IBandOracleAggregator", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1703, + "src": "346:21:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1714, + "nodeType": "Block", + "src": "446:41:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1710, + "name": "aggregator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1705, + "src": "456:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1711, + "name": "_aggregator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1707, + "src": "469:11:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "src": "456:24:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "id": 1713, + "nodeType": "ExpressionStatement", + "src": "456:24:3" + } + ] + }, + "documentation": null, + "id": 1715, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1707, + "mutability": "mutable", + "name": "_aggregator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1715, + "src": "404:33:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + }, + "typeName": { + "contractScope": null, + "id": 1706, + "name": "IBandOracleAggregator", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1703, + "src": "404:21:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "403:35:3" + }, + "returnParameters": { + "id": 1709, + "nodeType": "ParameterList", + "parameters": [], + "src": "446:0:3" + }, + "scope": 1728, + "src": "392:95:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1726, + "nodeType": "Block", + "src": "543:65:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "424e42", + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "588:5:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3ed03c38e59dc60c7b69c2a4bf68f9214acd953252b5a90e8f5f59583e9bc3ae", + "typeString": "literal_string \"BNB\"" + }, + "value": "BNB" + }, + { + "argumentTypes": null, + "hexValue": "555344", + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "595:5:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + }, + "value": "USD" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_3ed03c38e59dc60c7b69c2a4bf68f9214acd953252b5a90e8f5f59583e9bc3ae", + "typeString": "literal_string \"BNB\"" + }, + { + "typeIdentifier": "t_stringliteral_c4ae21aac0c6549d71dd96035b7e0bdb6c79ebdba8891b666115bc976d16a29e", + "typeString": "literal_string \"USD\"" + } + ], + "expression": { + "argumentTypes": null, + "id": 1720, + "name": "aggregator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1705, + "src": "560:10:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IBandOracleAggregator_$1703", + "typeString": "contract IBandOracleAggregator" + } + }, + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getReferenceData", + "nodeType": "MemberAccess", + "referencedDeclaration": 1702, + "src": "560:27:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (string memory,string memory) view external returns (uint256)" + } + }, + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "560:41:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1719, + "id": 1725, + "nodeType": "Return", + "src": "553:48:3" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1727, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1716, + "nodeType": "ParameterList", + "parameters": [], + "src": "510:2:3" + }, + "returnParameters": { + "id": 1719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1718, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1727, + "src": "534:7:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "534:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "533:9:3" + }, + "scope": 1728, + "src": "493:115:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1729, + "src": "303:307:3" + } + ], + "src": "78:533:3" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.492Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IChainlink.json b/build-v1/contracts/IChainlink.json new file mode 100644 index 0000000..1a9de21 --- /dev/null +++ b/build-v1/contracts/IChainlink.json @@ -0,0 +1,1547 @@ +{ + "contractName": "IChainlink", + "abi": [ + { + "inputs": [], + "name": "latestAnswer", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"latestAnswer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkYFIUSDCPriceOracleProxy.sol\":\"IChainlink\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkYFIUSDCPriceOracleProxy.sol\":{\"keccak256\":\"0x968af1e723a96686c3835fe68dbdbe21684935743b1639a9342aa5021c2e0c88\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e358426ab8ef57cc2647d8a7d40a876e9e8f81fc69b16b5a298659024894a808\",\"dweb:/ipfs/QmQQkhg9rajRi9Xg6rwbMV8swyC8kjT2ukb34EL2tMr3EG\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {SafeMath} from \"../lib/SafeMath.sol\";\n\n\ninterface IChainlink {\n function latestAnswer() external view returns (uint256);\n}\n\n\n// for YFI-USDC(decimals=6) price convert\n\ncontract ChainlinkYFIUSDCPriceOracleProxy {\n using SafeMath for uint256;\n\n address public yfiEth = 0x7c5d4F8345e66f68099581Db340cd65B078C41f4;\n address public EthUsd = 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419;\n\n function getPrice() external view returns (uint256) {\n uint256 yfiEthPrice = IChainlink(yfiEth).latestAnswer();\n uint256 EthUsdPrice = IChainlink(EthUsd).latestAnswer();\n return yfiEthPrice.mul(EthUsdPrice).div(10**20);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkYFIUSDCPriceOracleProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkYFIUSDCPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkYFIUSDCPriceOracleProxy": [ + 1975 + ], + "IChainlink": [ + 1933 + ] + }, + "id": 1976, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1924, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:11" + }, + { + "id": 1925, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:11" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 1927, + "nodeType": "ImportDirective", + "scope": 1976, + "sourceUnit": 11624, + "src": "136:45:11", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1926, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:11", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1933, + "linearizedBaseContracts": [ + 1933 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1932, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1928, + "nodeType": "ParameterList", + "parameters": [], + "src": "232:2:11" + }, + "returnParameters": { + "id": 1931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1930, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1932, + "src": "258:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1929, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "258:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "257:9:11" + }, + "scope": 1933, + "src": "211:56:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1976, + "src": "184:85:11" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1975, + "linearizedBaseContracts": [ + 1975 + ], + "name": "ChainlinkYFIUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1936, + "libraryName": { + "contractScope": null, + "id": 1934, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "369:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "363:27:11", + "typeName": { + "id": 1935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "382:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "28737ae5", + "id": 1939, + "mutability": "mutable", + "name": "yfiEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1975, + "src": "396:66:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1937, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "396:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307837633564344638333435653636663638303939353831446233343063643635423037384334316634", + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "420:42:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x7c5d4F8345e66f68099581Db340cd65B078C41f4" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f57689d5", + "id": 1942, + "mutability": "mutable", + "name": "EthUsd", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1975, + "src": "468:66:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1940, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "468:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307835663465433344663963626434333731344645323734306635453336313631353563356238343139", + "id": 1941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "492:42:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" + }, + "visibility": "public" + }, + { + "body": { + "id": 1973, + "nodeType": "Block", + "src": "593:194:11", + "statements": [ + { + "assignments": [ + 1948 + ], + "declarations": [ + { + "constant": false, + "id": 1948, + "mutability": "mutable", + "name": "yfiEthPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1973, + "src": "603:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "603:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1950, + "name": "yfiEth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "636:6:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1949, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1933, + "src": "625:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1933_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "625:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1933", + "typeString": "contract IChainlink" + } + }, + "id": 1952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1932, + "src": "625:31:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "625:33:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "603:55:11" + }, + { + "assignments": [ + 1956 + ], + "declarations": [ + { + "constant": false, + "id": 1956, + "mutability": "mutable", + "name": "EthUsdPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1973, + "src": "668:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "668:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1962, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1958, + "name": "EthUsd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "701:6:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1957, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1933, + "src": "690:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1933_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "690:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1933", + "typeString": "contract IChainlink" + } + }, + "id": 1960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1932, + "src": "690:31:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "690:33:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "668:55:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000_by_1", + "typeString": "int_const 100000000000000000000" + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "773:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "777:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "773:6:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000_by_1", + "typeString": "int_const 100000000000000000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_100000000000000000000_by_1", + "typeString": "int_const 100000000000000000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1965, + "name": "EthUsdPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "756:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1963, + "name": "yfiEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1948, + "src": "740:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "740:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "740:28:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "740:32:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "740:40:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1946, + "id": 1972, + "nodeType": "Return", + "src": "733:47:11" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1974, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1943, + "nodeType": "ParameterList", + "parameters": [], + "src": "558:2:11" + }, + "returnParameters": { + "id": 1946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1945, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1974, + "src": "584:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1944, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "584:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "583:9:11" + }, + "scope": 1975, + "src": "541:246:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1976, + "src": "315:474:11" + } + ], + "src": "78:712:11" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/ChainlinkYFIUSDCPriceOracleProxy.sol", + "exportedSymbols": { + "ChainlinkYFIUSDCPriceOracleProxy": [ + 1975 + ], + "IChainlink": [ + 1933 + ] + }, + "id": 1976, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1924, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:11" + }, + { + "id": 1925, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:11" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 1927, + "nodeType": "ImportDirective", + "scope": 1976, + "sourceUnit": 11624, + "src": "136:45:11", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 1926, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:11", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1933, + "linearizedBaseContracts": [ + 1933 + ], + "name": "IChainlink", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "50d25bcd", + "id": 1932, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "latestAnswer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1928, + "nodeType": "ParameterList", + "parameters": [], + "src": "232:2:11" + }, + "returnParameters": { + "id": 1931, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1930, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1932, + "src": "258:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1929, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "258:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "257:9:11" + }, + "scope": 1933, + "src": "211:56:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1976, + "src": "184:85:11" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1975, + "linearizedBaseContracts": [ + 1975 + ], + "name": "ChainlinkYFIUSDCPriceOracleProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 1936, + "libraryName": { + "contractScope": null, + "id": 1934, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "369:8:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "363:27:11", + "typeName": { + "id": 1935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "382:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "28737ae5", + "id": 1939, + "mutability": "mutable", + "name": "yfiEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1975, + "src": "396:66:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1937, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "396:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307837633564344638333435653636663638303939353831446233343063643635423037384334316634", + "id": 1938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "420:42:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x7c5d4F8345e66f68099581Db340cd65B078C41f4" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f57689d5", + "id": 1942, + "mutability": "mutable", + "name": "EthUsd", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1975, + "src": "468:66:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1940, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "468:7:11", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307835663465433344663963626434333731344645323734306635453336313631353563356238343139", + "id": 1941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "492:42:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "value": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" + }, + "visibility": "public" + }, + { + "body": { + "id": 1973, + "nodeType": "Block", + "src": "593:194:11", + "statements": [ + { + "assignments": [ + 1948 + ], + "declarations": [ + { + "constant": false, + "id": 1948, + "mutability": "mutable", + "name": "yfiEthPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1973, + "src": "603:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "603:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1950, + "name": "yfiEth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "636:6:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1949, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1933, + "src": "625:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1933_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "625:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1933", + "typeString": "contract IChainlink" + } + }, + "id": 1952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1932, + "src": "625:31:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "625:33:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "603:55:11" + }, + { + "assignments": [ + 1956 + ], + "declarations": [ + { + "constant": false, + "id": 1956, + "mutability": "mutable", + "name": "EthUsdPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1973, + "src": "668:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "668:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1962, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1958, + "name": "EthUsd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "701:6:11", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1957, + "name": "IChainlink", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1933, + "src": "690:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IChainlink_$1933_$", + "typeString": "type(contract IChainlink)" + } + }, + "id": 1959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "690:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IChainlink_$1933", + "typeString": "contract IChainlink" + } + }, + "id": 1960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "latestAnswer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1932, + "src": "690:31:11", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "690:33:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "668:55:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000_by_1", + "typeString": "int_const 100000000000000000000" + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 1968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "773:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 1969, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "777:2:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "773:6:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000_by_1", + "typeString": "int_const 100000000000000000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_100000000000000000000_by_1", + "typeString": "int_const 100000000000000000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1965, + "name": "EthUsdPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1956, + "src": "756:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1963, + "name": "yfiEthPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1948, + "src": "740:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "740:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "740:28:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "740:32:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "740:40:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1946, + "id": 1972, + "nodeType": "Return", + "src": "733:47:11" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 1974, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1943, + "nodeType": "ParameterList", + "parameters": [], + "src": "558:2:11" + }, + "returnParameters": { + "id": 1946, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1945, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1974, + "src": "584:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1944, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "584:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "583:9:11" + }, + "scope": 1975, + "src": "541:246:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1976, + "src": "315:474:11" + } + ], + "src": "78:712:11" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.493Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/ICloneFactory.json b/build-v1/contracts/ICloneFactory.json new file mode 100644 index 0000000..1a45eda --- /dev/null +++ b/build-v1/contracts/ICloneFactory.json @@ -0,0 +1,1281 @@ +{ + "contractName": "ICloneFactory", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "prototype", + "type": "address" + } + ], + "name": "clone", + "outputs": [ + { + "internalType": "address", + "name": "proxy", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"prototype\",\"type\":\"address\"}],\"name\":\"clone\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"proxy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol\":\"ICloneFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol\":{\"keccak256\":\"0x343dc91fe46604d9dc7583e4b969d7dbd2bcba68166bef4e608a85145e7735cc\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://2751f30bf5bc54890d68fd6e609dea0cc5ddc08aaa928829bffda71065e66715\",\"dweb:/ipfs/QmdtAmwxpdx8VAHFKkrEPazLJmpWj1dSv2Krdd7F3uauH9\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\ninterface ICloneFactory {\n function clone(address prototype) external returns (address proxy);\n}\n\n// introduction of proxy mode design: https://docs.openzeppelin.com/upgrades/2.8/\n// minimum implementation of transparent proxy: https://eips.ethereum.org/EIPS/eip-1167\n\ncontract CloneFactory is ICloneFactory {\n function clone(address prototype) external override returns (address proxy) {\n bytes20 targetBytes = bytes20(prototype);\n assembly {\n let clone := mload(0x40)\n mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)\n mstore(add(clone, 0x14), targetBytes)\n mstore(\n add(clone, 0x28),\n 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000\n )\n proxy := create(0, clone, 0x37)\n }\n return proxy;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol", + "exportedSymbols": { + "CloneFactory": [ + 2008 + ], + "ICloneFactory": [ + 1986 + ] + }, + "id": 2009, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1977, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:12" + }, + { + "id": 1978, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:12" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1986, + "linearizedBaseContracts": [ + 1986 + ], + "name": "ICloneFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "8124b78e", + "id": 1985, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "clone", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1980, + "mutability": "mutable", + "name": "prototype", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1985, + "src": "181:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1979, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "181:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "180:19:12" + }, + "returnParameters": { + "id": 1984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1983, + "mutability": "mutable", + "name": "proxy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1985, + "src": "218:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "218:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "217:15:12" + }, + "scope": 1986, + "src": "166:67:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2009, + "src": "136:99:12" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1987, + "name": "ICloneFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1986, + "src": "433:13:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICloneFactory_$1986", + "typeString": "contract ICloneFactory" + } + }, + "id": 1988, + "nodeType": "InheritanceSpecifier", + "src": "433:13:12" + } + ], + "contractDependencies": [ + 1986 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2008, + "linearizedBaseContracts": [ + 2008, + 1986 + ], + "name": "CloneFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 1985 + ], + "body": { + "id": 2006, + "nodeType": "Block", + "src": "529:484:12", + "statements": [ + { + "assignments": [ + 1997 + ], + "declarations": [ + { + "constant": false, + "id": 1997, + "mutability": "mutable", + "name": "targetBytes", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2006, + "src": "539:19:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + }, + "typeName": { + "id": 1996, + "name": "bytes20", + "nodeType": "ElementaryTypeName", + "src": "539:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2002, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2000, + "name": "prototype", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1990, + "src": "569:9:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "561:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes20_$", + "typeString": "type(bytes20)" + }, + "typeName": { + "id": 1998, + "name": "bytes20", + "nodeType": "ElementaryTypeName", + "src": "561:7:12", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "561:18:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "539:40:12" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "598:387:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "612:24:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:4:12", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "625:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "625:11:12" + }, + "variables": [ + { + "name": "clone", + "nodeType": "YulTypedName", + "src": "616:5:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "656:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:66:12", + "type": "", + "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "649:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "649:81:12" + }, + "nodeType": "YulExpressionStatement", + "src": "649:81:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "754:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "761:4:12", + "type": "", + "value": "0x14" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "750:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "750:16:12" + }, + { + "name": "targetBytes", + "nodeType": "YulIdentifier", + "src": "768:11:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "743:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "743:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "743:37:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "821:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "828:4:12", + "type": "", + "value": "0x28" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "817:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "817:16:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "851:66:12", + "type": "", + "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "793:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "793:138:12" + }, + "nodeType": "YulExpressionStatement", + "src": "793:138:12" + }, + { + "nodeType": "YulAssignment", + "src": "944:31:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "960:1:12", + "type": "", + "value": "0" + }, + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "963:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "970:4:12", + "type": "", + "value": "0x37" + } + ], + "functionName": { + "name": "create", + "nodeType": "YulIdentifier", + "src": "953:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "953:22:12" + }, + "variableNames": [ + { + "name": "proxy", + "nodeType": "YulIdentifier", + "src": "944:5:12" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1994, + "isOffset": false, + "isSlot": false, + "src": "944:5:12", + "valueSize": 1 + }, + { + "declaration": 1997, + "isOffset": false, + "isSlot": false, + "src": "768:11:12", + "valueSize": 1 + } + ], + "id": 2003, + "nodeType": "InlineAssembly", + "src": "589:396:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 2004, + "name": "proxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1994, + "src": "1001:5:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1995, + "id": 2005, + "nodeType": "Return", + "src": "994:12:12" + } + ] + }, + "documentation": null, + "functionSelector": "8124b78e", + "id": 2007, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clone", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1992, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "496:8:12" + }, + "parameters": { + "id": 1991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1990, + "mutability": "mutable", + "name": "prototype", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2007, + "src": "468:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1989, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "468:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "467:19:12" + }, + "returnParameters": { + "id": 1995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1994, + "mutability": "mutable", + "name": "proxy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2007, + "src": "514:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "514:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "513:15:12" + }, + "scope": 2008, + "src": "453:560:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2009, + "src": "408:607:12" + } + ], + "src": "78:938:12" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/CloneFactory.sol", + "exportedSymbols": { + "CloneFactory": [ + 2008 + ], + "ICloneFactory": [ + 1986 + ] + }, + "id": 2009, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1977, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:12" + }, + { + "id": 1978, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:12" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 1986, + "linearizedBaseContracts": [ + 1986 + ], + "name": "ICloneFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "8124b78e", + "id": 1985, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "clone", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1981, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1980, + "mutability": "mutable", + "name": "prototype", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1985, + "src": "181:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1979, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "181:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "180:19:12" + }, + "returnParameters": { + "id": 1984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1983, + "mutability": "mutable", + "name": "proxy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1985, + "src": "218:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1982, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "218:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "217:15:12" + }, + "scope": 1986, + "src": "166:67:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2009, + "src": "136:99:12" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1987, + "name": "ICloneFactory", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1986, + "src": "433:13:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICloneFactory_$1986", + "typeString": "contract ICloneFactory" + } + }, + "id": 1988, + "nodeType": "InheritanceSpecifier", + "src": "433:13:12" + } + ], + "contractDependencies": [ + 1986 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2008, + "linearizedBaseContracts": [ + 2008, + 1986 + ], + "name": "CloneFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 1985 + ], + "body": { + "id": 2006, + "nodeType": "Block", + "src": "529:484:12", + "statements": [ + { + "assignments": [ + 1997 + ], + "declarations": [ + { + "constant": false, + "id": 1997, + "mutability": "mutable", + "name": "targetBytes", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2006, + "src": "539:19:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + }, + "typeName": { + "id": 1996, + "name": "bytes20", + "nodeType": "ElementaryTypeName", + "src": "539:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2002, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2000, + "name": "prototype", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1990, + "src": "569:9:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "561:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes20_$", + "typeString": "type(bytes20)" + }, + "typeName": { + "id": 1998, + "name": "bytes20", + "nodeType": "ElementaryTypeName", + "src": "561:7:12", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "561:18:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes20", + "typeString": "bytes20" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "539:40:12" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "598:387:12", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "612:24:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "631:4:12", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "625:5:12" + }, + "nodeType": "YulFunctionCall", + "src": "625:11:12" + }, + "variables": [ + { + "name": "clone", + "nodeType": "YulTypedName", + "src": "616:5:12", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "656:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "663:66:12", + "type": "", + "value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "649:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "649:81:12" + }, + "nodeType": "YulExpressionStatement", + "src": "649:81:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "754:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "761:4:12", + "type": "", + "value": "0x14" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "750:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "750:16:12" + }, + { + "name": "targetBytes", + "nodeType": "YulIdentifier", + "src": "768:11:12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "743:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "743:37:12" + }, + "nodeType": "YulExpressionStatement", + "src": "743:37:12" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "821:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "828:4:12", + "type": "", + "value": "0x28" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "817:3:12" + }, + "nodeType": "YulFunctionCall", + "src": "817:16:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "851:66:12", + "type": "", + "value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "793:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "793:138:12" + }, + "nodeType": "YulExpressionStatement", + "src": "793:138:12" + }, + { + "nodeType": "YulAssignment", + "src": "944:31:12", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "960:1:12", + "type": "", + "value": "0" + }, + { + "name": "clone", + "nodeType": "YulIdentifier", + "src": "963:5:12" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "970:4:12", + "type": "", + "value": "0x37" + } + ], + "functionName": { + "name": "create", + "nodeType": "YulIdentifier", + "src": "953:6:12" + }, + "nodeType": "YulFunctionCall", + "src": "953:22:12" + }, + "variableNames": [ + { + "name": "proxy", + "nodeType": "YulIdentifier", + "src": "944:5:12" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1994, + "isOffset": false, + "isSlot": false, + "src": "944:5:12", + "valueSize": 1 + }, + { + "declaration": 1997, + "isOffset": false, + "isSlot": false, + "src": "768:11:12", + "valueSize": 1 + } + ], + "id": 2003, + "nodeType": "InlineAssembly", + "src": "589:396:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 2004, + "name": "proxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1994, + "src": "1001:5:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 1995, + "id": 2005, + "nodeType": "Return", + "src": "994:12:12" + } + ] + }, + "documentation": null, + "functionSelector": "8124b78e", + "id": 2007, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clone", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1992, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "496:8:12" + }, + "parameters": { + "id": 1991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1990, + "mutability": "mutable", + "name": "prototype", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2007, + "src": "468:17:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1989, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "468:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "467:19:12" + }, + "returnParameters": { + "id": 1995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1994, + "mutability": "mutable", + "name": "proxy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2007, + "src": "514:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "514:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "513:15:12" + }, + "scope": 2008, + "src": "453:560:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2009, + "src": "408:607:12" + } + ], + "src": "78:938:12" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.508Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IDODO.json b/build-v1/contracts/IDODO.json new file mode 100644 index 0000000..2afca59 --- /dev/null +++ b/build-v1/contracts/IDODO.json @@ -0,0 +1,3900 @@ +{ + "contractName": "IDODO", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "supervisor", + "type": "address" + }, + { + "internalType": "address", + "name": "maintainer", + "type": "address" + }, + { + "internalType": "address", + "name": "baseToken", + "type": "address" + }, + { + "internalType": "address", + "name": "quoteToken", + "type": "address" + }, + { + "internalType": "address", + "name": "oracle", + "type": "address" + }, + { + "internalType": "uint256", + "name": "lpFeeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "mtFeeRate", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "k", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPriceLimit", + "type": "uint256" + } + ], + "name": "init", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minReceiveQuote", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "sellBaseToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPayQuote", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "buyBaseToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "querySellBaseToken", + "outputs": [ + { + "internalType": "uint256", + "name": "receiveQuote", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "queryBuyBaseToken", + "outputs": [ + { + "internalType": "uint256", + "name": "payQuote", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getExpectedTarget", + "outputs": [ + { + "internalType": "uint256", + "name": "baseTarget", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quoteTarget", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "depositBaseTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdrawBase", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawAllBase", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "depositQuoteTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdrawQuote", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawAllQuote", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"_BASE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPayQuote\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"buyBaseToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositBaseTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositQuoteTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExpectedTarget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"baseTarget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quoteTarget\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"supervisor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"maintainer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"quoteToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"lpFeeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"mtFeeRate\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"k\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPriceLimit\",\"type\":\"uint256\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"queryBuyBaseToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payQuote\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"querySellBaseToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"receiveQuote\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minReceiveQuote\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sellBaseToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawAllBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawAllQuote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawQuote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol\":\"IDODO\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol\":{\"keccak256\":\"0x8fd9ec49ff1517e33698dc8dd4022da05f3a1ae6e4bf97c48f5f5b6714df2123\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cfaa388f09d627ad26c66e6c4a73c232d494010b73b989392e264f815a84cd1d\",\"dweb:/ipfs/QmSBNeEyjgFSAtcYpKjyQfKZx7ahZKFwUtnnbpSSpS3p2H\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IDODO {\n function init(\n address owner,\n address supervisor,\n address maintainer,\n address baseToken,\n address quoteToken,\n address oracle,\n uint256 lpFeeRate,\n uint256 mtFeeRate,\n uint256 k,\n uint256 gasPriceLimit\n ) external;\n\n function transferOwnership(address newOwner) external;\n\n function claimOwnership() external;\n\n function sellBaseToken(\n uint256 amount,\n uint256 minReceiveQuote,\n bytes calldata data\n ) external returns (uint256);\n\n function buyBaseToken(\n uint256 amount,\n uint256 maxPayQuote,\n bytes calldata data\n ) external returns (uint256);\n\n function querySellBaseToken(uint256 amount) external view returns (uint256 receiveQuote);\n\n function queryBuyBaseToken(uint256 amount) external view returns (uint256 payQuote);\n\n function getExpectedTarget() external view returns (uint256 baseTarget, uint256 quoteTarget);\n\n function depositBaseTo(address to, uint256 amount) external returns (uint256);\n\n function withdrawBase(uint256 amount) external returns (uint256);\n\n function withdrawAllBase() external returns (uint256);\n\n function depositQuoteTo(address to, uint256 amount) external returns (uint256);\n\n function withdrawQuote(uint256 amount) external returns (uint256);\n\n function withdrawAllQuote() external returns (uint256);\n\n function _BASE_CAPITAL_TOKEN_() external view returns (address);\n\n function _QUOTE_CAPITAL_TOKEN_() external view returns (address);\n\n function _BASE_TOKEN_() external returns (address);\n\n function _QUOTE_TOKEN_() external returns (address);\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "exportedSymbols": { + "IDODO": [ + 10491 + ] + }, + "id": 10492, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10353, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:29" + }, + { + "id": 10354, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:29" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10491, + "linearizedBaseContracts": [ + 10491 + ], + "name": "IDODO", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "f00f9a09", + "id": 10377, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "init", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10356, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "182:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "182:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10358, + "mutability": "mutable", + "name": "supervisor", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "205:18:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "205:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10360, + "mutability": "mutable", + "name": "maintainer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "233:18:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10359, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "233:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10362, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "261:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "261:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10364, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "288:18:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "288:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10366, + "mutability": "mutable", + "name": "oracle", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "316:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "316:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10368, + "mutability": "mutable", + "name": "lpFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "340:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "340:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10370, + "mutability": "mutable", + "name": "mtFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "367:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "367:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10372, + "mutability": "mutable", + "name": "k", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "394:9:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10371, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "394:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10374, + "mutability": "mutable", + "name": "gasPriceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "413:21:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "413:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "172:268:29" + }, + "returnParameters": { + "id": 10376, + "nodeType": "ParameterList", + "parameters": [], + "src": "449:0:29" + }, + "scope": 10491, + "src": "159:291:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 10382, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10379, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10382, + "src": "483:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10378, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "483:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "482:18:29" + }, + "returnParameters": { + "id": 10381, + "nodeType": "ParameterList", + "parameters": [], + "src": "509:0:29" + }, + "scope": 10491, + "src": "456:54:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "4e71e0c8", + "id": 10385, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claimOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10383, + "nodeType": "ParameterList", + "parameters": [], + "src": "539:2:29" + }, + "returnParameters": { + "id": 10384, + "nodeType": "ParameterList", + "parameters": [], + "src": "550:0:29" + }, + "scope": 10491, + "src": "516:35:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "8dae7333", + "id": 10396, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10392, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10387, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10396, + "src": "589:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10386, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "589:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10389, + "mutability": "mutable", + "name": "minReceiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10396, + "src": "613:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "613:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10391, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10396, + "src": "646:19:29", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10390, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "646:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "579:92:29" + }, + "returnParameters": { + "id": 10395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10394, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10396, + "src": "690:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10393, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "690:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "689:9:29" + }, + "scope": 10491, + "src": "557:142:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e67ce706", + "id": 10407, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "buyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10403, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10398, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10407, + "src": "736:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "736:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10400, + "mutability": "mutable", + "name": "maxPayQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10407, + "src": "760:19:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10399, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "760:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10402, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10407, + "src": "789:19:29", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10401, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "789:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "726:88:29" + }, + "returnParameters": { + "id": 10406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10405, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10407, + "src": "833:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "833:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:9:29" + }, + "scope": 10491, + "src": "705:137:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2801e16", + "id": 10414, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "querySellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10409, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10414, + "src": "876:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10408, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "876:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "875:16:29" + }, + "returnParameters": { + "id": 10413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10412, + "mutability": "mutable", + "name": "receiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10414, + "src": "915:20:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10411, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "915:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "914:22:29" + }, + "scope": 10491, + "src": "848:89:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18c0bbe4", + "id": 10421, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queryBuyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10416, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10421, + "src": "970:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "970:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "969:16:29" + }, + "returnParameters": { + "id": 10420, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10419, + "mutability": "mutable", + "name": "payQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10421, + "src": "1009:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10418, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1009:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1008:18:29" + }, + "scope": 10491, + "src": "943:84:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ffa64225", + "id": 10428, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getExpectedTarget", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10422, + "nodeType": "ParameterList", + "parameters": [], + "src": "1059:2:29" + }, + "returnParameters": { + "id": 10427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10424, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10428, + "src": "1085:18:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10423, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1085:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10426, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10428, + "src": "1105:19:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10425, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1105:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1084:41:29" + }, + "scope": 10491, + "src": "1033:93:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "aa06ce9b", + "id": 10437, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "depositBaseTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10430, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10437, + "src": "1155:10:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1155:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10432, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10437, + "src": "1167:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1167:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1154:28:29" + }, + "returnParameters": { + "id": 10436, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10435, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10437, + "src": "1201:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10434, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1201:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1200:9:29" + }, + "scope": 10491, + "src": "1132:78:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f98bea15", + "id": 10444, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10439, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10444, + "src": "1238:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1238:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1237:16:29" + }, + "returnParameters": { + "id": 10443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10442, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10444, + "src": "1272:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1272:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1271:9:29" + }, + "scope": 10491, + "src": "1216:65:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d47eaa37", + "id": 10449, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawAllBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10445, + "nodeType": "ParameterList", + "parameters": [], + "src": "1311:2:29" + }, + "returnParameters": { + "id": 10448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10447, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10449, + "src": "1332:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10446, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1332:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1331:9:29" + }, + "scope": 10491, + "src": "1287:54:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5f179f64", + "id": 10458, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "depositQuoteTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10454, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10451, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10458, + "src": "1371:10:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10450, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1371:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10453, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10458, + "src": "1383:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1383:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1370:28:29" + }, + "returnParameters": { + "id": 10457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10456, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10458, + "src": "1417:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10455, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1417:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1416:9:29" + }, + "scope": 10491, + "src": "1347:79:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c0a5f6ff", + "id": 10465, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10461, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10460, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10465, + "src": "1455:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1455:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1454:16:29" + }, + "returnParameters": { + "id": 10464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10463, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10465, + "src": "1489:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1489:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1488:9:29" + }, + "scope": 10491, + "src": "1432:66:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c59203af", + "id": 10470, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawAllQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10466, + "nodeType": "ParameterList", + "parameters": [], + "src": "1529:2:29" + }, + "returnParameters": { + "id": 10469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10468, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10470, + "src": "1550:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10467, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1550:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1549:9:29" + }, + "scope": 10491, + "src": "1504:55:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d689107c", + "id": 10475, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10471, + "nodeType": "ParameterList", + "parameters": [], + "src": "1594:2:29" + }, + "returnParameters": { + "id": 10474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10473, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10475, + "src": "1620:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1620:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1619:9:29" + }, + "scope": 10491, + "src": "1565:64:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ac1fbc98", + "id": 10480, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10476, + "nodeType": "ParameterList", + "parameters": [], + "src": "1665:2:29" + }, + "returnParameters": { + "id": 10479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10478, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10480, + "src": "1691:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10477, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1691:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1690:9:29" + }, + "scope": 10491, + "src": "1635:65:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "4a248d2a", + "id": 10485, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_BASE_TOKEN_", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10481, + "nodeType": "ParameterList", + "parameters": [], + "src": "1727:2:29" + }, + "returnParameters": { + "id": 10484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10483, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10485, + "src": "1748:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1748:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1747:9:29" + }, + "scope": 10491, + "src": "1706:51:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d4b97046", + "id": 10490, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_QUOTE_TOKEN_", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10486, + "nodeType": "ParameterList", + "parameters": [], + "src": "1785:2:29" + }, + "returnParameters": { + "id": 10489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10490, + "src": "1806:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10487, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1806:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1805:9:29" + }, + "scope": 10491, + "src": "1763:52:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 10492, + "src": "137:1680:29" + } + ], + "src": "78:1740:29" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "exportedSymbols": { + "IDODO": [ + 10491 + ] + }, + "id": 10492, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10353, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:29" + }, + { + "id": 10354, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:29" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10491, + "linearizedBaseContracts": [ + 10491 + ], + "name": "IDODO", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "f00f9a09", + "id": 10377, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "init", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10356, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "182:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "182:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10358, + "mutability": "mutable", + "name": "supervisor", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "205:18:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "205:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10360, + "mutability": "mutable", + "name": "maintainer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "233:18:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10359, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "233:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10362, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "261:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10361, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "261:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10364, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "288:18:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "288:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10366, + "mutability": "mutable", + "name": "oracle", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "316:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "316:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10368, + "mutability": "mutable", + "name": "lpFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "340:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "340:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10370, + "mutability": "mutable", + "name": "mtFeeRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "367:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10369, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "367:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10372, + "mutability": "mutable", + "name": "k", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "394:9:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10371, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "394:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10374, + "mutability": "mutable", + "name": "gasPriceLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10377, + "src": "413:21:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "413:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "172:268:29" + }, + "returnParameters": { + "id": 10376, + "nodeType": "ParameterList", + "parameters": [], + "src": "449:0:29" + }, + "scope": 10491, + "src": "159:291:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 10382, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10379, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10382, + "src": "483:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10378, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "483:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "482:18:29" + }, + "returnParameters": { + "id": 10381, + "nodeType": "ParameterList", + "parameters": [], + "src": "509:0:29" + }, + "scope": 10491, + "src": "456:54:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "4e71e0c8", + "id": 10385, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "claimOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10383, + "nodeType": "ParameterList", + "parameters": [], + "src": "539:2:29" + }, + "returnParameters": { + "id": 10384, + "nodeType": "ParameterList", + "parameters": [], + "src": "550:0:29" + }, + "scope": 10491, + "src": "516:35:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "8dae7333", + "id": 10396, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10392, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10387, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10396, + "src": "589:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10386, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "589:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10389, + "mutability": "mutable", + "name": "minReceiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10396, + "src": "613:23:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "613:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10391, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10396, + "src": "646:19:29", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10390, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "646:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "579:92:29" + }, + "returnParameters": { + "id": 10395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10394, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10396, + "src": "690:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10393, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "690:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "689:9:29" + }, + "scope": 10491, + "src": "557:142:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e67ce706", + "id": 10407, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "buyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10403, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10398, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10407, + "src": "736:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "736:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10400, + "mutability": "mutable", + "name": "maxPayQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10407, + "src": "760:19:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10399, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "760:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10402, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10407, + "src": "789:19:29", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10401, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "789:5:29", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "726:88:29" + }, + "returnParameters": { + "id": 10406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10405, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10407, + "src": "833:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "833:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:9:29" + }, + "scope": 10491, + "src": "705:137:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2801e16", + "id": 10414, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "querySellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10409, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10414, + "src": "876:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10408, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "876:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "875:16:29" + }, + "returnParameters": { + "id": 10413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10412, + "mutability": "mutable", + "name": "receiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10414, + "src": "915:20:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10411, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "915:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "914:22:29" + }, + "scope": 10491, + "src": "848:89:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18c0bbe4", + "id": 10421, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "queryBuyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10416, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10421, + "src": "970:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "970:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "969:16:29" + }, + "returnParameters": { + "id": 10420, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10419, + "mutability": "mutable", + "name": "payQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10421, + "src": "1009:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10418, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1009:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1008:18:29" + }, + "scope": 10491, + "src": "943:84:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ffa64225", + "id": 10428, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getExpectedTarget", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10422, + "nodeType": "ParameterList", + "parameters": [], + "src": "1059:2:29" + }, + "returnParameters": { + "id": 10427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10424, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10428, + "src": "1085:18:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10423, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1085:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10426, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10428, + "src": "1105:19:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10425, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1105:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1084:41:29" + }, + "scope": 10491, + "src": "1033:93:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "aa06ce9b", + "id": 10437, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "depositBaseTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10430, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10437, + "src": "1155:10:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1155:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10432, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10437, + "src": "1167:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1167:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1154:28:29" + }, + "returnParameters": { + "id": 10436, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10435, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10437, + "src": "1201:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10434, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1201:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1200:9:29" + }, + "scope": 10491, + "src": "1132:78:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f98bea15", + "id": 10444, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10439, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10444, + "src": "1238:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1238:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1237:16:29" + }, + "returnParameters": { + "id": 10443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10442, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10444, + "src": "1272:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1272:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1271:9:29" + }, + "scope": 10491, + "src": "1216:65:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d47eaa37", + "id": 10449, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawAllBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10445, + "nodeType": "ParameterList", + "parameters": [], + "src": "1311:2:29" + }, + "returnParameters": { + "id": 10448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10447, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10449, + "src": "1332:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10446, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1332:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1331:9:29" + }, + "scope": 10491, + "src": "1287:54:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5f179f64", + "id": 10458, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "depositQuoteTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10454, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10451, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10458, + "src": "1371:10:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10450, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1371:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10453, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10458, + "src": "1383:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1383:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1370:28:29" + }, + "returnParameters": { + "id": 10457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10456, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10458, + "src": "1417:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10455, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1417:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1416:9:29" + }, + "scope": 10491, + "src": "1347:79:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c0a5f6ff", + "id": 10465, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10461, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10460, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10465, + "src": "1455:14:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1455:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1454:16:29" + }, + "returnParameters": { + "id": 10464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10463, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10465, + "src": "1489:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1489:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1488:9:29" + }, + "scope": 10491, + "src": "1432:66:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c59203af", + "id": 10470, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawAllQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10466, + "nodeType": "ParameterList", + "parameters": [], + "src": "1529:2:29" + }, + "returnParameters": { + "id": 10469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10468, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10470, + "src": "1550:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10467, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1550:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1549:9:29" + }, + "scope": 10491, + "src": "1504:55:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d689107c", + "id": 10475, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10471, + "nodeType": "ParameterList", + "parameters": [], + "src": "1594:2:29" + }, + "returnParameters": { + "id": 10474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10473, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10475, + "src": "1620:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1620:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1619:9:29" + }, + "scope": 10491, + "src": "1565:64:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ac1fbc98", + "id": 10480, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10476, + "nodeType": "ParameterList", + "parameters": [], + "src": "1665:2:29" + }, + "returnParameters": { + "id": 10479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10478, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10480, + "src": "1691:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10477, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1691:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1690:9:29" + }, + "scope": 10491, + "src": "1635:65:29", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "4a248d2a", + "id": 10485, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_BASE_TOKEN_", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10481, + "nodeType": "ParameterList", + "parameters": [], + "src": "1727:2:29" + }, + "returnParameters": { + "id": 10484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10483, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10485, + "src": "1748:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1748:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1747:9:29" + }, + "scope": 10491, + "src": "1706:51:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d4b97046", + "id": 10490, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "_QUOTE_TOKEN_", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10486, + "nodeType": "ParameterList", + "parameters": [], + "src": "1785:2:29" + }, + "returnParameters": { + "id": 10489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10490, + "src": "1806:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10487, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1806:7:29", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1805:9:29" + }, + "scope": 10491, + "src": "1763:52:29", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 10492, + "src": "137:1680:29" + } + ], + "src": "78:1740:29" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.712Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IDODOCallee.json b/build-v1/contracts/IDODOCallee.json new file mode 100644 index 0000000..b278982 --- /dev/null +++ b/build-v1/contracts/IDODOCallee.json @@ -0,0 +1,440 @@ +{ + "contractName": "IDODOCallee", + "abi": [ + { + "inputs": [ + { + "internalType": "bool", + "name": "isBuyBaseToken", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "baseAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quoteAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "dodoCall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isBuyBaseToken\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"baseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quoteAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"dodoCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOCallee.sol\":\"IDODOCallee\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOCallee.sol\":{\"keccak256\":\"0x229c6157d9f467f52d98634966a88fce7c7d68d1b7ee5c4897957b3bc33ee2c5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d9ca56838de93c5727da081665c37fb7e4448cc584e3ff72f5d9867775c0ee5f\",\"dweb:/ipfs/QmTVeQ8EJqnrSYsu4GU4jhaUzW9FC45fAoXKHniBNXNaZs\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\ninterface IDODOCallee {\n function dodoCall(\n bool isBuyBaseToken,\n uint256 baseAmount,\n uint256 quoteAmount,\n bytes calldata data\n ) external;\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOCallee.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOCallee.sol", + "exportedSymbols": { + "IDODOCallee": [ + 10506 + ] + }, + "id": 10507, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10493, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:30" + }, + { + "id": 10494, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:30" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10506, + "linearizedBaseContracts": [ + 10506 + ], + "name": "IDODOCallee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "60378cea", + "id": 10505, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "dodoCall", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10496, + "mutability": "mutable", + "name": "isBuyBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10505, + "src": "191:19:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10495, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "191:4:30", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10498, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10505, + "src": "220:18:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "220:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10500, + "mutability": "mutable", + "name": "quoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10505, + "src": "248:19:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "248:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10502, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10505, + "src": "277:19:30", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10501, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "277:5:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "181:121:30" + }, + "returnParameters": { + "id": 10504, + "nodeType": "ParameterList", + "parameters": [], + "src": "311:0:30" + }, + "scope": 10506, + "src": "164:148:30", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 10507, + "src": "136:178:30" + } + ], + "src": "78:237:30" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOCallee.sol", + "exportedSymbols": { + "IDODOCallee": [ + 10506 + ] + }, + "id": 10507, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10493, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:30" + }, + { + "id": 10494, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:30" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10506, + "linearizedBaseContracts": [ + 10506 + ], + "name": "IDODOCallee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "60378cea", + "id": 10505, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "dodoCall", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10496, + "mutability": "mutable", + "name": "isBuyBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10505, + "src": "191:19:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10495, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "191:4:30", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10498, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10505, + "src": "220:18:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "220:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10500, + "mutability": "mutable", + "name": "quoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10505, + "src": "248:19:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "248:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10502, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10505, + "src": "277:19:30", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10501, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "277:5:30", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "181:121:30" + }, + "returnParameters": { + "id": 10504, + "nodeType": "ParameterList", + "parameters": [], + "src": "311:0:30" + }, + "scope": 10506, + "src": "164:148:30", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 10507, + "src": "136:178:30" + } + ], + "src": "78:237:30" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.714Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IDODOLpToken.json b/build-v1/contracts/IDODOLpToken.json new file mode 100644 index 0000000..6ed911f --- /dev/null +++ b/build-v1/contracts/IDODOLpToken.json @@ -0,0 +1,838 @@ +{ + "contractName": "IDODOLpToken", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "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" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol\":\"IDODOLpToken\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol\":{\"keccak256\":\"0x2183977c7a3cf5aa8d2f56d2167bf59515e34a8e4ebd2402efa85b612631955f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://61766578f8d1bef7f51912a5327e8d4e95e3d9adb509e9486b4e2c8cf179f5e6\",\"dweb:/ipfs/QmXJRK4JKMrJkdn7BFVueoNRixsu26shnX3Dxeb5T9JKK4\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity ^0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IDODOLpToken {\n function mint(address user, uint256 value) external;\n\n function burn(address user, uint256 value) external;\n\n function balanceOf(address owner) external view returns (uint256);\n\n function totalSupply() external view returns (uint256);\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol", + "exportedSymbols": { + "IDODOLpToken": [ + 10536 + ] + }, + "id": 10537, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10508, + "literals": [ + "solidity", + "^", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:23:31" + }, + { + "id": 10509, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "102:33:31" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10536, + "linearizedBaseContracts": [ + 10536 + ], + "name": "IDODOLpToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "40c10f19", + "id": 10516, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10511, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10516, + "src": "181:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10510, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "181:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10513, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10516, + "src": "195:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10512, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "195:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "180:29:31" + }, + "returnParameters": { + "id": 10515, + "nodeType": "ParameterList", + "parameters": [], + "src": "218:0:31" + }, + "scope": 10536, + "src": "167:52:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "9dc29fac", + "id": 10523, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10518, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10523, + "src": "239:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "239:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10520, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10523, + "src": "253:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "253:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "238:29:31" + }, + "returnParameters": { + "id": 10522, + "nodeType": "ParameterList", + "parameters": [], + "src": "276:0:31" + }, + "scope": 10536, + "src": "225:52:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 10530, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10525, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10530, + "src": "302:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10524, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "302:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "301:15:31" + }, + "returnParameters": { + "id": 10529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10528, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10530, + "src": "340:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "340:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "339:9:31" + }, + "scope": 10536, + "src": "283:66:31", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 10535, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10531, + "nodeType": "ParameterList", + "parameters": [], + "src": "375:2:31" + }, + "returnParameters": { + "id": 10534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10533, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10535, + "src": "401:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "401:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "400:9:31" + }, + "scope": 10536, + "src": "355:55:31", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 10537, + "src": "138:274:31" + } + ], + "src": "78:335:31" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol", + "exportedSymbols": { + "IDODOLpToken": [ + 10536 + ] + }, + "id": 10537, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10508, + "literals": [ + "solidity", + "^", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:23:31" + }, + { + "id": 10509, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "102:33:31" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10536, + "linearizedBaseContracts": [ + 10536 + ], + "name": "IDODOLpToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "40c10f19", + "id": 10516, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10511, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10516, + "src": "181:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10510, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "181:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10513, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10516, + "src": "195:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10512, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "195:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "180:29:31" + }, + "returnParameters": { + "id": 10515, + "nodeType": "ParameterList", + "parameters": [], + "src": "218:0:31" + }, + "scope": 10536, + "src": "167:52:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "9dc29fac", + "id": 10523, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10518, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10523, + "src": "239:12:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "239:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10520, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10523, + "src": "253:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "253:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "238:29:31" + }, + "returnParameters": { + "id": 10522, + "nodeType": "ParameterList", + "parameters": [], + "src": "276:0:31" + }, + "scope": 10536, + "src": "225:52:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 10530, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10525, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10530, + "src": "302:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10524, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "302:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "301:15:31" + }, + "returnParameters": { + "id": 10529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10528, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10530, + "src": "340:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "340:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "339:9:31" + }, + "scope": 10536, + "src": "283:66:31", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 10535, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10531, + "nodeType": "ParameterList", + "parameters": [], + "src": "375:2:31" + }, + "returnParameters": { + "id": 10534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10533, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10535, + "src": "401:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "401:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "400:9:31" + }, + "scope": 10536, + "src": "355:55:31", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 10537, + "src": "138:274:31" + } + ], + "src": "78:335:31" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.714Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IDODOMine.json b/build-v1/contracts/IDODOMine.json new file mode 100644 index 0000000..b93bcd2 --- /dev/null +++ b/build-v1/contracts/IDODOMine.json @@ -0,0 +1,3630 @@ +{ + "contractName": "IDODOMine", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_lpToken", + "type": "address" + }, + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "getUserLpBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_lpToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getUserLpBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMineReader.sol\":\"IDODOMine\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol\":{\"keccak256\":\"0x8fd9ec49ff1517e33698dc8dd4022da05f3a1ae6e4bf97c48f5f5b6714df2123\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cfaa388f09d627ad26c66e6c4a73c232d494010b73b989392e264f815a84cd1d\",\"dweb:/ipfs/QmSBNeEyjgFSAtcYpKjyQfKZx7ahZKFwUtnnbpSSpS3p2H\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMineReader.sol\":{\"keccak256\":\"0xacdbbc17ce75a41a7656e2ff50c85633af00f5c57240269a3bcfcc4800427574\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b915a0b00401e7355693594d02a1b606172e29c8886fe909749b4422bd8accb3\",\"dweb:/ipfs/QmbaER9zTzjuUh4x4YMDMiXu4cHzMCqihBUP7h2DP4ERmq\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {IDODO} from \"../intf/IDODO.sol\";\nimport {IERC20} from \"../intf/IERC20.sol\";\nimport {SafeMath} from \"../lib/SafeMath.sol\";\n\n\ninterface IDODOMine {\n function getUserLpBalance(address _lpToken, address _user) external view returns (uint256);\n}\n\n\ncontract DODOMineReader {\n using SafeMath for uint256;\n\n function getUserStakedBalance(\n address _dodoMine,\n address _dodo,\n address _user\n ) external view returns (uint256 baseBalance, uint256 quoteBalance) {\n address baseLpToken = IDODO(_dodo)._BASE_CAPITAL_TOKEN_();\n address quoteLpToken = IDODO(_dodo)._QUOTE_CAPITAL_TOKEN_();\n\n uint256 baseLpBalance = IDODOMine(_dodoMine).getUserLpBalance(baseLpToken, _user);\n uint256 quoteLpBalance = IDODOMine(_dodoMine).getUserLpBalance(quoteLpToken, _user);\n\n uint256 baseLpTotalSupply = IERC20(baseLpToken).totalSupply();\n uint256 quoteLpTotalSupply = IERC20(quoteLpToken).totalSupply();\n\n (uint256 baseTarget, uint256 quoteTarget) = IDODO(_dodo).getExpectedTarget();\n baseBalance = baseTarget.mul(baseLpBalance).div(baseLpTotalSupply);\n quoteBalance = quoteTarget.mul(quoteLpBalance).div(quoteLpTotalSupply);\n\n return (baseBalance, quoteBalance);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMineReader.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMineReader.sol", + "exportedSymbols": { + "DODOMineReader": [ + 12945 + ], + "IDODOMine": [ + 12841 + ] + }, + "id": 12946, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12824, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:44" + }, + { + "id": 12825, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:44" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "file": "../intf/IDODO.sol", + "id": 12827, + "nodeType": "ImportDirective", + "scope": 12946, + "sourceUnit": 10492, + "src": "136:40:44", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12826, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:5:44", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 12829, + "nodeType": "ImportDirective", + "scope": 12946, + "sourceUnit": 10608, + "src": "177:42:44", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12828, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "185:6:44", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 12831, + "nodeType": "ImportDirective", + "scope": 12946, + "sourceUnit": 11624, + "src": "220:45:44", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12830, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "228:8:44", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 12841, + "linearizedBaseContracts": [ + 12841 + ], + "name": "IDODOMine", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "19a78f55", + "id": 12840, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getUserLpBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12833, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12840, + "src": "320:16:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "320:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12835, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12840, + "src": "338:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12834, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "338:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "319:33:44" + }, + "returnParameters": { + "id": 12839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12838, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12840, + "src": "376:7:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12837, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "376:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "375:9:44" + }, + "scope": 12841, + "src": "294:91:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12946, + "src": "268:119:44" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12945, + "linearizedBaseContracts": [ + 12945 + ], + "name": "DODOMineReader", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 12844, + "libraryName": { + "contractScope": null, + "id": 12842, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "426:8:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "420:27:44", + "typeName": { + "id": 12843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "439:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 12943, + "nodeType": "Block", + "src": "628:761:44", + "statements": [ + { + "assignments": [ + 12858 + ], + "declarations": [ + { + "constant": false, + "id": 12858, + "mutability": "mutable", + "name": "baseLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "638:19:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "638:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12864, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12860, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "666:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12859, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "660:5:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 12861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "660:12:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 12862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10475, + "src": "660:33:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 12863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "660:35:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "638:57:44" + }, + { + "assignments": [ + 12866 + ], + "declarations": [ + { + "constant": false, + "id": 12866, + "mutability": "mutable", + "name": "quoteLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "705:20:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12865, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "705:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12872, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12868, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "734:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12867, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "728:5:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 12869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "728:12:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 12870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10480, + "src": "728:34:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 12871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "728:36:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "705:59:44" + }, + { + "assignments": [ + 12874 + ], + "declarations": [ + { + "constant": false, + "id": 12874, + "mutability": "mutable", + "name": "baseLpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "775:21:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "775:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12882, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12879, + "name": "baseLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12858, + "src": "837:11:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12880, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12850, + "src": "850:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12876, + "name": "_dodoMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12846, + "src": "809:9:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12875, + "name": "IDODOMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12841, + "src": "799:9:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOMine_$12841_$", + "typeString": "type(contract IDODOMine)" + } + }, + "id": 12877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "799:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOMine_$12841", + "typeString": "contract IDODOMine" + } + }, + "id": 12878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUserLpBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 12840, + "src": "799:37:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 12881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "799:57:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "775:81:44" + }, + { + "assignments": [ + 12884 + ], + "declarations": [ + { + "constant": false, + "id": 12884, + "mutability": "mutable", + "name": "quoteLpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "866:22:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "866:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12892, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12889, + "name": "quoteLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12866, + "src": "929:12:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12890, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12850, + "src": "943:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12886, + "name": "_dodoMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12846, + "src": "901:9:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12885, + "name": "IDODOMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12841, + "src": "891:9:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOMine_$12841_$", + "typeString": "type(contract IDODOMine)" + } + }, + "id": 12887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "891:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOMine_$12841", + "typeString": "contract IDODOMine" + } + }, + "id": 12888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUserLpBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 12840, + "src": "891:37:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 12891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "891:58:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "866:83:44" + }, + { + "assignments": [ + 12894 + ], + "declarations": [ + { + "constant": false, + "id": 12894, + "mutability": "mutable", + "name": "baseLpTotalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "960:25:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "960:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12900, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12896, + "name": "baseLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12858, + "src": "995:11:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12895, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "988:6:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "988:19:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 10546, + "src": "988:31:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 12899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "988:33:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "960:61:44" + }, + { + "assignments": [ + 12902 + ], + "declarations": [ + { + "constant": false, + "id": 12902, + "mutability": "mutable", + "name": "quoteLpTotalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "1031:26:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12901, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1031:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12908, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12904, + "name": "quoteLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12866, + "src": "1067:12:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12903, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1060:6:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1060:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 10546, + "src": "1060:32:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 12907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1060:34:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1031:63:44" + }, + { + "assignments": [ + 12910, + 12912 + ], + "declarations": [ + { + "constant": false, + "id": 12910, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "1106:18:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12909, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1106:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12912, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "1126:19:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1126:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12918, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12914, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "1155:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12913, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1149:5:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 12915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1149:12:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 12916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExpectedTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10428, + "src": "1149:30:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 12917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1149:32:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1105:76:44" + }, + { + "expression": { + "argumentTypes": null, + "id": 12927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12919, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12853, + "src": "1191:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12925, + "name": "baseLpTotalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12894, + "src": "1239:17:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12922, + "name": "baseLpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12874, + "src": "1220:13:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12920, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12910, + "src": "1205:10:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "1205:14:44", + "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": 12923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1205:29:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "1205:33:44", + "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": 12926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1205:52:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1191:66:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12928, + "nodeType": "ExpressionStatement", + "src": "1191:66:44" + }, + { + "expression": { + "argumentTypes": null, + "id": 12937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12929, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12855, + "src": "1267:12:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12935, + "name": "quoteLpTotalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12902, + "src": "1318:18:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12932, + "name": "quoteLpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12884, + "src": "1298:14:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12930, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12912, + "src": "1282:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "1282:15:44", + "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": 12933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:31:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "1282:35:44", + "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": 12936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:55:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1267:70:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12938, + "nodeType": "ExpressionStatement", + "src": "1267:70:44" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 12939, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12853, + "src": "1356:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12940, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12855, + "src": "1369:12:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 12941, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1355:27:44", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 12856, + "id": 12942, + "nodeType": "Return", + "src": "1348:34:44" + } + ] + }, + "documentation": null, + "functionSelector": "4e41de7f", + "id": 12944, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUserStakedBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12846, + "mutability": "mutable", + "name": "_dodoMine", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "492:17:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "492:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12848, + "mutability": "mutable", + "name": "_dodo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "519:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "519:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12850, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "542:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12849, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "542:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "482:79:44" + }, + "returnParameters": { + "id": 12856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12853, + "mutability": "mutable", + "name": "baseBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "585:19:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "585:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12855, + "mutability": "mutable", + "name": "quoteBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "606:20:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "606:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "584:43:44" + }, + "scope": 12945, + "src": "453:936:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12946, + "src": "390:1001:44" + } + ], + "src": "78:1314:44" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODOMineReader.sol", + "exportedSymbols": { + "DODOMineReader": [ + 12945 + ], + "IDODOMine": [ + 12841 + ] + }, + "id": 12946, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12824, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:44" + }, + { + "id": 12825, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:44" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "file": "../intf/IDODO.sol", + "id": 12827, + "nodeType": "ImportDirective", + "scope": 12946, + "sourceUnit": 10492, + "src": "136:40:44", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12826, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:5:44", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 12829, + "nodeType": "ImportDirective", + "scope": 12946, + "sourceUnit": 10608, + "src": "177:42:44", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12828, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "185:6:44", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 12831, + "nodeType": "ImportDirective", + "scope": 12946, + "sourceUnit": 11624, + "src": "220:45:44", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12830, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "228:8:44", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 12841, + "linearizedBaseContracts": [ + 12841 + ], + "name": "IDODOMine", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "19a78f55", + "id": 12840, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getUserLpBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12833, + "mutability": "mutable", + "name": "_lpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12840, + "src": "320:16:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12832, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "320:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12835, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12840, + "src": "338:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12834, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "338:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "319:33:44" + }, + "returnParameters": { + "id": 12839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12838, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12840, + "src": "376:7:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12837, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "376:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "375:9:44" + }, + "scope": 12841, + "src": "294:91:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12946, + "src": "268:119:44" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12945, + "linearizedBaseContracts": [ + 12945 + ], + "name": "DODOMineReader", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 12844, + "libraryName": { + "contractScope": null, + "id": 12842, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "426:8:44", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "420:27:44", + "typeName": { + "id": 12843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "439:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 12943, + "nodeType": "Block", + "src": "628:761:44", + "statements": [ + { + "assignments": [ + 12858 + ], + "declarations": [ + { + "constant": false, + "id": 12858, + "mutability": "mutable", + "name": "baseLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "638:19:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12857, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "638:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12864, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12860, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "666:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12859, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "660:5:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 12861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "660:12:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 12862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10475, + "src": "660:33:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 12863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "660:35:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "638:57:44" + }, + { + "assignments": [ + 12866 + ], + "declarations": [ + { + "constant": false, + "id": 12866, + "mutability": "mutable", + "name": "quoteLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "705:20:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12865, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "705:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12872, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12868, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "734:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12867, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "728:5:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 12869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "728:12:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 12870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10480, + "src": "728:34:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 12871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "728:36:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "705:59:44" + }, + { + "assignments": [ + 12874 + ], + "declarations": [ + { + "constant": false, + "id": 12874, + "mutability": "mutable", + "name": "baseLpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "775:21:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "775:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12882, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12879, + "name": "baseLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12858, + "src": "837:11:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12880, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12850, + "src": "850:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12876, + "name": "_dodoMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12846, + "src": "809:9:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12875, + "name": "IDODOMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12841, + "src": "799:9:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOMine_$12841_$", + "typeString": "type(contract IDODOMine)" + } + }, + "id": 12877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "799:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOMine_$12841", + "typeString": "contract IDODOMine" + } + }, + "id": 12878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUserLpBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 12840, + "src": "799:37:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 12881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "799:57:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "775:81:44" + }, + { + "assignments": [ + 12884 + ], + "declarations": [ + { + "constant": false, + "id": 12884, + "mutability": "mutable", + "name": "quoteLpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "866:22:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "866:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12892, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12889, + "name": "quoteLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12866, + "src": "929:12:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12890, + "name": "_user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12850, + "src": "943:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12886, + "name": "_dodoMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12846, + "src": "901:9:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12885, + "name": "IDODOMine", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12841, + "src": "891:9:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOMine_$12841_$", + "typeString": "type(contract IDODOMine)" + } + }, + "id": 12887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "891:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOMine_$12841", + "typeString": "contract IDODOMine" + } + }, + "id": 12888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getUserLpBalance", + "nodeType": "MemberAccess", + "referencedDeclaration": 12840, + "src": "891:37:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 12891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "891:58:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "866:83:44" + }, + { + "assignments": [ + 12894 + ], + "declarations": [ + { + "constant": false, + "id": 12894, + "mutability": "mutable", + "name": "baseLpTotalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "960:25:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "960:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12900, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12896, + "name": "baseLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12858, + "src": "995:11:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12895, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "988:6:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "988:19:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 10546, + "src": "988:31:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 12899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "988:33:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "960:61:44" + }, + { + "assignments": [ + 12902 + ], + "declarations": [ + { + "constant": false, + "id": 12902, + "mutability": "mutable", + "name": "quoteLpTotalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "1031:26:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12901, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1031:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12908, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12904, + "name": "quoteLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12866, + "src": "1067:12:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12903, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1060:6:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1060:20:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 10546, + "src": "1060:32:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 12907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1060:34:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1031:63:44" + }, + { + "assignments": [ + 12910, + 12912 + ], + "declarations": [ + { + "constant": false, + "id": 12910, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "1106:18:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12909, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1106:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12912, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12943, + "src": "1126:19:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1126:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 12918, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12914, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "1155:5:44", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12913, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1149:5:44", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 12915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1149:12:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 12916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExpectedTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10428, + "src": "1149:30:44", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view external returns (uint256,uint256)" + } + }, + "id": 12917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1149:32:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1105:76:44" + }, + { + "expression": { + "argumentTypes": null, + "id": 12927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12919, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12853, + "src": "1191:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12925, + "name": "baseLpTotalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12894, + "src": "1239:17:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12922, + "name": "baseLpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12874, + "src": "1220:13:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12920, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12910, + "src": "1205:10:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "1205:14:44", + "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": 12923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1205:29:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "1205:33:44", + "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": 12926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1205:52:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1191:66:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12928, + "nodeType": "ExpressionStatement", + "src": "1191:66:44" + }, + { + "expression": { + "argumentTypes": null, + "id": 12937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12929, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12855, + "src": "1267:12:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12935, + "name": "quoteLpTotalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12902, + "src": "1318:18:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12932, + "name": "quoteLpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12884, + "src": "1298:14:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 12930, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12912, + "src": "1282:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "1282:15:44", + "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": 12933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:31:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "1282:35:44", + "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": 12936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1282:55:44", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1267:70:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12938, + "nodeType": "ExpressionStatement", + "src": "1267:70:44" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 12939, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12853, + "src": "1356:11:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 12940, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12855, + "src": "1369:12:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 12941, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1355:27:44", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 12856, + "id": 12942, + "nodeType": "Return", + "src": "1348:34:44" + } + ] + }, + "documentation": null, + "functionSelector": "4e41de7f", + "id": 12944, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUserStakedBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12846, + "mutability": "mutable", + "name": "_dodoMine", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "492:17:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "492:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12848, + "mutability": "mutable", + "name": "_dodo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "519:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "519:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12850, + "mutability": "mutable", + "name": "_user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "542:13:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12849, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "542:7:44", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "482:79:44" + }, + "returnParameters": { + "id": 12856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12853, + "mutability": "mutable", + "name": "baseBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "585:19:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "585:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12855, + "mutability": "mutable", + "name": "quoteBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12944, + "src": "606:20:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "606:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "584:43:44" + }, + "scope": 12945, + "src": "453:936:44", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12946, + "src": "390:1001:44" + } + ], + "src": "78:1314:44" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.737Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IDODORewardVault.json b/build-v1/contracts/IDODORewardVault.json new file mode 100644 index 0000000..8b92666 --- /dev/null +++ b/build-v1/contracts/IDODORewardVault.json @@ -0,0 +1,1388 @@ +{ + "contractName": "IDODORewardVault", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "reward", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"reward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol\":\"IDODORewardVault\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol\":{\"keccak256\":\"0xb7a2ca6570834e4784e86d19fd5a4b6b1eff22a4586dc240659943396a365aa5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5855a493c78e787d7effd87d9c661acbcd19ca1e1ba72dbeaa91c3c8db29cbb4\",\"dweb:/ipfs/QmSddEexZ5okMatgoQ5JZRoJqe7BwsJwwWA2o1kKx7vbTH\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol\":{\"keccak256\":\"0x9a1ad5dfb8c36b3750f7c3c9aef091e63bad36e2145355eb212d67988914dc1d\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e8ad414d377a1860b064193e015ca67187da4a47c9e925123cef4c9a6cd3448b\",\"dweb:/ipfs/QmS7Po2mSdB7Bk784Zcsxx7HFwJ17WXqKv3FuDGxH5aCFY\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {Ownable} from \"../lib/Ownable.sol\";\nimport {SafeERC20} from \"../lib/SafeERC20.sol\";\nimport {IERC20} from \"../intf/IERC20.sol\";\n\n\ninterface IDODORewardVault {\n function reward(address to, uint256 amount) external;\n}\n\n\ncontract DODORewardVault is Ownable {\n using SafeERC20 for IERC20;\n\n address public dodoToken;\n\n constructor(address _dodoToken) public {\n dodoToken = _dodoToken;\n }\n\n function reward(address to, uint256 amount) external onlyOwner {\n IERC20(dodoToken).safeTransfer(to, amount);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol", + "exportedSymbols": { + "DODORewardVault": [ + 12998 + ], + "IDODORewardVault": [ + 12962 + ] + }, + "id": 12999, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12947, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:45" + }, + { + "id": 12948, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:45" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 12950, + "nodeType": "ImportDirective", + "scope": 12999, + "sourceUnit": 11272, + "src": "136:43:45", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12949, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:45", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "../lib/SafeERC20.sol", + "id": 12952, + "nodeType": "ImportDirective", + "scope": 12999, + "sourceUnit": 11441, + "src": "180:47:45", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12951, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "188:9:45", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 12954, + "nodeType": "ImportDirective", + "scope": 12999, + "sourceUnit": 10608, + "src": "228:42:45", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12953, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "236:6:45", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 12962, + "linearizedBaseContracts": [ + 12962 + ], + "name": "IDODORewardVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "21670f22", + "id": 12961, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "reward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12959, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12956, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12961, + "src": "322:10:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12955, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "322:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12958, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12961, + "src": "334:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12957, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "334:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "321:28:45" + }, + "returnParameters": { + "id": 12960, + "nodeType": "ParameterList", + "parameters": [], + "src": "358:0:45" + }, + "scope": 12962, + "src": "306:53:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12999, + "src": "273:88:45" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12963, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "392:7:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 12964, + "nodeType": "InheritanceSpecifier", + "src": "392:7:45" + } + ], + "contractDependencies": [ + 11271 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12998, + "linearizedBaseContracts": [ + 12998, + 11271 + ], + "name": "DODORewardVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 12967, + "libraryName": { + "contractScope": null, + "id": 12965, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "412:9:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "406:27:45", + "typeName": { + "contractScope": null, + "id": 12966, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "426:6:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "constant": false, + "functionSelector": "75123ff9", + "id": 12969, + "mutability": "mutable", + "name": "dodoToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12998, + "src": "439:24:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "439:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 12978, + "nodeType": "Block", + "src": "509:39:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12974, + "name": "dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12969, + "src": "519:9:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12975, + "name": "_dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12971, + "src": "531:10:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "519:22:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12977, + "nodeType": "ExpressionStatement", + "src": "519:22:45" + } + ] + }, + "documentation": null, + "id": 12979, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12971, + "mutability": "mutable", + "name": "_dodoToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12979, + "src": "482:18:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "482:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "481:20:45" + }, + "returnParameters": { + "id": 12973, + "nodeType": "ParameterList", + "parameters": [], + "src": "509:0:45" + }, + "scope": 12998, + "src": "470:78:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12996, + "nodeType": "Block", + "src": "617:59:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12992, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12981, + "src": "658:2:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12993, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12983, + "src": "662:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12989, + "name": "dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12969, + "src": "634:9:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12988, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "627:6:45", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "627:17:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "627:30:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 12994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "627:42:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12995, + "nodeType": "ExpressionStatement", + "src": "627:42:45" + } + ] + }, + "documentation": null, + "functionSelector": "21670f22", + "id": 12997, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 12986, + "modifierName": { + "argumentTypes": null, + "id": 12985, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "607:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "607:9:45" + } + ], + "name": "reward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12981, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12997, + "src": "570:10:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12980, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "570:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12983, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12997, + "src": "582:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "582:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "569:28:45" + }, + "returnParameters": { + "id": 12987, + "nodeType": "ParameterList", + "parameters": [], + "src": "617:0:45" + }, + "scope": 12998, + "src": "554:122:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12999, + "src": "364:314:45" + } + ], + "src": "78:601:45" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/DODORewardVault.sol", + "exportedSymbols": { + "DODORewardVault": [ + 12998 + ], + "IDODORewardVault": [ + 12962 + ] + }, + "id": 12999, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12947, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:45" + }, + { + "id": 12948, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:45" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 12950, + "nodeType": "ImportDirective", + "scope": 12999, + "sourceUnit": 11272, + "src": "136:43:45", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12949, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:45", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "../lib/SafeERC20.sol", + "id": 12952, + "nodeType": "ImportDirective", + "scope": 12999, + "sourceUnit": 11441, + "src": "180:47:45", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12951, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "188:9:45", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 12954, + "nodeType": "ImportDirective", + "scope": 12999, + "sourceUnit": 10608, + "src": "228:42:45", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 12953, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "236:6:45", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 12962, + "linearizedBaseContracts": [ + 12962 + ], + "name": "IDODORewardVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "21670f22", + "id": 12961, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "reward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12959, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12956, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12961, + "src": "322:10:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12955, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "322:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12958, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12961, + "src": "334:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12957, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "334:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "321:28:45" + }, + "returnParameters": { + "id": 12960, + "nodeType": "ParameterList", + "parameters": [], + "src": "358:0:45" + }, + "scope": 12962, + "src": "306:53:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12999, + "src": "273:88:45" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12963, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "392:7:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 12964, + "nodeType": "InheritanceSpecifier", + "src": "392:7:45" + } + ], + "contractDependencies": [ + 11271 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 12998, + "linearizedBaseContracts": [ + 12998, + 11271 + ], + "name": "DODORewardVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 12967, + "libraryName": { + "contractScope": null, + "id": 12965, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "412:9:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "406:27:45", + "typeName": { + "contractScope": null, + "id": 12966, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "426:6:45", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "constant": false, + "functionSelector": "75123ff9", + "id": 12969, + "mutability": "mutable", + "name": "dodoToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12998, + "src": "439:24:45", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "439:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 12978, + "nodeType": "Block", + "src": "509:39:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 12976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 12974, + "name": "dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12969, + "src": "519:9:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 12975, + "name": "_dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12971, + "src": "531:10:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "519:22:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12977, + "nodeType": "ExpressionStatement", + "src": "519:22:45" + } + ] + }, + "documentation": null, + "id": 12979, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12971, + "mutability": "mutable", + "name": "_dodoToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12979, + "src": "482:18:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "482:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "481:20:45" + }, + "returnParameters": { + "id": 12973, + "nodeType": "ParameterList", + "parameters": [], + "src": "509:0:45" + }, + "scope": 12998, + "src": "470:78:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 12996, + "nodeType": "Block", + "src": "617:59:45", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12992, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12981, + "src": "658:2:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 12993, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12983, + "src": "662:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 12989, + "name": "dodoToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12969, + "src": "634:9:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12988, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "627:6:45", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 12990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "627:17:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 12991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "627:30:45", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 12994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "627:42:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12995, + "nodeType": "ExpressionStatement", + "src": "627:42:45" + } + ] + }, + "documentation": null, + "functionSelector": "21670f22", + "id": 12997, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 12986, + "modifierName": { + "argumentTypes": null, + "id": 12985, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "607:9:45", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "607:9:45" + } + ], + "name": "reward", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 12984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12981, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12997, + "src": "570:10:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12980, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "570:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 12983, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 12997, + "src": "582:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12982, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "582:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "569:28:45" + }, + "returnParameters": { + "id": 12987, + "nodeType": "ParameterList", + "parameters": [], + "src": "617:0:45" + }, + "scope": 12998, + "src": "554:122:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 12999, + "src": "364:314:45" + } + ], + "src": "78:601:45" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.740Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IDODOZoo.json b/build-v1/contracts/IDODOZoo.json new file mode 100644 index 0000000..96d363f --- /dev/null +++ b/build-v1/contracts/IDODOZoo.json @@ -0,0 +1,34000 @@ +{ + "contractName": "IDODOZoo", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "baseToken", + "type": "address" + }, + { + "internalType": "address", + "name": "quoteToken", + "type": "address" + } + ], + "name": "getDODO", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"baseToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"quoteToken\",\"type\":\"address\"}],\"name\":\"getDODO\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOEthProxy.sol\":\"IDODOZoo\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOEthProxy.sol\":{\"keccak256\":\"0xc176f60e025dd47dff2dce5fc492d1a2cabc692d8b0909abfefeb01fcfd1e0da\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://32507f11b7d506cee5b15664ad2cb7219961d4791a3d786846ed26be501121fc\",\"dweb:/ipfs/QmS1Lp2mZ7Ho8qnYVRdwqrQjJPy77nqAAgfY9QeGYq73BH\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol\":{\"keccak256\":\"0x8fd9ec49ff1517e33698dc8dd4022da05f3a1ae6e4bf97c48f5f5b6714df2123\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cfaa388f09d627ad26c66e6c4a73c232d494010b73b989392e264f815a84cd1d\",\"dweb:/ipfs/QmSBNeEyjgFSAtcYpKjyQfKZx7ahZKFwUtnnbpSSpS3p2H\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IWETH.sol\":{\"keccak256\":\"0x477940fe56d5823b603218a07d843eb013524a5b44e2784bf38b8374c22dd4ab\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c9111ef0a330bb0353c5232742867bb18259dd19edd6fb58c83046c007f4dae4\",\"dweb:/ipfs/QmWE34g93fLw5sjMfNxRKP4NU6gdjmyd4A2HNVH9DrkdKp\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol\":{\"keccak256\":\"0xc9c3fc946350fd72083a9d5b1327ff923533ef37b054bc7b6007562b20b0faaf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fc140417457139fb240427629673bfaf970c5d4568ad1cfe582764c6e4855bbb\",\"dweb:/ipfs/Qmd7ESYe5kyM6NYiSzeFE74f1YGGPXzpdVd5qnYg2AvgH8\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {ReentrancyGuard} from \"./lib/ReentrancyGuard.sol\";\nimport {SafeERC20} from \"./lib/SafeERC20.sol\";\nimport {SafeMath} from \"./lib/SafeMath.sol\";\nimport {IDODO} from \"./intf/IDODO.sol\";\nimport {IERC20} from \"./intf/IERC20.sol\";\nimport {IWETH} from \"./intf/IWETH.sol\";\n\ninterface IDODOZoo {\n function getDODO(address baseToken, address quoteToken) external view returns (address);\n}\n\n/**\n * @title DODO Eth Proxy\n * @author DODO Breeder\n *\n * @notice Handle ETH-WETH converting for users.\n */\ncontract DODOEthProxy is ReentrancyGuard {\n using SafeERC20 for IERC20;\n using SafeMath for uint256;\n\n address public _DODO_ZOO_;\n address payable public _WETH_;\n\n // ============ Events ============\n\n event ProxySellEthToToken(\n address indexed seller,\n address indexed quoteToken,\n uint256 payEth,\n uint256 receiveToken\n );\n\n event ProxyBuyEthWithToken(\n address indexed buyer,\n address indexed quoteToken,\n uint256 receiveEth,\n uint256 payToken\n );\n\n event ProxySellTokenToEth(\n address indexed seller,\n address indexed baseToken,\n uint256 payToken,\n uint256 receiveEth\n );\n\n event ProxyBuyTokenWithEth(\n address indexed buyer,\n address indexed baseToken,\n uint256 receiveToken,\n uint256 payEth\n );\n\n event ProxyDepositEthAsBase(address indexed lp, address indexed DODO, uint256 ethAmount);\n\n event ProxyWithdrawEthAsBase(address indexed lp, address indexed DODO, uint256 ethAmount);\n\n event ProxyDepositEthAsQuote(address indexed lp, address indexed DODO, uint256 ethAmount);\n\n event ProxyWithdrawEthAsQuote(address indexed lp, address indexed DODO, uint256 ethAmount);\n\n // ============ Functions ============\n\n constructor(address dodoZoo, address payable weth) public {\n _DODO_ZOO_ = dodoZoo;\n _WETH_ = weth;\n }\n\n fallback() external payable {\n require(msg.sender == _WETH_, \"WE_SAVED_YOUR_ETH_:)\");\n }\n\n receive() external payable {\n require(msg.sender == _WETH_, \"WE_SAVED_YOUR_ETH_:)\");\n }\n\n function sellEthToToken(\n address quoteTokenAddress,\n uint256 ethAmount,\n uint256 minReceiveTokenAmount\n ) external payable preventReentrant returns (uint256 receiveTokenAmount) {\n require(msg.value == ethAmount, \"ETH_AMOUNT_NOT_MATCH\");\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(_WETH_, quoteTokenAddress);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n IWETH(_WETH_).deposit{value: ethAmount}();\n IWETH(_WETH_).approve(DODO, ethAmount);\n receiveTokenAmount = IDODO(DODO).sellBaseToken(ethAmount, minReceiveTokenAmount, \"\");\n _transferOut(quoteTokenAddress, msg.sender, receiveTokenAmount);\n emit ProxySellEthToToken(msg.sender, quoteTokenAddress, ethAmount, receiveTokenAmount);\n return receiveTokenAmount;\n }\n\n function buyEthWithToken(\n address quoteTokenAddress,\n uint256 ethAmount,\n uint256 maxPayTokenAmount\n ) external preventReentrant returns (uint256 payTokenAmount) {\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(_WETH_, quoteTokenAddress);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n payTokenAmount = IDODO(DODO).queryBuyBaseToken(ethAmount);\n _transferIn(quoteTokenAddress, msg.sender, payTokenAmount);\n IERC20(quoteTokenAddress).safeApprove(DODO, payTokenAmount);\n IDODO(DODO).buyBaseToken(ethAmount, maxPayTokenAmount, \"\");\n IWETH(_WETH_).withdraw(ethAmount);\n msg.sender.transfer(ethAmount);\n emit ProxyBuyEthWithToken(msg.sender, quoteTokenAddress, ethAmount, payTokenAmount);\n return payTokenAmount;\n }\n\n function sellTokenToEth(\n address baseTokenAddress,\n uint256 tokenAmount,\n uint256 minReceiveEthAmount\n ) external preventReentrant returns (uint256 receiveEthAmount) {\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(baseTokenAddress, _WETH_);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n IERC20(baseTokenAddress).safeApprove(DODO, tokenAmount);\n _transferIn(baseTokenAddress, msg.sender, tokenAmount);\n receiveEthAmount = IDODO(DODO).sellBaseToken(tokenAmount, minReceiveEthAmount, \"\");\n IWETH(_WETH_).withdraw(receiveEthAmount);\n msg.sender.transfer(receiveEthAmount);\n emit ProxySellTokenToEth(msg.sender, baseTokenAddress, tokenAmount, receiveEthAmount);\n return receiveEthAmount;\n }\n\n function buyTokenWithEth(\n address baseTokenAddress,\n uint256 tokenAmount,\n uint256 maxPayEthAmount\n ) external payable preventReentrant returns (uint256 payEthAmount) {\n require(msg.value == maxPayEthAmount, \"ETH_AMOUNT_NOT_MATCH\");\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(baseTokenAddress, _WETH_);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n payEthAmount = IDODO(DODO).queryBuyBaseToken(tokenAmount);\n IWETH(_WETH_).deposit{value: payEthAmount}();\n IWETH(_WETH_).approve(DODO, payEthAmount);\n IDODO(DODO).buyBaseToken(tokenAmount, maxPayEthAmount, \"\");\n _transferOut(baseTokenAddress, msg.sender, tokenAmount);\n uint256 refund = maxPayEthAmount.sub(payEthAmount);\n if (refund > 0) {\n msg.sender.transfer(refund);\n }\n emit ProxyBuyTokenWithEth(msg.sender, baseTokenAddress, tokenAmount, payEthAmount);\n return payEthAmount;\n }\n\n function depositEthAsBase(uint256 ethAmount, address quoteTokenAddress)\n external\n payable\n preventReentrant\n {\n require(msg.value == ethAmount, \"ETH_AMOUNT_NOT_MATCH\");\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(_WETH_, quoteTokenAddress);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n IWETH(_WETH_).deposit{value: ethAmount}();\n IWETH(_WETH_).approve(DODO, ethAmount);\n IDODO(DODO).depositBaseTo(msg.sender, ethAmount);\n emit ProxyDepositEthAsBase(msg.sender, DODO, ethAmount);\n }\n\n function withdrawEthAsBase(uint256 ethAmount, address quoteTokenAddress)\n external\n preventReentrant\n returns (uint256 withdrawAmount)\n {\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(_WETH_, quoteTokenAddress);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n address ethLpToken = IDODO(DODO)._BASE_CAPITAL_TOKEN_();\n\n // transfer all pool shares to proxy\n uint256 lpBalance = IERC20(ethLpToken).balanceOf(msg.sender);\n IERC20(ethLpToken).transferFrom(msg.sender, address(this), lpBalance);\n IDODO(DODO).withdrawBase(ethAmount);\n\n // transfer remain shares back to msg.sender\n lpBalance = IERC20(ethLpToken).balanceOf(address(this));\n IERC20(ethLpToken).transfer(msg.sender, lpBalance);\n\n // because of withdraw penalty, withdrawAmount may not equal to ethAmount\n // query weth amount first and than transfer ETH to msg.sender\n uint256 wethAmount = IERC20(_WETH_).balanceOf(address(this));\n IWETH(_WETH_).withdraw(wethAmount);\n msg.sender.transfer(wethAmount);\n emit ProxyWithdrawEthAsBase(msg.sender, DODO, wethAmount);\n return wethAmount;\n }\n\n function withdrawAllEthAsBase(address quoteTokenAddress)\n external\n preventReentrant\n returns (uint256 withdrawAmount)\n {\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(_WETH_, quoteTokenAddress);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n address ethLpToken = IDODO(DODO)._BASE_CAPITAL_TOKEN_();\n\n // transfer all pool shares to proxy\n uint256 lpBalance = IERC20(ethLpToken).balanceOf(msg.sender);\n IERC20(ethLpToken).transferFrom(msg.sender, address(this), lpBalance);\n IDODO(DODO).withdrawAllBase();\n\n // because of withdraw penalty, withdrawAmount may not equal to ethAmount\n // query weth amount first and than transfer ETH to msg.sender\n uint256 wethAmount = IERC20(_WETH_).balanceOf(address(this));\n IWETH(_WETH_).withdraw(wethAmount);\n msg.sender.transfer(wethAmount);\n emit ProxyWithdrawEthAsBase(msg.sender, DODO, wethAmount);\n return wethAmount;\n }\n\n function depositEthAsQuote(uint256 ethAmount, address baseTokenAddress)\n external\n payable\n preventReentrant\n {\n require(msg.value == ethAmount, \"ETH_AMOUNT_NOT_MATCH\");\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(baseTokenAddress, _WETH_);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n IWETH(_WETH_).deposit{value: ethAmount}();\n IWETH(_WETH_).approve(DODO, ethAmount);\n IDODO(DODO).depositQuoteTo(msg.sender, ethAmount);\n emit ProxyDepositEthAsQuote(msg.sender, DODO, ethAmount);\n }\n\n function withdrawEthAsQuote(uint256 ethAmount, address baseTokenAddress)\n external\n preventReentrant\n returns (uint256 withdrawAmount)\n {\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(baseTokenAddress, _WETH_);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n address ethLpToken = IDODO(DODO)._QUOTE_CAPITAL_TOKEN_();\n\n // transfer all pool shares to proxy\n uint256 lpBalance = IERC20(ethLpToken).balanceOf(msg.sender);\n IERC20(ethLpToken).transferFrom(msg.sender, address(this), lpBalance);\n IDODO(DODO).withdrawQuote(ethAmount);\n\n // transfer remain shares back to msg.sender\n lpBalance = IERC20(ethLpToken).balanceOf(address(this));\n IERC20(ethLpToken).transfer(msg.sender, lpBalance);\n\n // because of withdraw penalty, withdrawAmount may not equal to ethAmount\n // query weth amount first and than transfer ETH to msg.sender\n uint256 wethAmount = IERC20(_WETH_).balanceOf(address(this));\n IWETH(_WETH_).withdraw(wethAmount);\n msg.sender.transfer(wethAmount);\n emit ProxyWithdrawEthAsQuote(msg.sender, DODO, wethAmount);\n return wethAmount;\n }\n\n function withdrawAllEthAsQuote(address baseTokenAddress)\n external\n preventReentrant\n returns (uint256 withdrawAmount)\n {\n address DODO = IDODOZoo(_DODO_ZOO_).getDODO(baseTokenAddress, _WETH_);\n require(DODO != address(0), \"DODO_NOT_EXIST\");\n address ethLpToken = IDODO(DODO)._QUOTE_CAPITAL_TOKEN_();\n\n // transfer all pool shares to proxy\n uint256 lpBalance = IERC20(ethLpToken).balanceOf(msg.sender);\n IERC20(ethLpToken).transferFrom(msg.sender, address(this), lpBalance);\n IDODO(DODO).withdrawAllQuote();\n\n // because of withdraw penalty, withdrawAmount may not equal to ethAmount\n // query weth amount first and than transfer ETH to msg.sender\n uint256 wethAmount = IERC20(_WETH_).balanceOf(address(this));\n IWETH(_WETH_).withdraw(wethAmount);\n msg.sender.transfer(wethAmount);\n emit ProxyWithdrawEthAsQuote(msg.sender, DODO, wethAmount);\n return wethAmount;\n }\n\n // ============ Helper Functions ============\n\n function _transferIn(\n address tokenAddress,\n address from,\n uint256 amount\n ) internal {\n IERC20(tokenAddress).safeTransferFrom(from, address(this), amount);\n }\n\n function _transferOut(\n address tokenAddress,\n address to,\n uint256 amount\n ) internal {\n IERC20(tokenAddress).safeTransfer(to, amount);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOEthProxy.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOEthProxy.sol", + "exportedSymbols": { + "DODOEthProxy": [ + 1166 + ], + "IDODOZoo": [ + 24 + ] + }, + "id": 1167, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:0" + }, + { + "id": 2, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:0" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol", + "file": "./lib/ReentrancyGuard.sol", + "id": 4, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 11297, + "src": "136:58:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3, + "name": "ReentrancyGuard", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:15:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "./lib/SafeERC20.sol", + "id": 6, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 11441, + "src": "195:46:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 5, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "203:9:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "./lib/SafeMath.sol", + "id": 8, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 11624, + "src": "242:44:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "250:8:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "file": "./intf/IDODO.sol", + "id": 10, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 10492, + "src": "287:39:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "295:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "./intf/IERC20.sol", + "id": 12, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 10608, + "src": "327:41:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "335:6:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IWETH.sol", + "file": "./intf/IWETH.sol", + "id": 14, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 10679, + "src": "369:39:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "377:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 24, + "linearizedBaseContracts": [ + 24 + ], + "name": "IDODOZoo", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "1273b0c6", + "id": 23, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getDODO", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 23, + "src": "452:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "452:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 23, + "src": "471:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "471:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "451:39:0" + }, + "returnParameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 23, + "src": "514:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "514:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "513:9:0" + }, + "scope": 24, + "src": "435:88:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1167, + "src": "410:115:0" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 26, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11296, + "src": "661:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$11296", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 27, + "nodeType": "InheritanceSpecifier", + "src": "661:15:0" + } + ], + "contractDependencies": [ + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 25, + "nodeType": "StructuredDocumentation", + "src": "527:108:0", + "text": " @title DODO Eth Proxy\n @author DODO Breeder\n @notice Handle ETH-WETH converting for users." + }, + "fullyImplemented": true, + "id": 1166, + "linearizedBaseContracts": [ + 1166, + 11296 + ], + "name": "DODOEthProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 30, + "libraryName": { + "contractScope": null, + "id": 28, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "689:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "683:27:0", + "typeName": { + "contractScope": null, + "id": 29, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "703:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "id": 33, + "libraryName": { + "contractScope": null, + "id": 31, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "721:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "715:27:0", + "typeName": { + "id": 32, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "734:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "39239f72", + "id": 35, + "mutability": "mutable", + "name": "_DODO_ZOO_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1166, + "src": "748:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "748:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0d4eec8f", + "id": 37, + "mutability": "mutable", + "name": "_WETH_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1166, + "src": "779:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 36, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "779:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 47, + "name": "ProxySellEthToToken", + "nodeType": "EventDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "891:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 38, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "891:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 41, + "indexed": true, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "923:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 40, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "923:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 43, + "indexed": false, + "mutability": "mutable", + "name": "payEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "959:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 42, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "959:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 45, + "indexed": false, + "mutability": "mutable", + "name": "receiveToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "983:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "983:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "881:128:0" + }, + "src": "856:154:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 57, + "name": "ProxyBuyEthWithToken", + "nodeType": "EventDefinition", + "parameters": { + "id": 56, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "indexed": true, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1052:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 48, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1052:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 51, + "indexed": true, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1083:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 50, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1083:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 53, + "indexed": false, + "mutability": "mutable", + "name": "receiveEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1119:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 52, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1119:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "indexed": false, + "mutability": "mutable", + "name": "payToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1147:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1147:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1042:127:0" + }, + "src": "1016:154:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 67, + "name": "ProxySellTokenToEth", + "nodeType": "EventDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 59, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1211:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 58, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "indexed": true, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1243:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1243:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": false, + "mutability": "mutable", + "name": "payToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1278:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 62, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "receiveEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1304:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1304:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1201:127:0" + }, + "src": "1176:153:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 77, + "name": "ProxyBuyTokenWithEth", + "nodeType": "EventDefinition", + "parameters": { + "id": 76, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "indexed": true, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1371:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1371:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 71, + "indexed": true, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1402:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 70, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1402:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 73, + "indexed": false, + "mutability": "mutable", + "name": "receiveToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1437:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 72, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 75, + "indexed": false, + "mutability": "mutable", + "name": "payEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1467:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 74, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1467:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1361:126:0" + }, + "src": "1335:153:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 85, + "name": "ProxyDepositEthAsBase", + "nodeType": "EventDefinition", + "parameters": { + "id": 84, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 85, + "src": "1522:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 78, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1522:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 85, + "src": "1542:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1542:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 83, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 85, + "src": "1564:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 82, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1564:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1521:61:0" + }, + "src": "1494:89:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 93, + "name": "ProxyWithdrawEthAsBase", + "nodeType": "EventDefinition", + "parameters": { + "id": 92, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 87, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 93, + "src": "1618:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 86, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1618:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 93, + "src": "1638:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1638:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 93, + "src": "1660:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1660:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1617:61:0" + }, + "src": "1589:90:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 101, + "name": "ProxyDepositEthAsQuote", + "nodeType": "EventDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 95, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "1714:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 94, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1714:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "1734:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 96, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1734:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "1756:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1756:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1713:61:0" + }, + "src": "1685:90:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 109, + "name": "ProxyWithdrawEthAsQuote", + "nodeType": "EventDefinition", + "parameters": { + "id": 108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 103, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 109, + "src": "1811:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1811:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 105, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 109, + "src": "1831:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 104, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1831:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 107, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 109, + "src": "1853:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1853:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1810:61:0" + }, + "src": "1781:91:0" + }, + { + "body": { + "id": 124, + "nodeType": "Block", + "src": "1980:60:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 116, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "1990:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 117, + "name": "dodoZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "2003:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1990:20:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 119, + "nodeType": "ExpressionStatement", + "src": "1990:20:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 120, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2020:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 121, + "name": "weth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 113, + "src": "2029:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2020:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 123, + "nodeType": "ExpressionStatement", + "src": "2020:13:0" + } + ] + }, + "documentation": null, + "id": 125, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 111, + "mutability": "mutable", + "name": "dodoZoo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "1934:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 110, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1934:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 113, + "mutability": "mutable", + "name": "weth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "1951:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1951:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1933:39:0" + }, + "returnParameters": { + "id": 115, + "nodeType": "ParameterList", + "parameters": [], + "src": "1980:0:0" + }, + "scope": 1166, + "src": "1922:118:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 136, + "nodeType": "Block", + "src": "2074:70:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 129, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2092:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2092:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 131, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2106:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2092:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "57455f53415645445f594f55525f4554485f3a29", + "id": 133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2114:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + }, + "value": "WE_SAVED_YOUR_ETH_:)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + } + ], + "id": 128, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2084:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2084:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 135, + "nodeType": "ExpressionStatement", + "src": "2084:53:0" + } + ] + }, + "documentation": null, + "id": 137, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 126, + "nodeType": "ParameterList", + "parameters": [], + "src": "2054:2:0" + }, + "returnParameters": { + "id": 127, + "nodeType": "ParameterList", + "parameters": [], + "src": "2074:0:0" + }, + "scope": 1166, + "src": "2046:98:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 148, + "nodeType": "Block", + "src": "2177:70:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2195:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2195:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 143, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2209:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2195:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "57455f53415645445f594f55525f4554485f3a29", + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2217:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + }, + "value": "WE_SAVED_YOUR_ETH_:)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + } + ], + "id": 140, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2187:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 147, + "nodeType": "ExpressionStatement", + "src": "2187:53:0" + } + ] + }, + "documentation": null, + "id": 149, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 138, + "nodeType": "ParameterList", + "parameters": [], + "src": "2157:2:0" + }, + "returnParameters": { + "id": 139, + "nodeType": "ParameterList", + "parameters": [], + "src": "2177:0:0" + }, + "scope": 1166, + "src": "2150:97:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 234, + "nodeType": "Block", + "src": "2455:604:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 163, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2473:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2473:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 165, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2486:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2473:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2497:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2465:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2465:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 169, + "nodeType": "ExpressionStatement", + "src": "2465:55:0" + }, + { + "assignments": [ + 171 + ], + "declarations": [ + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 234, + "src": "2530:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2530:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 179, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 176, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2574:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 177, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2582:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 173, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "2554:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 172, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2545:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2545:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "2545:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2545:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2530:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 181, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2618:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2634:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2626:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2626:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2618:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2638:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 180, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2610:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2610:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 189, + "nodeType": "ExpressionStatement", + "src": "2610:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 191, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2671:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 190, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "2665:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2665:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "2665:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 194, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2694:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2665:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2665:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 197, + "nodeType": "ExpressionStatement", + "src": "2665:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 202, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2738:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 203, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2744:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 199, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2722:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 198, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "2716:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2716:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "2716:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2716:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 205, + "nodeType": "ExpressionStatement", + "src": "2716:38:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 206, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2764:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 211, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2811:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 212, + "name": "minReceiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 155, + "src": "2822:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2845:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 208, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2791:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 207, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "2785:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2785:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sellBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10396, + "src": "2785:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2785:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2764:84:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 216, + "nodeType": "ExpressionStatement", + "src": "2764:84:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 218, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2871:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 219, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2890:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2890:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 221, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2902:18:0", + "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": 217, + "name": "_transferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "2858:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2858:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 223, + "nodeType": "ExpressionStatement", + "src": "2858:63:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2956:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2956:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 227, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2968:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 228, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2987:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 229, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2998:18:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 224, + "name": "ProxySellEthToToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "2936:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2936:81:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 231, + "nodeType": "EmitStatement", + "src": "2931:86:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 232, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "3034:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 161, + "id": 233, + "nodeType": "Return", + "src": "3027:25:0" + } + ] + }, + "documentation": null, + "functionSelector": "e5134628", + "id": 235, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 158, + "modifierName": { + "argumentTypes": null, + "id": 157, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "2401:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2401:16:0" + } + ], + "name": "sellEthToToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2286:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 153, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2321:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2321:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 155, + "mutability": "mutable", + "name": "minReceiveTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2348:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2348:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2276:107:0" + }, + "returnParameters": { + "id": 161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 160, + "mutability": "mutable", + "name": "receiveTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2427:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2427:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2426:28:0" + }, + "scope": 1166, + "src": "2253:806:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 326, + "nodeType": "Block", + "src": "3252:621:0", + "statements": [ + { + "assignments": [ + 249 + ], + "declarations": [ + { + "constant": false, + "id": 249, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 326, + "src": "3262:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3262:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 257, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 254, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "3306:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 255, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3314:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 251, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "3286:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 250, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "3277:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3277:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "3277:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3277:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3262:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 259, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3350:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3366:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3358:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3358:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3358:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3350:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3370:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3342:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 267, + "nodeType": "ExpressionStatement", + "src": "3342:45:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 268, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3397:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 273, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3444:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 270, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3420:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 269, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "3414:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queryBuyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10421, + "src": "3414:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view external returns (uint256)" + } + }, + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3397:57:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 276, + "nodeType": "ExpressionStatement", + "src": "3397:57:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 278, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3476:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 279, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3495:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3495:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 281, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3507:14:0", + "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": 277, + "name": "_transferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "3464:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3464:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 283, + "nodeType": "ExpressionStatement", + "src": "3464:58:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 288, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3570:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 289, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3576:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 285, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3539:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 284, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "3532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3532:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeApprove", + "nodeType": "MemberAccess", + "referencedDeclaration": 11396, + "src": "3532:37:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3532:59:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 291, + "nodeType": "ExpressionStatement", + "src": "3532:59:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 296, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3626:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 297, + "name": "maxPayTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "3637:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3656:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 293, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3607:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 292, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "3601:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3601:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "buyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10407, + "src": "3601:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3601:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 300, + "nodeType": "ExpressionStatement", + "src": "3601:58:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 305, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3692:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 302, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "3675:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 301, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "3669:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3669:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "3669:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3669:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 307, + "nodeType": "ExpressionStatement", + "src": "3669:33:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 313, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3732:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 308, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3712:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3712:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3712:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3712:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 315, + "nodeType": "ExpressionStatement", + "src": "3712:30:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 317, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3778:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3778:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 319, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3790:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 320, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3809:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 321, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3820:14:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 316, + "name": "ProxyBuyEthWithToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 57, + "src": "3757:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3757:78:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 323, + "nodeType": "EmitStatement", + "src": "3752:83:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 324, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3852:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 247, + "id": 325, + "nodeType": "Return", + "src": "3845:21:0" + } + ] + }, + "documentation": null, + "functionSelector": "e8d522bb", + "id": 327, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 244, + "modifierName": { + "argumentTypes": null, + "id": 243, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "3202:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3202:16:0" + } + ], + "name": "buyEthWithToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3099:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3099:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 239, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3134:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3134:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 241, + "mutability": "mutable", + "name": "maxPayTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3161:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3161:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3089:103:0" + }, + "returnParameters": { + "id": 247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 246, + "mutability": "mutable", + "name": "payTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3228:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3228:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3227:24:0" + }, + "scope": 1166, + "src": "3065:808:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 411, + "nodeType": "Block", + "src": "4070:587:0", + "statements": [ + { + "assignments": [ + 341 + ], + "declarations": [ + { + "constant": false, + "id": 341, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 411, + "src": "4080:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4080:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 349, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 346, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4124:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 347, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4142:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 343, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "4104:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 342, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "4095:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "4095:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4080:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 351, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "4167:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4183:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4175:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 352, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4175:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4175:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4167:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4187:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4159:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4159:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 359, + "nodeType": "ExpressionStatement", + "src": "4159:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 364, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "4251:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 365, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4257:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 361, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4221:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 360, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "4214:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4214:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeApprove", + "nodeType": "MemberAccess", + "referencedDeclaration": 11396, + "src": "4214:36:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4214:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 367, + "nodeType": "ExpressionStatement", + "src": "4214:55:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 369, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4291:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 370, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4309:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4309:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 372, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4321:11:0", + "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": 368, + "name": "_transferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "4279:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4279:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 374, + "nodeType": "ExpressionStatement", + "src": "4279:54:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 375, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4343:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 380, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4388:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 381, + "name": "minReceiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "4401:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4422:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 377, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "4368:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 376, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "4362:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4362:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sellBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10396, + "src": "4362:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4362:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4343:82:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 385, + "nodeType": "ExpressionStatement", + "src": "4343:82:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 390, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4458:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 387, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4441:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 386, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "4435:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4435:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "4435:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4435:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 392, + "nodeType": "ExpressionStatement", + "src": "4435:40:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 398, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4505:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4485:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4485:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4485:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4485:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 400, + "nodeType": "ExpressionStatement", + "src": "4485:37:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 402, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4557:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4557:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 404, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4569:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 405, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4587:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 406, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4600:16:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 401, + "name": "ProxySellTokenToEth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "4537:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4537:80:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 408, + "nodeType": "EmitStatement", + "src": "4532:85:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 409, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4634:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 339, + "id": 410, + "nodeType": "Return", + "src": "4627:23:0" + } + ] + }, + "documentation": null, + "functionSelector": "d668e026", + "id": 412, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 336, + "modifierName": { + "argumentTypes": null, + "id": 335, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "4018:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4018:16:0" + } + ], + "name": "sellTokenToEth", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "3912:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 328, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3912:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "mutability": "mutable", + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "3946:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3946:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 333, + "mutability": "mutable", + "name": "minReceiveEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "3975:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 332, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3975:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3902:106:0" + }, + "returnParameters": { + "id": 339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "receiveEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "4044:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 337, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4044:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4043:26:0" + }, + "scope": 1166, + "src": "3879:778:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 524, + "nodeType": "Block", + "src": "4855:775:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 426, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4873:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4873:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 428, + "name": "maxPayEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "4886:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4873:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4903:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 425, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4865:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4865:61:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 432, + "nodeType": "ExpressionStatement", + "src": "4865:61:0" + }, + { + "assignments": [ + 434 + ], + "declarations": [ + { + "constant": false, + "id": 434, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 524, + "src": "4936:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4936:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 442, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 439, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "4980:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 440, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4998:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 436, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "4960:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 435, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "4951:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4951:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "4951:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4951:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4936:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 444, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5023:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5039:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5031:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 445, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5031:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5031:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5023:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5043:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 443, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5015:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5015:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 452, + "nodeType": "ExpressionStatement", + "src": "5015:45:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 453, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5070:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 458, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5115:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 455, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5091:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 454, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "5085:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5085:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queryBuyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10421, + "src": "5085:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view external returns (uint256)" + } + }, + "id": 459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5085:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5070:57:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 461, + "nodeType": "ExpressionStatement", + "src": "5070:57:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 463, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5143:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 462, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "5137:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5137:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "5137:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 466, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5166:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5137:42:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5137:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 469, + "nodeType": "ExpressionStatement", + "src": "5137:44:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 474, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5213:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 475, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5219:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 471, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5197:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 470, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "5191:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5191:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "5191:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5191:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 477, + "nodeType": "ExpressionStatement", + "src": "5191:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 482, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5267:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 483, + "name": "maxPayEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "5280:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5297:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 479, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5248:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 478, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "5242:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5242:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "buyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10407, + "src": "5242:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5242:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 486, + "nodeType": "ExpressionStatement", + "src": "5242:58:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 488, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "5323:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 489, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5341:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5341:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 491, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5353:11:0", + "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": 487, + "name": "_transferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "5310:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5310:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 493, + "nodeType": "ExpressionStatement", + "src": "5310:55:0" + }, + { + "assignments": [ + 495 + ], + "declarations": [ + { + "constant": false, + "id": 495, + "mutability": "mutable", + "name": "refund", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 524, + "src": "5375:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5375:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 500, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 498, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5412:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 496, + "name": "maxPayEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "5392:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5392:19:0", + "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": 499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5392:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5375:50:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 501, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "5439:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5448:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5439:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 513, + "nodeType": "IfStatement", + "src": "5435:68:0", + "trueBody": { + "id": 512, + "nodeType": "Block", + "src": "5451:52:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 509, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "5485:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 504, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5465:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5465:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5465:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5465:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 511, + "nodeType": "ExpressionStatement", + "src": "5465:27:0" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 515, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5538:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5538:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 517, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "5550:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 518, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5568:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 519, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5581:12:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 514, + "name": "ProxyBuyTokenWithEth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "5517:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5517:77:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 521, + "nodeType": "EmitStatement", + "src": "5512:82:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 522, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5611:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 424, + "id": 523, + "nodeType": "Return", + "src": "5604:19:0" + } + ] + }, + "documentation": null, + "functionSelector": "33e00053", + "id": 525, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 421, + "modifierName": { + "argumentTypes": null, + "id": 420, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "4807:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4807:16:0" + } + ], + "name": "buyTokenWithEth", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 414, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4697:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4697:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 416, + "mutability": "mutable", + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4731:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4731:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 418, + "mutability": "mutable", + "name": "maxPayEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4760:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 417, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4760:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4687:102:0" + }, + "returnParameters": { + "id": 424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 423, + "mutability": "mutable", + "name": "payEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4833:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4833:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4832:22:0" + }, + "scope": 1166, + "src": "4663:967:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 594, + "nodeType": "Block", + "src": "5770:429:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 535, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5788:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5788:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 537, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "5801:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5788:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5812:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 534, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5780:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5780:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 541, + "nodeType": "ExpressionStatement", + "src": "5780:55:0" + }, + { + "assignments": [ + 543 + ], + "declarations": [ + { + "constant": false, + "id": 543, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 594, + "src": "5845:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 542, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5845:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 551, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 548, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5889:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 549, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "5897:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 545, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "5869:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 544, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "5860:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5860:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "5860:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5860:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5845:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 553, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "5933:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5949:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5941:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 554, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5941:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5941:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5933:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5953:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 552, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5925:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5925:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 561, + "nodeType": "ExpressionStatement", + "src": "5925:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 563, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5986:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 562, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "5980:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5980:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "5980:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 566, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6009:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5980:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5980:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 569, + "nodeType": "ExpressionStatement", + "src": "5980:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 574, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "6053:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 575, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6059:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 571, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "6037:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 570, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "6031:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6031:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "6031:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6031:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 577, + "nodeType": "ExpressionStatement", + "src": "6031:38:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 582, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6105:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6105:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 584, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6117:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 579, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "6085:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 578, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "6079:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6079:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "depositBaseTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 10437, + "src": "6079:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) external returns (uint256)" + } + }, + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6079:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 586, + "nodeType": "ExpressionStatement", + "src": "6079:48:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 588, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6164:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6164:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 590, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "6176:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 591, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6182:9:0", + "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": 587, + "name": "ProxyDepositEthAsBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "6142:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6142:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 593, + "nodeType": "EmitStatement", + "src": "6137:55:0" + } + ] + }, + "documentation": null, + "functionSelector": "b56a1d03", + "id": 595, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 532, + "modifierName": { + "argumentTypes": null, + "id": 531, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "5749:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5749:16:0" + } + ], + "name": "depositEthAsBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 595, + "src": "5662:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 526, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5662:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 595, + "src": "5681:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5681:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5661:46:0" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [], + "src": "5770:0:0" + }, + "scope": 1166, + "src": "5636:563:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 721, + "nodeType": "Block", + "src": "6365:1029:0", + "statements": [ + { + "assignments": [ + 607 + ], + "declarations": [ + { + "constant": false, + "id": 607, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "6375:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6375:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 615, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 612, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "6419:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 613, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "6427:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 609, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "6399:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 608, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "6390:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6390:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "6390:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6390:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6375:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 617, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "6463:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6479:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6471:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6471:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6471:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6463:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6483:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 616, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6455:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6455:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 625, + "nodeType": "ExpressionStatement", + "src": "6455:45:0" + }, + { + "assignments": [ + 627 + ], + "declarations": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "6510:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6510:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 633, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 629, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "6537:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 628, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "6531:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6531:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10475, + "src": "6531:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6531:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6510:55:0" + }, + { + "assignments": [ + 635 + ], + "declarations": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "6621:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6621:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 643, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 640, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6670:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6670:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 637, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6648:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 636, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6641:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "6641:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6641:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6621:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 648, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6723:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6723:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 652, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6743:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6735:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6735:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 654, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "6750:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 645, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6698:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 644, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6691:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6691:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "6691:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6691:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 656, + "nodeType": "ExpressionStatement", + "src": "6691:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 661, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "6795:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 658, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "6776:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 657, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "6770:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6770:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 10444, + "src": "6770:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) external returns (uint256)" + } + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6770:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 663, + "nodeType": "ExpressionStatement", + "src": "6770:35:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 664, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "6869:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 671, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6918:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6910:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6910:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6910:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 666, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6888:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 665, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6881:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6881:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "6881:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6881:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6869:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 675, + "nodeType": "ExpressionStatement", + "src": "6869:55:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 680, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6962:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6962:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 682, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "6974:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 677, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6941:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 676, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6934:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6934:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "6934:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6934:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 684, + "nodeType": "ExpressionStatement", + "src": "6934:50:0" + }, + { + "assignments": [ + 686 + ], + "declarations": [ + { + "constant": false, + "id": 686, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "7148:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7148:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 696, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 693, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7202:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7194:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7194:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7194:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 688, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "7176:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 687, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7169:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7169:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "7169:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7169:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7148:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 701, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7241:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 698, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "7224:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 697, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "7218:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7218:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "7218:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7218:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 703, + "nodeType": "ExpressionStatement", + "src": "7218:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 709, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7282:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 704, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7262:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7262:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7262:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7262:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 711, + "nodeType": "ExpressionStatement", + "src": "7262:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 713, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7331:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7331:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 715, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "7343:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 716, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7349:10:0", + "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": 712, + "name": "ProxyWithdrawEthAsBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "7308:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 718, + "nodeType": "EmitStatement", + "src": "7303:57:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 719, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7377:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 605, + "id": 720, + "nodeType": "Return", + "src": "7370:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "827df194", + "id": 722, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 602, + "modifierName": { + "argumentTypes": null, + "id": 601, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "6303:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6303:16:0" + } + ], + "name": "withdrawEthAsBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 597, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 722, + "src": "6232:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6232:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 722, + "src": "6251:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6251:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6231:46:0" + }, + "returnParameters": { + "id": 605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 604, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 722, + "src": "6337:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6337:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6336:24:0" + }, + "scope": 1166, + "src": "6205:1189:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 824, + "nodeType": "Block", + "src": "7544:844:0", + "statements": [ + { + "assignments": [ + 732 + ], + "declarations": [ + { + "constant": false, + "id": 732, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "7554:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7554:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 740, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 737, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "7598:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 738, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 724, + "src": "7606:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 734, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "7578:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 733, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "7569:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7569:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "7569:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7569:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7554:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 742, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "7642:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7658:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7650:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7650:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7650:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7642:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7662:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 741, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7634:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 750, + "nodeType": "ExpressionStatement", + "src": "7634:45:0" + }, + { + "assignments": [ + 752 + ], + "declarations": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "7689:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7689:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 758, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 754, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "7716:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 753, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "7710:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7710:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10475, + "src": "7710:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7710:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7689:55:0" + }, + { + "assignments": [ + 760 + ], + "declarations": [ + { + "constant": false, + "id": 760, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "7800:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7800:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 768, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7849:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7849:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 762, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "7827:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 761, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7820:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7820:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "7820:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7820:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7800:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 773, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7902:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7902:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 777, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7922:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7914:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7914:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7914:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 779, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 760, + "src": "7929:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 770, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "7877:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 769, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7870:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7870:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "7870:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7870:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 781, + "nodeType": "ExpressionStatement", + "src": "7870:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 783, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "7955:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 782, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "7949:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7949:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawAllBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 10449, + "src": "7949:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7949:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 787, + "nodeType": "ExpressionStatement", + "src": "7949:29:0" + }, + { + "assignments": [ + 789 + ], + "declarations": [ + { + "constant": false, + "id": 789, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "8142:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8142:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 799, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 796, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8196:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8188:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 794, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8188:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8188:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 791, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8170:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 790, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "8163:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8163:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "8163:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8163:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8142:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 804, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8235:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 801, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8218:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 800, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "8212:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8212:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "8212:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8212:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 806, + "nodeType": "ExpressionStatement", + "src": "8212:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 812, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8276:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 807, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8256:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8256:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8256:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8256:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 814, + "nodeType": "ExpressionStatement", + "src": "8256:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 816, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8325:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8325:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 818, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "8337:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 819, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8343:10:0", + "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": 815, + "name": "ProxyWithdrawEthAsBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "8302:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8302:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 821, + "nodeType": "EmitStatement", + "src": "8297:57:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 822, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8371:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 730, + "id": 823, + "nodeType": "Return", + "src": "8364:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "0ae4b86d", + "id": 825, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 727, + "modifierName": { + "argumentTypes": null, + "id": 726, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "7482:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7482:16:0" + } + ], + "name": "withdrawAllEthAsBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 725, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 825, + "src": "7430:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7430:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7429:27:0" + }, + "returnParameters": { + "id": 730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 729, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 825, + "src": "7516:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 728, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7516:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7515:24:0" + }, + "scope": 1166, + "src": "7400:988:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 894, + "nodeType": "Block", + "src": "8528:430:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 835, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8546:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8546:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 837, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8559:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8546:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8570:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 834, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8538:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8538:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 841, + "nodeType": "ExpressionStatement", + "src": "8538:55:0" + }, + { + "assignments": [ + 843 + ], + "declarations": [ + { + "constant": false, + "id": 843, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 894, + "src": "8603:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 842, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8603:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 851, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 848, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "8647:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 849, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8665:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 845, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "8627:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 844, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "8618:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8618:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "8618:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8618:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8603:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 853, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8690:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8706:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8698:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8698:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8698:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8690:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8710:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 852, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8682:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8682:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 861, + "nodeType": "ExpressionStatement", + "src": "8682:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 863, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8743:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 862, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "8737:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8737:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "8737:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 866, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8766:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "8737:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8737:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 869, + "nodeType": "ExpressionStatement", + "src": "8737:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 874, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8810:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 875, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8816:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 871, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8794:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 870, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "8788:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8788:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "8788:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8788:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 877, + "nodeType": "ExpressionStatement", + "src": "8788:38:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 882, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8863:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8863:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 884, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8875:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 879, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8842:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 878, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "8836:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8836:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "depositQuoteTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 10458, + "src": "8836:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) external returns (uint256)" + } + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8836:49:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 886, + "nodeType": "ExpressionStatement", + "src": "8836:49:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 888, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8923:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8923:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 890, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8935:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 891, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8941:9:0", + "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": 887, + "name": "ProxyDepositEthAsQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "8900:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8900:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 893, + "nodeType": "EmitStatement", + "src": "8895:56:0" + } + ] + }, + "documentation": null, + "functionSelector": "ba9344a4", + "id": 895, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 832, + "modifierName": { + "argumentTypes": null, + "id": 831, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "8507:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8507:16:0" + } + ], + "name": "depositEthAsQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 827, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 895, + "src": "8421:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 826, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8421:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 895, + "src": "8440:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8440:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8420:45:0" + }, + "returnParameters": { + "id": 833, + "nodeType": "ParameterList", + "parameters": [], + "src": "8528:0:0" + }, + "scope": 1166, + "src": "8394:564:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1021, + "nodeType": "Block", + "src": "9124:1031:0", + "statements": [ + { + "assignments": [ + 907 + ], + "declarations": [ + { + "constant": false, + "id": 907, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9134:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 906, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9134:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 915, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 912, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 899, + "src": "9178:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 913, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "9196:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 909, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "9158:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 908, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "9149:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9149:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "9149:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9149:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9134:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 917, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9221:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9237:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9229:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9229:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9229:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9221:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9241:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 916, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9213:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9213:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 925, + "nodeType": "ExpressionStatement", + "src": "9213:45:0" + }, + { + "assignments": [ + 927 + ], + "declarations": [ + { + "constant": false, + "id": 927, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9268:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 926, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9268:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 933, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 929, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9295:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 928, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "9289:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9289:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10480, + "src": "9289:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9289:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9268:56:0" + }, + { + "assignments": [ + 935 + ], + "declarations": [ + { + "constant": false, + "id": 935, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9380:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 934, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9380:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 943, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 940, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9429:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9429:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 937, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9407:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 936, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9400:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9400:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "9400:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9400:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9380:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 948, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9482:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9482:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 952, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9502:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9494:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9494:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 954, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "9509:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 945, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9457:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 944, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9450:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9450:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "9450:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9450:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 956, + "nodeType": "ExpressionStatement", + "src": "9450:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 961, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 897, + "src": "9555:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 958, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9535:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 957, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "9529:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9529:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawQuote", + "nodeType": "MemberAccess", + "referencedDeclaration": 10465, + "src": "9529:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) external returns (uint256)" + } + }, + "id": 962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9529:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 963, + "nodeType": "ExpressionStatement", + "src": "9529:36:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 964, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "9629:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 971, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9678:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9670:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 969, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9670:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9670:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 966, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9648:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 965, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9641:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "9641:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9641:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9629:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 975, + "nodeType": "ExpressionStatement", + "src": "9629:55:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 980, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9722:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9722:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 982, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "9734:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 977, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9701:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 976, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9694:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9694:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "9694:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9694:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 984, + "nodeType": "ExpressionStatement", + "src": "9694:50:0" + }, + { + "assignments": [ + 986 + ], + "declarations": [ + { + "constant": false, + "id": 986, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9908:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 985, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9908:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 996, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 993, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9962:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9954:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9954:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9954:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 988, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "9936:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 987, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9929:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9929:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "9929:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9929:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9908:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1001, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10001:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 998, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "9984:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 997, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "9978:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9978:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "9978:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9978:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1003, + "nodeType": "ExpressionStatement", + "src": "9978:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1009, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10042:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1004, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10022:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10022:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10022:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10022:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1011, + "nodeType": "ExpressionStatement", + "src": "10022:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1013, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10092:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10092:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1015, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "10104:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1016, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10110:10:0", + "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": 1012, + "name": "ProxyWithdrawEthAsQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "10068:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10068:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1018, + "nodeType": "EmitStatement", + "src": "10063:58:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 1019, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10138:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 905, + "id": 1020, + "nodeType": "Return", + "src": "10131:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "770e96d3", + "id": 1022, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 902, + "modifierName": { + "argumentTypes": null, + "id": 901, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "9062:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9062:16:0" + } + ], + "name": "withdrawEthAsQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 897, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1022, + "src": "8992:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8992:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 899, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1022, + "src": "9011:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 898, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9011:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8991:45:0" + }, + "returnParameters": { + "id": 905, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 904, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1022, + "src": "9096:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 903, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9096:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9095:24:0" + }, + "scope": 1166, + "src": "8964:1191:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1124, + "nodeType": "Block", + "src": "10305:846:0", + "statements": [ + { + "assignments": [ + 1032 + ], + "declarations": [ + { + "constant": false, + "id": 1032, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10315:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1031, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10315:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1040, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1037, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1024, + "src": "10359:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1038, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "10377:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1034, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "10339:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1033, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "10330:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 1035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10330:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 1036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "10330:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10330:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10315:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1042, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "10402:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10418:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10410:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10410:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10410:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10402:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 1048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10422:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 1041, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10394:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10394:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "10394:45:0" + }, + { + "assignments": [ + 1052 + ], + "declarations": [ + { + "constant": false, + "id": 1052, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10449:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10449:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1058, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1054, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "10476:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1053, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "10470:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10470:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10480, + "src": "10470:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10470:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10449:56:0" + }, + { + "assignments": [ + 1060 + ], + "declarations": [ + { + "constant": false, + "id": 1060, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10561:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10561:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1068, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1065, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10610:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10610:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1062, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1052, + "src": "10588:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1061, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10581:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10581:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "10581:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10581:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10561:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1073, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10663:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10663:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1077, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "10683:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10675:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10675:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10675:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1079, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "10690:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1070, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1052, + "src": "10638:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1069, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10631:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10631:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "10631:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10631:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1081, + "nodeType": "ExpressionStatement", + "src": "10631:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1083, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "10716:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1082, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "10710:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10710:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawAllQuote", + "nodeType": "MemberAccess", + "referencedDeclaration": 10470, + "src": "10710:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10710:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1087, + "nodeType": "ExpressionStatement", + "src": "10710:30:0" + }, + { + "assignments": [ + 1089 + ], + "declarations": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10904:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10904:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1099, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1096, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "10958:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10950:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1094, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10950:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10950:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1091, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "10932:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1090, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10925:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10925:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "10925:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10925:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10904:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1104, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "10997:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1101, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "10980:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1100, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "10974:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10974:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "10974:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10974:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1106, + "nodeType": "ExpressionStatement", + "src": "10974:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1112, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "11038:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1107, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11018:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11018:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11018:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11018:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1114, + "nodeType": "ExpressionStatement", + "src": "11018:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1116, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11088:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11088:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1118, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "11100:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1119, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "11106:10:0", + "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": 1115, + "name": "ProxyWithdrawEthAsQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "11064:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11064:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1121, + "nodeType": "EmitStatement", + "src": "11059:58:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 1122, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "11134:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1030, + "id": 1123, + "nodeType": "Return", + "src": "11127:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "3cff9b56", + "id": 1125, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1027, + "modifierName": { + "argumentTypes": null, + "id": 1026, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "10243:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10243:16:0" + } + ], + "name": "withdrawAllEthAsQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1024, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1125, + "src": "10192:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1023, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10192:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10191:26:0" + }, + "returnParameters": { + "id": 1030, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1029, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1125, + "src": "10277:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1028, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10277:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10276:24:0" + }, + "scope": 1166, + "src": "10161:990:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1146, + "nodeType": "Block", + "src": "11320:83:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1138, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1129, + "src": "11368:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1141, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "11382:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 1140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11374:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11374:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1143, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "11389:6:0", + "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" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1135, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1127, + "src": "11337:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1134, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "11330:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11330:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11354, + "src": "11330:37:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11330:66:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1145, + "nodeType": "ExpressionStatement", + "src": "11330:66:0" + } + ] + }, + "documentation": null, + "id": 1147, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferIn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1127, + "mutability": "mutable", + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1147, + "src": "11238:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11238:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1129, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1147, + "src": "11268:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11268:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1131, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1147, + "src": "11290:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11290:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11228:82:0" + }, + "returnParameters": { + "id": 1133, + "nodeType": "ParameterList", + "parameters": [], + "src": "11320:0:0" + }, + "scope": 1166, + "src": "11208:195:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1164, + "nodeType": "Block", + "src": "11520:62:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "11564:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1161, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "11568:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1157, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "11537:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1156, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "11530:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11530:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "11530:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11530:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1163, + "nodeType": "ExpressionStatement", + "src": "11530:45:0" + } + ] + }, + "documentation": null, + "id": 1165, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOut", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1149, + "mutability": "mutable", + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1165, + "src": "11440:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1148, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11440:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1151, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1165, + "src": "11470:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11470:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1153, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1165, + "src": "11490:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11490:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11430:80:0" + }, + "returnParameters": { + "id": 1155, + "nodeType": "ParameterList", + "parameters": [], + "src": "11520:0:0" + }, + "scope": 1166, + "src": "11409:173:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1167, + "src": "636:10948:0" + } + ], + "src": "78:11507:0" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/DODOEthProxy.sol", + "exportedSymbols": { + "DODOEthProxy": [ + 1166 + ], + "IDODOZoo": [ + 24 + ] + }, + "id": 1167, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:0" + }, + { + "id": 2, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:0" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol", + "file": "./lib/ReentrancyGuard.sol", + "id": 4, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 11297, + "src": "136:58:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3, + "name": "ReentrancyGuard", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:15:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "./lib/SafeERC20.sol", + "id": 6, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 11441, + "src": "195:46:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 5, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "203:9:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "./lib/SafeMath.sol", + "id": 8, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 11624, + "src": "242:44:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "250:8:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "file": "./intf/IDODO.sol", + "id": 10, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 10492, + "src": "287:39:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "295:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "./intf/IERC20.sol", + "id": 12, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 10608, + "src": "327:41:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "335:6:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IWETH.sol", + "file": "./intf/IWETH.sol", + "id": 14, + "nodeType": "ImportDirective", + "scope": 1167, + "sourceUnit": 10679, + "src": "369:39:0", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "377:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 24, + "linearizedBaseContracts": [ + 24 + ], + "name": "IDODOZoo", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "1273b0c6", + "id": 23, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getDODO", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 23, + "src": "452:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "452:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 23, + "src": "471:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "471:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "451:39:0" + }, + "returnParameters": { + "id": 22, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 23, + "src": "514:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "514:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "513:9:0" + }, + "scope": 24, + "src": "435:88:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 1167, + "src": "410:115:0" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 26, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11296, + "src": "661:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$11296", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 27, + "nodeType": "InheritanceSpecifier", + "src": "661:15:0" + } + ], + "contractDependencies": [ + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 25, + "nodeType": "StructuredDocumentation", + "src": "527:108:0", + "text": " @title DODO Eth Proxy\n @author DODO Breeder\n @notice Handle ETH-WETH converting for users." + }, + "fullyImplemented": true, + "id": 1166, + "linearizedBaseContracts": [ + 1166, + 11296 + ], + "name": "DODOEthProxy", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 30, + "libraryName": { + "contractScope": null, + "id": 28, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "689:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "683:27:0", + "typeName": { + "contractScope": null, + "id": 29, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "703:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "id": 33, + "libraryName": { + "contractScope": null, + "id": 31, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "721:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "715:27:0", + "typeName": { + "id": 32, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "734:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "39239f72", + "id": 35, + "mutability": "mutable", + "name": "_DODO_ZOO_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1166, + "src": "748:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "748:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0d4eec8f", + "id": 37, + "mutability": "mutable", + "name": "_WETH_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1166, + "src": "779:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 36, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "779:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 47, + "name": "ProxySellEthToToken", + "nodeType": "EventDefinition", + "parameters": { + "id": 46, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "891:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 38, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "891:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 41, + "indexed": true, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "923:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 40, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "923:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 43, + "indexed": false, + "mutability": "mutable", + "name": "payEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "959:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 42, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "959:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 45, + "indexed": false, + "mutability": "mutable", + "name": "receiveToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 47, + "src": "983:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "983:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "881:128:0" + }, + "src": "856:154:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 57, + "name": "ProxyBuyEthWithToken", + "nodeType": "EventDefinition", + "parameters": { + "id": 56, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "indexed": true, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1052:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 48, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1052:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 51, + "indexed": true, + "mutability": "mutable", + "name": "quoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1083:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 50, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1083:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 53, + "indexed": false, + "mutability": "mutable", + "name": "receiveEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1119:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 52, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1119:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "indexed": false, + "mutability": "mutable", + "name": "payToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 57, + "src": "1147:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 54, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1147:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1042:127:0" + }, + "src": "1016:154:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 67, + "name": "ProxySellTokenToEth", + "nodeType": "EventDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 59, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1211:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 58, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1211:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "indexed": true, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1243:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 60, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1243:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": false, + "mutability": "mutable", + "name": "payToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1278:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 62, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "receiveEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1304:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1304:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1201:127:0" + }, + "src": "1176:153:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 77, + "name": "ProxyBuyTokenWithEth", + "nodeType": "EventDefinition", + "parameters": { + "id": 76, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "indexed": true, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1371:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1371:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 71, + "indexed": true, + "mutability": "mutable", + "name": "baseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1402:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 70, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1402:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 73, + "indexed": false, + "mutability": "mutable", + "name": "receiveToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1437:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 72, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 75, + "indexed": false, + "mutability": "mutable", + "name": "payEth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 77, + "src": "1467:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 74, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1467:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1361:126:0" + }, + "src": "1335:153:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 85, + "name": "ProxyDepositEthAsBase", + "nodeType": "EventDefinition", + "parameters": { + "id": 84, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 85, + "src": "1522:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 78, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1522:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 81, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 85, + "src": "1542:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1542:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 83, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 85, + "src": "1564:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 82, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1564:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1521:61:0" + }, + "src": "1494:89:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 93, + "name": "ProxyWithdrawEthAsBase", + "nodeType": "EventDefinition", + "parameters": { + "id": 92, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 87, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 93, + "src": "1618:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 86, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1618:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 93, + "src": "1638:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 88, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1638:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 93, + "src": "1660:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1660:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1617:61:0" + }, + "src": "1589:90:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 101, + "name": "ProxyDepositEthAsQuote", + "nodeType": "EventDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 95, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "1714:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 94, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1714:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "1734:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 96, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1734:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "1756:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1756:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1713:61:0" + }, + "src": "1685:90:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 109, + "name": "ProxyWithdrawEthAsQuote", + "nodeType": "EventDefinition", + "parameters": { + "id": 108, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 103, + "indexed": true, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 109, + "src": "1811:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1811:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 105, + "indexed": true, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 109, + "src": "1831:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 104, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1831:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 107, + "indexed": false, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 109, + "src": "1853:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 106, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1853:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1810:61:0" + }, + "src": "1781:91:0" + }, + { + "body": { + "id": 124, + "nodeType": "Block", + "src": "1980:60:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 116, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "1990:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 117, + "name": "dodoZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 111, + "src": "2003:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1990:20:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 119, + "nodeType": "ExpressionStatement", + "src": "1990:20:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 120, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2020:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 121, + "name": "weth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 113, + "src": "2029:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2020:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 123, + "nodeType": "ExpressionStatement", + "src": "2020:13:0" + } + ] + }, + "documentation": null, + "id": 125, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 111, + "mutability": "mutable", + "name": "dodoZoo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "1934:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 110, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1934:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 113, + "mutability": "mutable", + "name": "weth", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "1951:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1951:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1933:39:0" + }, + "returnParameters": { + "id": 115, + "nodeType": "ParameterList", + "parameters": [], + "src": "1980:0:0" + }, + "scope": 1166, + "src": "1922:118:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 136, + "nodeType": "Block", + "src": "2074:70:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 129, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2092:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2092:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 131, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2106:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2092:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "57455f53415645445f594f55525f4554485f3a29", + "id": 133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2114:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + }, + "value": "WE_SAVED_YOUR_ETH_:)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + } + ], + "id": 128, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2084:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2084:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 135, + "nodeType": "ExpressionStatement", + "src": "2084:53:0" + } + ] + }, + "documentation": null, + "id": 137, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 126, + "nodeType": "ParameterList", + "parameters": [], + "src": "2054:2:0" + }, + "returnParameters": { + "id": 127, + "nodeType": "ParameterList", + "parameters": [], + "src": "2074:0:0" + }, + "scope": 1166, + "src": "2046:98:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 148, + "nodeType": "Block", + "src": "2177:70:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2195:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2195:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 143, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2209:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2195:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "57455f53415645445f594f55525f4554485f3a29", + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2217:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + }, + "value": "WE_SAVED_YOUR_ETH_:)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9018661e4ed999153ca4be95c265ddafe03fe302834ed23184dd715a8b0a018", + "typeString": "literal_string \"WE_SAVED_YOUR_ETH_:)\"" + } + ], + "id": 140, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2187:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 147, + "nodeType": "ExpressionStatement", + "src": "2187:53:0" + } + ] + }, + "documentation": null, + "id": 149, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 138, + "nodeType": "ParameterList", + "parameters": [], + "src": "2157:2:0" + }, + "returnParameters": { + "id": 139, + "nodeType": "ParameterList", + "parameters": [], + "src": "2177:0:0" + }, + "scope": 1166, + "src": "2150:97:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 234, + "nodeType": "Block", + "src": "2455:604:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 163, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2473:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2473:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 165, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2486:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2473:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2497:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2465:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2465:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 169, + "nodeType": "ExpressionStatement", + "src": "2465:55:0" + }, + { + "assignments": [ + 171 + ], + "declarations": [ + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 234, + "src": "2530:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2530:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 179, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 176, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2574:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 177, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2582:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 173, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "2554:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 172, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2545:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2545:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "2545:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2545:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2530:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 181, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2618:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2634:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2626:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2626:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2626:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2618:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2638:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 180, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2610:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2610:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 189, + "nodeType": "ExpressionStatement", + "src": "2610:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 191, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2671:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 190, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "2665:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2665:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "2665:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 194, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2694:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2665:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2665:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 197, + "nodeType": "ExpressionStatement", + "src": "2665:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 202, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2738:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 203, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2744:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 199, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "2722:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 198, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "2716:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2716:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "2716:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2716:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 205, + "nodeType": "ExpressionStatement", + "src": "2716:38:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 206, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2764:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 211, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2811:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 212, + "name": "minReceiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 155, + "src": "2822:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2845:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 208, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "2791:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 207, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "2785:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2785:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sellBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10396, + "src": "2785:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2785:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2764:84:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 216, + "nodeType": "ExpressionStatement", + "src": "2764:84:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 218, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2871:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 219, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2890:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2890:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 221, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2902:18:0", + "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": 217, + "name": "_transferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "2858:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2858:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 223, + "nodeType": "ExpressionStatement", + "src": "2858:63:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2956:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2956:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 227, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2968:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 228, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 153, + "src": "2987:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 229, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2998:18:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 224, + "name": "ProxySellEthToToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "2936:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2936:81:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 231, + "nodeType": "EmitStatement", + "src": "2931:86:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 232, + "name": "receiveTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "3034:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 161, + "id": 233, + "nodeType": "Return", + "src": "3027:25:0" + } + ] + }, + "documentation": null, + "functionSelector": "e5134628", + "id": 235, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 158, + "modifierName": { + "argumentTypes": null, + "id": 157, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "2401:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2401:16:0" + } + ], + "name": "sellEthToToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2286:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 153, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2321:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2321:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 155, + "mutability": "mutable", + "name": "minReceiveTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2348:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2348:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2276:107:0" + }, + "returnParameters": { + "id": 161, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 160, + "mutability": "mutable", + "name": "receiveTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 235, + "src": "2427:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2427:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2426:28:0" + }, + "scope": 1166, + "src": "2253:806:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 326, + "nodeType": "Block", + "src": "3252:621:0", + "statements": [ + { + "assignments": [ + 249 + ], + "declarations": [ + { + "constant": false, + "id": 249, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 326, + "src": "3262:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3262:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 257, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 254, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "3306:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 255, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3314:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 251, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "3286:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 250, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "3277:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3277:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "3277:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3277:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3262:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 259, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3350:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3366:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3358:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3358:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3358:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3350:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3370:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3342:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 267, + "nodeType": "ExpressionStatement", + "src": "3342:45:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 268, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3397:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 273, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3444:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 270, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3420:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 269, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "3414:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queryBuyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10421, + "src": "3414:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view external returns (uint256)" + } + }, + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3414:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3397:57:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 276, + "nodeType": "ExpressionStatement", + "src": "3397:57:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 278, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3476:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 279, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3495:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3495:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 281, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3507:14:0", + "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": 277, + "name": "_transferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "3464:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3464:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 283, + "nodeType": "ExpressionStatement", + "src": "3464:58:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 288, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3570:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 289, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3576:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 285, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3539:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 284, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "3532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3532:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeApprove", + "nodeType": "MemberAccess", + "referencedDeclaration": 11396, + "src": "3532:37:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3532:59:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 291, + "nodeType": "ExpressionStatement", + "src": "3532:59:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 296, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3626:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 297, + "name": "maxPayTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 241, + "src": "3637:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3656:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 293, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "3607:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 292, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "3601:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3601:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "buyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10407, + "src": "3601:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3601:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 300, + "nodeType": "ExpressionStatement", + "src": "3601:58:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 305, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3692:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 302, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "3675:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 301, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "3669:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3669:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "3669:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3669:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 307, + "nodeType": "ExpressionStatement", + "src": "3669:33:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 313, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3732:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 308, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3712:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3712:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3712:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3712:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 315, + "nodeType": "ExpressionStatement", + "src": "3712:30:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 317, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3778:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3778:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 319, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 237, + "src": "3790:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 320, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3809:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 321, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3820:14:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 316, + "name": "ProxyBuyEthWithToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 57, + "src": "3757:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3757:78:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 323, + "nodeType": "EmitStatement", + "src": "3752:83:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 324, + "name": "payTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 246, + "src": "3852:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 247, + "id": 325, + "nodeType": "Return", + "src": "3845:21:0" + } + ] + }, + "documentation": null, + "functionSelector": "e8d522bb", + "id": 327, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 244, + "modifierName": { + "argumentTypes": null, + "id": 243, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "3202:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3202:16:0" + } + ], + "name": "buyEthWithToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3099:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3099:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 239, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3134:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3134:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 241, + "mutability": "mutable", + "name": "maxPayTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3161:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3161:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3089:103:0" + }, + "returnParameters": { + "id": 247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 246, + "mutability": "mutable", + "name": "payTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 327, + "src": "3228:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3228:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3227:24:0" + }, + "scope": 1166, + "src": "3065:808:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 411, + "nodeType": "Block", + "src": "4070:587:0", + "statements": [ + { + "assignments": [ + 341 + ], + "declarations": [ + { + "constant": false, + "id": 341, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 411, + "src": "4080:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4080:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 349, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 346, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4124:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 347, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4142:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 343, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "4104:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 342, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "4095:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "4095:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4080:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 351, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "4167:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4183:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4175:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 352, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4175:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4175:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4167:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4187:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4159:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4159:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 359, + "nodeType": "ExpressionStatement", + "src": "4159:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 364, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "4251:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 365, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4257:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 361, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4221:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 360, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "4214:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4214:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeApprove", + "nodeType": "MemberAccess", + "referencedDeclaration": 11396, + "src": "4214:36:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4214:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 367, + "nodeType": "ExpressionStatement", + "src": "4214:55:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 369, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4291:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 370, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4309:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4309:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 372, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4321:11:0", + "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": 368, + "name": "_transferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1147, + "src": "4279:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4279:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 374, + "nodeType": "ExpressionStatement", + "src": "4279:54:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 375, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4343:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 380, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4388:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 381, + "name": "minReceiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 333, + "src": "4401:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4422:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 377, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 341, + "src": "4368:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 376, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "4362:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4362:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sellBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10396, + "src": "4362:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4362:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4343:82:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 385, + "nodeType": "ExpressionStatement", + "src": "4343:82:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 390, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4458:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 387, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4441:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 386, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "4435:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4435:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "4435:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4435:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 392, + "nodeType": "ExpressionStatement", + "src": "4435:40:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 398, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4505:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4485:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4485:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4485:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4485:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 400, + "nodeType": "ExpressionStatement", + "src": "4485:37:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 402, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4557:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4557:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 404, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 329, + "src": "4569:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 405, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 331, + "src": "4587:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 406, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4600:16:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 401, + "name": "ProxySellTokenToEth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "4537:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4537:80:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 408, + "nodeType": "EmitStatement", + "src": "4532:85:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 409, + "name": "receiveEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4634:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 339, + "id": 410, + "nodeType": "Return", + "src": "4627:23:0" + } + ] + }, + "documentation": null, + "functionSelector": "d668e026", + "id": 412, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 336, + "modifierName": { + "argumentTypes": null, + "id": 335, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "4018:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4018:16:0" + } + ], + "name": "sellTokenToEth", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "3912:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 328, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3912:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "mutability": "mutable", + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "3946:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3946:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 333, + "mutability": "mutable", + "name": "minReceiveEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "3975:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 332, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3975:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3902:106:0" + }, + "returnParameters": { + "id": 339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "receiveEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 412, + "src": "4044:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 337, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4044:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4043:26:0" + }, + "scope": 1166, + "src": "3879:778:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 524, + "nodeType": "Block", + "src": "4855:775:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 426, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4873:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4873:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 428, + "name": "maxPayEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "4886:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4873:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4903:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 425, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4865:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4865:61:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 432, + "nodeType": "ExpressionStatement", + "src": "4865:61:0" + }, + { + "assignments": [ + 434 + ], + "declarations": [ + { + "constant": false, + "id": 434, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 524, + "src": "4936:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 433, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4936:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 442, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 439, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "4980:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 440, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "4998:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 436, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "4960:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 435, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "4951:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4951:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "4951:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4951:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4936:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 444, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5023:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5039:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5031:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 445, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5031:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5031:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5023:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5043:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 443, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5015:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5015:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 452, + "nodeType": "ExpressionStatement", + "src": "5015:45:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 453, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5070:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 458, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5115:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 455, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5091:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 454, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "5085:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5085:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "queryBuyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10421, + "src": "5085:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view external returns (uint256)" + } + }, + "id": 459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5085:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5070:57:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 461, + "nodeType": "ExpressionStatement", + "src": "5070:57:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 463, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5143:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 462, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "5137:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5137:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "5137:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 466, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5166:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5137:42:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5137:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 469, + "nodeType": "ExpressionStatement", + "src": "5137:44:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 474, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5213:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 475, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5219:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 471, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5197:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 470, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "5191:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5191:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "5191:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5191:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 477, + "nodeType": "ExpressionStatement", + "src": "5191:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 482, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5267:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 483, + "name": "maxPayEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "5280:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5297:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 479, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "5248:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 478, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "5242:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5242:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "buyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10407, + "src": "5242:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5242:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 486, + "nodeType": "ExpressionStatement", + "src": "5242:58:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 488, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "5323:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 489, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5341:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5341:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 491, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5353:11:0", + "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": 487, + "name": "_transferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1165, + "src": "5310:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5310:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 493, + "nodeType": "ExpressionStatement", + "src": "5310:55:0" + }, + { + "assignments": [ + 495 + ], + "declarations": [ + { + "constant": false, + "id": 495, + "mutability": "mutable", + "name": "refund", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 524, + "src": "5375:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5375:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 500, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 498, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5412:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 496, + "name": "maxPayEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "5392:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5392:19:0", + "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": 499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5392:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5375:50:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 501, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "5439:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5448:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5439:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 513, + "nodeType": "IfStatement", + "src": "5435:68:0", + "trueBody": { + "id": 512, + "nodeType": "Block", + "src": "5451:52:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 509, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "5485:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 504, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5465:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5465:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5465:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5465:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 511, + "nodeType": "ExpressionStatement", + "src": "5465:27:0" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 515, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5538:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5538:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 517, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 414, + "src": "5550:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 518, + "name": "tokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5568:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 519, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5581:12:0", + "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" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 514, + "name": "ProxyBuyTokenWithEth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "5517:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5517:77:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 521, + "nodeType": "EmitStatement", + "src": "5512:82:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 522, + "name": "payEthAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 423, + "src": "5611:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 424, + "id": 523, + "nodeType": "Return", + "src": "5604:19:0" + } + ] + }, + "documentation": null, + "functionSelector": "33e00053", + "id": 525, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 421, + "modifierName": { + "argumentTypes": null, + "id": 420, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "4807:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4807:16:0" + } + ], + "name": "buyTokenWithEth", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 414, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4697:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 413, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4697:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 416, + "mutability": "mutable", + "name": "tokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4731:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4731:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 418, + "mutability": "mutable", + "name": "maxPayEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4760:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 417, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4760:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4687:102:0" + }, + "returnParameters": { + "id": 424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 423, + "mutability": "mutable", + "name": "payEthAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 525, + "src": "4833:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4833:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4832:22:0" + }, + "scope": 1166, + "src": "4663:967:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 594, + "nodeType": "Block", + "src": "5770:429:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 535, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5788:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5788:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 537, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "5801:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5788:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5812:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 534, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5780:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5780:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 541, + "nodeType": "ExpressionStatement", + "src": "5780:55:0" + }, + { + "assignments": [ + 543 + ], + "declarations": [ + { + "constant": false, + "id": 543, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 594, + "src": "5845:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 542, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5845:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 551, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 548, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5889:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 549, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "5897:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 545, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "5869:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 544, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "5860:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5860:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "5860:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5860:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5845:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 553, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "5933:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5949:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5941:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 554, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5941:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5941:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5933:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5953:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 552, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5925:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5925:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 561, + "nodeType": "ExpressionStatement", + "src": "5925:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 563, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "5986:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 562, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "5980:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5980:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "5980:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 566, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6009:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5980:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5980:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 569, + "nodeType": "ExpressionStatement", + "src": "5980:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 574, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "6053:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 575, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6059:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 571, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "6037:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 570, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "6031:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6031:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "6031:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6031:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 577, + "nodeType": "ExpressionStatement", + "src": "6031:38:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 582, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6105:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6105:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 584, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6117:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 579, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "6085:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 578, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "6079:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6079:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "depositBaseTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 10437, + "src": "6079:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) external returns (uint256)" + } + }, + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6079:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 586, + "nodeType": "ExpressionStatement", + "src": "6079:48:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 588, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6164:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6164:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 590, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 543, + "src": "6176:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 591, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 527, + "src": "6182:9:0", + "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": 587, + "name": "ProxyDepositEthAsBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 85, + "src": "6142:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6142:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 593, + "nodeType": "EmitStatement", + "src": "6137:55:0" + } + ] + }, + "documentation": null, + "functionSelector": "b56a1d03", + "id": 595, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 532, + "modifierName": { + "argumentTypes": null, + "id": 531, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "5749:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5749:16:0" + } + ], + "name": "depositEthAsBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 527, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 595, + "src": "5662:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 526, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5662:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 595, + "src": "5681:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5681:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5661:46:0" + }, + "returnParameters": { + "id": 533, + "nodeType": "ParameterList", + "parameters": [], + "src": "5770:0:0" + }, + "scope": 1166, + "src": "5636:563:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 721, + "nodeType": "Block", + "src": "6365:1029:0", + "statements": [ + { + "assignments": [ + 607 + ], + "declarations": [ + { + "constant": false, + "id": 607, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "6375:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6375:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 615, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 612, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "6419:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 613, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "6427:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 609, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "6399:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 608, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "6390:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6390:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "6390:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6390:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6375:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 617, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "6463:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6479:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6471:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6471:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6471:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6463:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6483:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 616, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6455:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6455:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 625, + "nodeType": "ExpressionStatement", + "src": "6455:45:0" + }, + { + "assignments": [ + 627 + ], + "declarations": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "6510:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6510:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 633, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 629, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "6537:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 628, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "6531:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6531:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10475, + "src": "6531:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6531:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6510:55:0" + }, + { + "assignments": [ + 635 + ], + "declarations": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "6621:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6621:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 643, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 640, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6670:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6670:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 637, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6648:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 636, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6641:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "6641:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6641:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6621:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 648, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6723:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6723:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 652, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6743:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6735:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6735:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 654, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "6750:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 645, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6698:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 644, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6691:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6691:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "6691:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6691:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 656, + "nodeType": "ExpressionStatement", + "src": "6691:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 661, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "6795:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 658, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "6776:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 657, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "6770:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6770:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 10444, + "src": "6770:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) external returns (uint256)" + } + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6770:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 663, + "nodeType": "ExpressionStatement", + "src": "6770:35:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 664, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "6869:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 671, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "6918:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6910:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6910:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6910:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 666, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6888:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 665, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6881:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6881:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "6881:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6881:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6869:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 675, + "nodeType": "ExpressionStatement", + "src": "6869:55:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 680, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6962:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6962:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 682, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "6974:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 677, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 627, + "src": "6941:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 676, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "6934:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6934:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "6934:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6934:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 684, + "nodeType": "ExpressionStatement", + "src": "6934:50:0" + }, + { + "assignments": [ + 686 + ], + "declarations": [ + { + "constant": false, + "id": 686, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 721, + "src": "7148:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7148:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 696, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 693, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7202:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7194:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7194:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7194:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 688, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "7176:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 687, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7169:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7169:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "7169:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7169:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7148:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 701, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7241:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 698, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "7224:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 697, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "7218:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7218:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "7218:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7218:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 703, + "nodeType": "ExpressionStatement", + "src": "7218:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 709, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7282:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 704, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7262:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7262:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7262:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7262:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 711, + "nodeType": "ExpressionStatement", + "src": "7262:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 713, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7331:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7331:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 715, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "7343:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 716, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7349:10:0", + "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": 712, + "name": "ProxyWithdrawEthAsBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "7308:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 718, + "nodeType": "EmitStatement", + "src": "7303:57:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 719, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 686, + "src": "7377:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 605, + "id": 720, + "nodeType": "Return", + "src": "7370:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "827df194", + "id": 722, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 602, + "modifierName": { + "argumentTypes": null, + "id": 601, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "6303:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6303:16:0" + } + ], + "name": "withdrawEthAsBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 600, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 597, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 722, + "src": "6232:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6232:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 722, + "src": "6251:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6251:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6231:46:0" + }, + "returnParameters": { + "id": 605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 604, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 722, + "src": "6337:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6337:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6336:24:0" + }, + "scope": 1166, + "src": "6205:1189:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 824, + "nodeType": "Block", + "src": "7544:844:0", + "statements": [ + { + "assignments": [ + 732 + ], + "declarations": [ + { + "constant": false, + "id": 732, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "7554:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7554:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 740, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 737, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "7598:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 738, + "name": "quoteTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 724, + "src": "7606:17:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 734, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "7578:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 733, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "7569:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7569:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "7569:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7569:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7554:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 742, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "7642:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7658:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7650:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 743, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7650:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7650:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7642:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7662:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 741, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7634:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 750, + "nodeType": "ExpressionStatement", + "src": "7634:45:0" + }, + { + "assignments": [ + 752 + ], + "declarations": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "7689:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7689:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 758, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 754, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "7716:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 753, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "7710:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7710:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10475, + "src": "7710:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7710:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7689:55:0" + }, + { + "assignments": [ + 760 + ], + "declarations": [ + { + "constant": false, + "id": 760, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "7800:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7800:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 768, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7849:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7849:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 762, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "7827:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 761, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7820:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7820:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "7820:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7820:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7800:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 773, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7902:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7902:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 777, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "7922:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7914:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7914:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7914:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 779, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 760, + "src": "7929:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 770, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "7877:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 769, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "7870:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7870:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "7870:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7870:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 781, + "nodeType": "ExpressionStatement", + "src": "7870:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 783, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "7955:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 782, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "7949:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7949:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawAllBase", + "nodeType": "MemberAccess", + "referencedDeclaration": 10449, + "src": "7949:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7949:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 787, + "nodeType": "ExpressionStatement", + "src": "7949:29:0" + }, + { + "assignments": [ + 789 + ], + "declarations": [ + { + "constant": false, + "id": 789, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 824, + "src": "8142:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8142:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 799, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 796, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "8196:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8188:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 794, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8188:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8188:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 791, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8170:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 790, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "8163:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8163:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "8163:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8163:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8142:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 804, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8235:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 801, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8218:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 800, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "8212:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8212:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "8212:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8212:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 806, + "nodeType": "ExpressionStatement", + "src": "8212:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 812, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8276:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 807, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8256:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8256:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8256:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8256:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 814, + "nodeType": "ExpressionStatement", + "src": "8256:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 816, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8325:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8325:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 818, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 732, + "src": "8337:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 819, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8343:10:0", + "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": 815, + "name": "ProxyWithdrawEthAsBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "8302:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8302:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 821, + "nodeType": "EmitStatement", + "src": "8297:57:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 822, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "8371:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 730, + "id": 823, + "nodeType": "Return", + "src": "8364:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "0ae4b86d", + "id": 825, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 727, + "modifierName": { + "argumentTypes": null, + "id": 726, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "7482:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7482:16:0" + } + ], + "name": "withdrawAllEthAsBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 725, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "quoteTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 825, + "src": "7430:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7430:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7429:27:0" + }, + "returnParameters": { + "id": 730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 729, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 825, + "src": "7516:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 728, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7516:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7515:24:0" + }, + "scope": 1166, + "src": "7400:988:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 894, + "nodeType": "Block", + "src": "8528:430:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 835, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8546:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8546:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 837, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8559:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8546:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4554485f414d4f554e545f4e4f545f4d41544348", + "id": 839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8570:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + }, + "value": "ETH_AMOUNT_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5408d254f1034e2da4b0c813291506a8b1ca7462c38bae84bb9341f9e49201b", + "typeString": "literal_string \"ETH_AMOUNT_NOT_MATCH\"" + } + ], + "id": 834, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8538:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8538:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 841, + "nodeType": "ExpressionStatement", + "src": "8538:55:0" + }, + { + "assignments": [ + 843 + ], + "declarations": [ + { + "constant": false, + "id": 843, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 894, + "src": "8603:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 842, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8603:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 851, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 848, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "8647:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 849, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8665:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 845, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "8627:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 844, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "8618:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8618:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "8618:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8618:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8603:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 853, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8690:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8706:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8698:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8698:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8698:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8690:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8710:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 852, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8682:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8682:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 861, + "nodeType": "ExpressionStatement", + "src": "8682:45:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 863, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8743:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 862, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "8737:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8737:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "deposit", + "nodeType": "MemberAccess", + "referencedDeclaration": 10672, + "src": "8737:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$", + "typeString": "function () payable external" + } + }, + "id": 867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "id": 866, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8766:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "8737:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$__$returns$__$value", + "typeString": "function () payable external" + } + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8737:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 869, + "nodeType": "ExpressionStatement", + "src": "8737:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 874, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8810:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 875, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8816:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 871, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "8794:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 870, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "8788:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8788:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10658, + "src": "8788:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8788:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 877, + "nodeType": "ExpressionStatement", + "src": "8788:38:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 882, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8863:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8863:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 884, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8875:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 879, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8842:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 878, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "8836:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8836:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "depositQuoteTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 10458, + "src": "8836:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) external returns (uint256)" + } + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8836:49:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 886, + "nodeType": "ExpressionStatement", + "src": "8836:49:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 888, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8923:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8923:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 890, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "8935:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 891, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 827, + "src": "8941:9:0", + "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": 887, + "name": "ProxyDepositEthAsQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "8900:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8900:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 893, + "nodeType": "EmitStatement", + "src": "8895:56:0" + } + ] + }, + "documentation": null, + "functionSelector": "ba9344a4", + "id": 895, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 832, + "modifierName": { + "argumentTypes": null, + "id": 831, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "8507:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8507:16:0" + } + ], + "name": "depositEthAsQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 827, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 895, + "src": "8421:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 826, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8421:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 895, + "src": "8440:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8440:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8420:45:0" + }, + "returnParameters": { + "id": 833, + "nodeType": "ParameterList", + "parameters": [], + "src": "8528:0:0" + }, + "scope": 1166, + "src": "8394:564:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1021, + "nodeType": "Block", + "src": "9124:1031:0", + "statements": [ + { + "assignments": [ + 907 + ], + "declarations": [ + { + "constant": false, + "id": 907, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9134:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 906, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9134:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 915, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 912, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 899, + "src": "9178:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 913, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "9196:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 909, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "9158:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 908, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "9149:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9149:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "9149:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9149:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9134:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 917, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9221:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9237:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9229:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9229:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9229:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9221:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9241:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 916, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9213:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9213:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 925, + "nodeType": "ExpressionStatement", + "src": "9213:45:0" + }, + { + "assignments": [ + 927 + ], + "declarations": [ + { + "constant": false, + "id": 927, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9268:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 926, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9268:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 933, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 929, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9295:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 928, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "9289:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9289:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10480, + "src": "9289:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9289:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9268:56:0" + }, + { + "assignments": [ + 935 + ], + "declarations": [ + { + "constant": false, + "id": 935, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9380:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 934, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9380:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 943, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 940, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9429:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9429:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 937, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9407:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 936, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9400:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9400:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "9400:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9400:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9380:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 948, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9482:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9482:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 952, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9502:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9494:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9494:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 954, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "9509:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 945, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9457:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 944, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9450:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9450:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "9450:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9450:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 956, + "nodeType": "ExpressionStatement", + "src": "9450:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 961, + "name": "ethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 897, + "src": "9555:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 958, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9535:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 957, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "9529:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9529:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawQuote", + "nodeType": "MemberAccess", + "referencedDeclaration": 10465, + "src": "9529:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) external returns (uint256)" + } + }, + "id": 962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9529:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 963, + "nodeType": "ExpressionStatement", + "src": "9529:36:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 964, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "9629:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 971, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9678:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9670:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 969, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9670:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9670:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 966, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9648:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 965, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9641:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "9641:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9641:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9629:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 975, + "nodeType": "ExpressionStatement", + "src": "9629:55:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 980, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9722:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9722:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 982, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "9734:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 977, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "9701:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 976, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9694:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9694:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "9694:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9694:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 984, + "nodeType": "ExpressionStatement", + "src": "9694:50:0" + }, + { + "assignments": [ + 986 + ], + "declarations": [ + { + "constant": false, + "id": 986, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1021, + "src": "9908:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 985, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9908:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 996, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 993, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "9962:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9954:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9954:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9954:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 988, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "9936:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 987, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "9929:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9929:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "9929:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9929:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9908:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1001, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10001:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 998, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "9984:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 997, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "9978:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9978:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "9978:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 1002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9978:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1003, + "nodeType": "ExpressionStatement", + "src": "9978:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1009, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10042:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1004, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10022:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10022:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10022:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10022:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1011, + "nodeType": "ExpressionStatement", + "src": "10022:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1013, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10092:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10092:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1015, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "10104:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1016, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10110:10:0", + "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": 1012, + "name": "ProxyWithdrawEthAsQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "10068:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10068:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1018, + "nodeType": "EmitStatement", + "src": "10063:58:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 1019, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 986, + "src": "10138:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 905, + "id": 1020, + "nodeType": "Return", + "src": "10131:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "770e96d3", + "id": 1022, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 902, + "modifierName": { + "argumentTypes": null, + "id": 901, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "9062:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9062:16:0" + } + ], + "name": "withdrawEthAsQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 897, + "mutability": "mutable", + "name": "ethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1022, + "src": "8992:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8992:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 899, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1022, + "src": "9011:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 898, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9011:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8991:45:0" + }, + "returnParameters": { + "id": 905, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 904, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1022, + "src": "9096:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 903, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9096:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9095:24:0" + }, + "scope": 1166, + "src": "8964:1191:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1124, + "nodeType": "Block", + "src": "10305:846:0", + "statements": [ + { + "assignments": [ + 1032 + ], + "declarations": [ + { + "constant": false, + "id": 1032, + "mutability": "mutable", + "name": "DODO", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10315:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1031, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10315:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1040, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1037, + "name": "baseTokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1024, + "src": "10359:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1038, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "10377:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1034, + "name": "_DODO_ZOO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "10339:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1033, + "name": "IDODOZoo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "10330:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOZoo_$24_$", + "typeString": "type(contract IDODOZoo)" + } + }, + "id": 1035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10330:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOZoo_$24", + "typeString": "contract IDODOZoo" + } + }, + "id": 1036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getDODO", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "10330:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_address_$", + "typeString": "function (address,address) view external returns (address)" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10330:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10315:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1042, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "10402:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10418:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10410:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10410:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10410:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10402:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f4558495354", + "id": 1048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10422:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + }, + "value": "DODO_NOT_EXIST" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1202b9edb667d72ea1db71fc4d3e81f26725f87fc79284471896f8edc4841ba9", + "typeString": "literal_string \"DODO_NOT_EXIST\"" + } + ], + "id": 1041, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10394:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10394:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1050, + "nodeType": "ExpressionStatement", + "src": "10394:45:0" + }, + { + "assignments": [ + 1052 + ], + "declarations": [ + { + "constant": false, + "id": 1052, + "mutability": "mutable", + "name": "ethLpToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10449:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10449:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1058, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1054, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "10476:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1053, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "10470:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10470:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10480, + "src": "10470:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10470:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10449:56:0" + }, + { + "assignments": [ + 1060 + ], + "declarations": [ + { + "constant": false, + "id": 1060, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10561:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10561:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1068, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1065, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10610:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10610:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1062, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1052, + "src": "10588:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1061, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10581:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10581:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "10581:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10581:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10561:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1073, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10663:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10663:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1077, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "10683:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10675:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1075, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10675:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10675:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1079, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1060, + "src": "10690:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1070, + "name": "ethLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1052, + "src": "10638:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1069, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10631:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10631:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "10631:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 1080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10631:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1081, + "nodeType": "ExpressionStatement", + "src": "10631:69:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1083, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "10716:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1082, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "10710:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10710:11:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawAllQuote", + "nodeType": "MemberAccess", + "referencedDeclaration": 10470, + "src": "10710:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () external returns (uint256)" + } + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10710:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1087, + "nodeType": "ExpressionStatement", + "src": "10710:30:0" + }, + { + "assignments": [ + 1089 + ], + "declarations": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "wethAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1124, + "src": "10904:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10904:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1099, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1096, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "10958:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10950:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1094, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10950:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10950:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1091, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "10932:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1090, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "10925:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10925:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "10925:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10925:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10904:60:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1104, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "10997:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1101, + "name": "_WETH_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "10980:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 1100, + "name": "IWETH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10678, + "src": "10974:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IWETH_$10678_$", + "typeString": "type(contract IWETH)" + } + }, + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10974:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IWETH_$10678", + "typeString": "contract IWETH" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 10677, + "src": "10974:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 1105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10974:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1106, + "nodeType": "ExpressionStatement", + "src": "10974:34:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1112, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "11038:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1107, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11018:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11018:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11018:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11018:31:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1114, + "nodeType": "ExpressionStatement", + "src": "11018:31:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1116, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "11088:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11088:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1118, + "name": "DODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1032, + "src": "11100:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1119, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "11106:10:0", + "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": 1115, + "name": "ProxyWithdrawEthAsQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 109, + "src": "11064:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11064:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1121, + "nodeType": "EmitStatement", + "src": "11059:58:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 1122, + "name": "wethAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "11134:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1030, + "id": 1123, + "nodeType": "Return", + "src": "11127:17:0" + } + ] + }, + "documentation": null, + "functionSelector": "3cff9b56", + "id": 1125, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1027, + "modifierName": { + "argumentTypes": null, + "id": 1026, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "10243:16:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10243:16:0" + } + ], + "name": "withdrawAllEthAsQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1024, + "mutability": "mutable", + "name": "baseTokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1125, + "src": "10192:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1023, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10192:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10191:26:0" + }, + "returnParameters": { + "id": 1030, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1029, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1125, + "src": "10277:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1028, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10277:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10276:24:0" + }, + "scope": 1166, + "src": "10161:990:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1146, + "nodeType": "Block", + "src": "11320:83:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1138, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1129, + "src": "11368:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1141, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "11382:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_DODOEthProxy_$1166", + "typeString": "contract DODOEthProxy" + } + ], + "id": 1140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11374:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11374:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1143, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1131, + "src": "11389:6:0", + "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" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1135, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1127, + "src": "11337:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1134, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "11330:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11330:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11354, + "src": "11330:37:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11330:66:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1145, + "nodeType": "ExpressionStatement", + "src": "11330:66:0" + } + ] + }, + "documentation": null, + "id": 1147, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferIn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1127, + "mutability": "mutable", + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1147, + "src": "11238:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11238:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1129, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1147, + "src": "11268:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11268:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1131, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1147, + "src": "11290:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11290:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11228:82:0" + }, + "returnParameters": { + "id": 1133, + "nodeType": "ParameterList", + "parameters": [], + "src": "11320:0:0" + }, + "scope": 1166, + "src": "11208:195:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1164, + "nodeType": "Block", + "src": "11520:62:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1151, + "src": "11564:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1161, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "11568:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1157, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1149, + "src": "11537:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1156, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "11530:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11530:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 1159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "11530:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11530:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1163, + "nodeType": "ExpressionStatement", + "src": "11530:45:0" + } + ] + }, + "documentation": null, + "id": 1165, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOut", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1154, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1149, + "mutability": "mutable", + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1165, + "src": "11440:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1148, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11440:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1151, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1165, + "src": "11470:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11470:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1153, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1165, + "src": "11490:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11490:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11430:80:0" + }, + "returnParameters": { + "id": 1155, + "nodeType": "ParameterList", + "parameters": [], + "src": "11520:0:0" + }, + "scope": 1166, + "src": "11409:173:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1167, + "src": "636:10948:0" + } + ], + "src": "78:11507:0" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.463Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IERC20.json b/build-v1/contracts/IERC20.json new file mode 100644 index 0000000..2f1afaf --- /dev/null +++ b/build-v1/contracts/IERC20.json @@ -0,0 +1,1889 @@ +{ + "contractName": "IERC20", + "abi": [ + { + "inputs": [], + "name": "totalSupply", + "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": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "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": "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": "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": "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" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"name\",\"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\":\"Interface of the ERC20 standard as defined in the EIP.\",\"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.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "// This is a file copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol\n// SPDX-License-Identifier: MIT\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n function decimals() external view returns (uint8);\n\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `recipient`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address recipient, uint256 amount) external returns (bool);\n\n /**\n * @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 *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\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 *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `sender` to `recipient` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(\n address sender,\n address recipient,\n uint256 amount\n ) external returns (bool);\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 10607 + ] + }, + "id": 10608, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10538, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "163:22:32" + }, + { + "id": 10539, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "186:33:32" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 10540, + "nodeType": "StructuredDocumentation", + "src": "221:70:32", + "text": " @dev Interface of the ERC20 standard as defined in the EIP." + }, + "fullyImplemented": false, + "id": 10607, + "linearizedBaseContracts": [ + 10607 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": { + "id": 10541, + "nodeType": "StructuredDocumentation", + "src": "315:66:32", + "text": " @dev Returns the amount of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 10546, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10542, + "nodeType": "ParameterList", + "parameters": [], + "src": "406:2:32" + }, + "returnParameters": { + "id": 10545, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10544, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10546, + "src": "432:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "432:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "431:9:32" + }, + "scope": 10607, + "src": "386:55:32", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 10551, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10547, + "nodeType": "ParameterList", + "parameters": [], + "src": "464:2:32" + }, + "returnParameters": { + "id": 10550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10549, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10551, + "src": "490:5:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 10548, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "490:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "489:7:32" + }, + "scope": 10607, + "src": "447:50:32", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 10556, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10552, + "nodeType": "ParameterList", + "parameters": [], + "src": "516:2:32" + }, + "returnParameters": { + "id": 10555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10554, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10556, + "src": "542:13:32", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 10553, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "542:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "541:15:32" + }, + "scope": 10607, + "src": "503:54:32", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": { + "id": 10557, + "nodeType": "StructuredDocumentation", + "src": "563:72:32", + "text": " @dev Returns the amount of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 10564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10559, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10564, + "src": "659:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "659:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "658:17:32" + }, + "returnParameters": { + "id": 10563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10564, + "src": "699:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "699:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "698:9:32" + }, + "scope": 10607, + "src": "640:68:32", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": { + "id": 10565, + "nodeType": "StructuredDocumentation", + "src": "714:209:32", + "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", + "id": 10574, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10567, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10574, + "src": "946:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10566, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "946:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10569, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10574, + "src": "965:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10568, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "965:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "945:35:32" + }, + "returnParameters": { + "id": 10573, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10572, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10574, + "src": "999:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10571, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "999:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "998:6:32" + }, + "scope": 10607, + "src": "928:77:32", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": { + "id": 10575, + "nodeType": "StructuredDocumentation", + "src": "1011:264:32", + "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", + "id": 10584, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10577, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10584, + "src": "1299:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1299:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10579, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10584, + "src": "1314:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10578, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1314:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1298:32:32" + }, + "returnParameters": { + "id": 10583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10582, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10584, + "src": "1354:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10581, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1354:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1353:9:32" + }, + "scope": 10607, + "src": "1280:83:32", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": { + "id": 10585, + "nodeType": "StructuredDocumentation", + "src": "1369:642:32", + "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", + "id": 10594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10587, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10594, + "src": "2033:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2033:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10589, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10594, + "src": "2050:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10588, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2050:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2032:33:32" + }, + "returnParameters": { + "id": 10593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10592, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10594, + "src": "2084:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10591, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2084:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2083:6:32" + }, + "scope": 10607, + "src": "2016:74:32", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": { + "id": 10595, + "nodeType": "StructuredDocumentation", + "src": "2096:296:32", + "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", + "id": 10606, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10597, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10606, + "src": "2428:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2428:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10599, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10606, + "src": "2452:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2452:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10601, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10606, + "src": "2479:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2479:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2418:81:32" + }, + "returnParameters": { + "id": 10605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10604, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10606, + "src": "2518:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10603, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2518:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2517:6:32" + }, + "scope": 10607, + "src": "2397:127:32", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 10608, + "src": "292:2234:32" + } + ], + "src": "163:2364:32" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 10607 + ] + }, + "id": 10608, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10538, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "163:22:32" + }, + { + "id": 10539, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "186:33:32" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 10540, + "nodeType": "StructuredDocumentation", + "src": "221:70:32", + "text": " @dev Interface of the ERC20 standard as defined in the EIP." + }, + "fullyImplemented": false, + "id": 10607, + "linearizedBaseContracts": [ + 10607 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": { + "id": 10541, + "nodeType": "StructuredDocumentation", + "src": "315:66:32", + "text": " @dev Returns the amount of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 10546, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10542, + "nodeType": "ParameterList", + "parameters": [], + "src": "406:2:32" + }, + "returnParameters": { + "id": 10545, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10544, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10546, + "src": "432:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "432:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "431:9:32" + }, + "scope": 10607, + "src": "386:55:32", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 10551, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10547, + "nodeType": "ParameterList", + "parameters": [], + "src": "464:2:32" + }, + "returnParameters": { + "id": 10550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10549, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10551, + "src": "490:5:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 10548, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "490:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "489:7:32" + }, + "scope": 10607, + "src": "447:50:32", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 10556, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10552, + "nodeType": "ParameterList", + "parameters": [], + "src": "516:2:32" + }, + "returnParameters": { + "id": 10555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10554, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10556, + "src": "542:13:32", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 10553, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "542:6:32", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "541:15:32" + }, + "scope": 10607, + "src": "503:54:32", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": { + "id": 10557, + "nodeType": "StructuredDocumentation", + "src": "563:72:32", + "text": " @dev Returns the amount of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 10564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10559, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10564, + "src": "659:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "659:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "658:17:32" + }, + "returnParameters": { + "id": 10563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10564, + "src": "699:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "699:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "698:9:32" + }, + "scope": 10607, + "src": "640:68:32", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": { + "id": 10565, + "nodeType": "StructuredDocumentation", + "src": "714:209:32", + "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", + "id": 10574, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10567, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10574, + "src": "946:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10566, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "946:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10569, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10574, + "src": "965:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10568, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "965:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "945:35:32" + }, + "returnParameters": { + "id": 10573, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10572, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10574, + "src": "999:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10571, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "999:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "998:6:32" + }, + "scope": 10607, + "src": "928:77:32", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": { + "id": 10575, + "nodeType": "StructuredDocumentation", + "src": "1011:264:32", + "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", + "id": 10584, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10577, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10584, + "src": "1299:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10576, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1299:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10579, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10584, + "src": "1314:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10578, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1314:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1298:32:32" + }, + "returnParameters": { + "id": 10583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10582, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10584, + "src": "1354:7:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10581, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1354:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1353:9:32" + }, + "scope": 10607, + "src": "1280:83:32", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": { + "id": 10585, + "nodeType": "StructuredDocumentation", + "src": "1369:642:32", + "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", + "id": 10594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10587, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10594, + "src": "2033:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2033:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10589, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10594, + "src": "2050:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10588, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2050:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2032:33:32" + }, + "returnParameters": { + "id": 10593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10592, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10594, + "src": "2084:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10591, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2084:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2083:6:32" + }, + "scope": 10607, + "src": "2016:74:32", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": { + "id": 10595, + "nodeType": "StructuredDocumentation", + "src": "2096:296:32", + "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", + "id": 10606, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10597, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10606, + "src": "2428:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10596, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2428:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10599, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10606, + "src": "2452:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10598, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2452:7:32", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10601, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10606, + "src": "2479:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2479:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2418:81:32" + }, + "returnParameters": { + "id": 10605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10604, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10606, + "src": "2518:4:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10603, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2518:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2517:6:32" + }, + "scope": 10607, + "src": "2397:127:32", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 10608, + "src": "292:2234:32" + } + ], + "src": "163:2364:32" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.551Z", + "devdoc": { + "details": "Interface of the ERC20 standard as defined in the EIP.", + "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." + } + } + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IMinimumOracle.json b/build-v1/contracts/IMinimumOracle.json new file mode 100644 index 0000000..2af3af3 --- /dev/null +++ b/build-v1/contracts/IMinimumOracle.json @@ -0,0 +1,2743 @@ +{ + "contractName": "IMinimumOracle", + "abi": [ + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "newPrice", + "type": "uint256" + } + ], + "name": "setPrice", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"setPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MinimumOracle.sol\":\"IMinimumOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MinimumOracle.sol\":{\"keccak256\":\"0x66ac490e135af4b70e2d0df8b0872480c964221e225ece8301e06f334d040a9c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://adc9b73a0b2586f440355ed94761cdd0c891a1fa0effcd267dd1f4fbedb6bb75\",\"dweb:/ipfs/QmSaYizENPPjsWDGeDLj1ntRW9zomfVwbfJUgRBCY9yQky\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IMinimumOracle {\n function getPrice() external view returns (uint256);\n\n function setPrice(uint256 newPrice) external;\n\n function transferOwnership(address newOwner) external;\n}\n\n\ncontract MinimumOracle {\n address public _OWNER_;\n uint256 public tokenPrice;\n\n // ============ Events ============\n\n event OwnershipTransfer(address indexed previousOwner, address indexed newOwner);\n\n // ============ Modifiers ============\n\n modifier onlyOwner() {\n require(msg.sender == _OWNER_, \"NOT_OWNER\");\n _;\n }\n\n // ============ Functions ============\n\n constructor() public {\n _OWNER_ = msg.sender;\n emit OwnershipTransfer(address(0), _OWNER_);\n }\n\n function transferOwnership(address newOwner) external onlyOwner {\n require(newOwner != address(0), \"INVALID_OWNER\");\n emit OwnershipTransfer(_OWNER_, newOwner);\n _OWNER_ = newOwner;\n }\n\n function setPrice(uint256 newPrice) external onlyOwner {\n tokenPrice = newPrice;\n }\n\n function getPrice() external view returns (uint256) {\n return tokenPrice;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MinimumOracle.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MinimumOracle.sol", + "exportedSymbols": { + "IMinimumOracle": [ + 2110 + ], + "MinimumOracle": [ + 2197 + ] + }, + "id": 2198, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2093, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:15" + }, + { + "id": 2094, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2110, + "linearizedBaseContracts": [ + 2110 + ], + "name": "IMinimumOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 2099, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2095, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:15" + }, + "returnParameters": { + "id": 2098, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2097, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2099, + "src": "211:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2096, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:15" + }, + "scope": 2110, + "src": "168:52:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "91b7f5ed", + "id": 2104, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2101, + "mutability": "mutable", + "name": "newPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2104, + "src": "244:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2100, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "244:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "243:18:15" + }, + "returnParameters": { + "id": 2103, + "nodeType": "ParameterList", + "parameters": [], + "src": "270:0:15" + }, + "scope": 2110, + "src": "226:45:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 2109, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2106, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2109, + "src": "304:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2105, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "304:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "303:18:15" + }, + "returnParameters": { + "id": 2108, + "nodeType": "ParameterList", + "parameters": [], + "src": "330:0:15" + }, + "scope": 2110, + "src": "277:54:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2198, + "src": "137:196:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2197, + "linearizedBaseContracts": [ + 2197 + ], + "name": "MinimumOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "16048bc4", + "id": 2112, + "mutability": "mutable", + "name": "_OWNER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2197, + "src": "365:22:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ff9b596", + "id": 2114, + "mutability": "mutable", + "name": "tokenPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2197, + "src": "393:25:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "393:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 2120, + "name": "OwnershipTransfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 2119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2116, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2120, + "src": "490:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "490:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2120, + "src": "521:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "521:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "489:57:15" + }, + "src": "466:81:15" + }, + { + "body": { + "id": 2131, + "nodeType": "Block", + "src": "618:71:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2123, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "636:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "636:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2125, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "650:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "636:21:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f4f574e4552", + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "659:11:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + }, + "value": "NOT_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "628:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "628:43:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2129, + "nodeType": "ExpressionStatement", + "src": "628:43:15" + }, + { + "id": 2130, + "nodeType": "PlaceholderStatement", + "src": "681:1:15" + } + ] + }, + "documentation": null, + "id": 2132, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [], + "src": "615:2:15" + }, + "src": "597:92:15", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2148, + "nodeType": "Block", + "src": "760:90:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2135, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "770:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2136, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "780:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "780:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "770:20:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2139, + "nodeType": "ExpressionStatement", + "src": "770:20:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "831:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "823:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "823:7:15", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "823:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2145, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "835:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2140, + "name": "OwnershipTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2120, + "src": "805:17:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "805:38:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2147, + "nodeType": "EmitStatement", + "src": "800:43:15" + } + ] + }, + "documentation": null, + "id": 2149, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2133, + "nodeType": "ParameterList", + "parameters": [], + "src": "750:2:15" + }, + "returnParameters": { + "id": 2134, + "nodeType": "ParameterList", + "parameters": [], + "src": "760:0:15" + }, + "scope": 2197, + "src": "739:111:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2175, + "nodeType": "Block", + "src": "920:144:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2157, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "938:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "958:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "950:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "950:7:15", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "950:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "938:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "494e56414c49445f4f574e4552", + "id": 2163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "962:15:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + }, + "value": "INVALID_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + } + ], + "id": 2156, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "930:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "930:48:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2165, + "nodeType": "ExpressionStatement", + "src": "930:48:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2167, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "1011:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2168, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "1020:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2166, + "name": "OwnershipTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2120, + "src": "993:17:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "993:36:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2170, + "nodeType": "EmitStatement", + "src": "988:41:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 2173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2171, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "1039:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2172, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "1049:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1039:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2174, + "nodeType": "ExpressionStatement", + "src": "1039:18:15" + } + ] + }, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 2176, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2154, + "modifierName": { + "argumentTypes": null, + "id": 2153, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "910:9:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "910:9:15" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2151, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2176, + "src": "883:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "883:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "882:18:15" + }, + "returnParameters": { + "id": 2155, + "nodeType": "ParameterList", + "parameters": [], + "src": "920:0:15" + }, + "scope": 2197, + "src": "856:208:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2187, + "nodeType": "Block", + "src": "1125:38:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2183, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "1135:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2184, + "name": "newPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "1148:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1135:21:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2186, + "nodeType": "ExpressionStatement", + "src": "1135:21:15" + } + ] + }, + "documentation": null, + "functionSelector": "91b7f5ed", + "id": 2188, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2181, + "modifierName": { + "argumentTypes": null, + "id": 2180, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "1115:9:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1115:9:15" + } + ], + "name": "setPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2178, + "mutability": "mutable", + "name": "newPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2188, + "src": "1088:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1088:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1087:18:15" + }, + "returnParameters": { + "id": 2182, + "nodeType": "ParameterList", + "parameters": [], + "src": "1125:0:15" + }, + "scope": 2197, + "src": "1070:93:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2195, + "nodeType": "Block", + "src": "1221:34:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2193, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "1238:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2192, + "id": 2194, + "nodeType": "Return", + "src": "1231:17:15" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 2196, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [], + "src": "1186:2:15" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2196, + "src": "1212:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1212:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1211:9:15" + }, + "scope": 2197, + "src": "1169:86:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2198, + "src": "336:921:15" + } + ], + "src": "78:1180:15" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MinimumOracle.sol", + "exportedSymbols": { + "IMinimumOracle": [ + 2110 + ], + "MinimumOracle": [ + 2197 + ] + }, + "id": 2198, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2093, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:15" + }, + { + "id": 2094, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2110, + "linearizedBaseContracts": [ + 2110 + ], + "name": "IMinimumOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 2099, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2095, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:15" + }, + "returnParameters": { + "id": 2098, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2097, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2099, + "src": "211:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2096, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:15" + }, + "scope": 2110, + "src": "168:52:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "91b7f5ed", + "id": 2104, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2101, + "mutability": "mutable", + "name": "newPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2104, + "src": "244:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2100, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "244:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "243:18:15" + }, + "returnParameters": { + "id": 2103, + "nodeType": "ParameterList", + "parameters": [], + "src": "270:0:15" + }, + "scope": 2110, + "src": "226:45:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 2109, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2106, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2109, + "src": "304:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2105, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "304:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "303:18:15" + }, + "returnParameters": { + "id": 2108, + "nodeType": "ParameterList", + "parameters": [], + "src": "330:0:15" + }, + "scope": 2110, + "src": "277:54:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2198, + "src": "137:196:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2197, + "linearizedBaseContracts": [ + 2197 + ], + "name": "MinimumOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "16048bc4", + "id": 2112, + "mutability": "mutable", + "name": "_OWNER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2197, + "src": "365:22:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ff9b596", + "id": 2114, + "mutability": "mutable", + "name": "tokenPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2197, + "src": "393:25:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "393:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 2120, + "name": "OwnershipTransfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 2119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2116, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2120, + "src": "490:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "490:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2120, + "src": "521:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "521:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "489:57:15" + }, + "src": "466:81:15" + }, + { + "body": { + "id": 2131, + "nodeType": "Block", + "src": "618:71:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2123, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "636:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "636:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2125, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "650:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "636:21:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f4f574e4552", + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "659:11:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + }, + "value": "NOT_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "628:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "628:43:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2129, + "nodeType": "ExpressionStatement", + "src": "628:43:15" + }, + { + "id": 2130, + "nodeType": "PlaceholderStatement", + "src": "681:1:15" + } + ] + }, + "documentation": null, + "id": 2132, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [], + "src": "615:2:15" + }, + "src": "597:92:15", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2148, + "nodeType": "Block", + "src": "760:90:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2135, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "770:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2136, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "780:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "780:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "770:20:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2139, + "nodeType": "ExpressionStatement", + "src": "770:20:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "831:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "823:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "823:7:15", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "823:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2145, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "835:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2140, + "name": "OwnershipTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2120, + "src": "805:17:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "805:38:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2147, + "nodeType": "EmitStatement", + "src": "800:43:15" + } + ] + }, + "documentation": null, + "id": 2149, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2133, + "nodeType": "ParameterList", + "parameters": [], + "src": "750:2:15" + }, + "returnParameters": { + "id": 2134, + "nodeType": "ParameterList", + "parameters": [], + "src": "760:0:15" + }, + "scope": 2197, + "src": "739:111:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2175, + "nodeType": "Block", + "src": "920:144:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2157, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "938:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "958:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "950:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "950:7:15", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "950:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "938:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "494e56414c49445f4f574e4552", + "id": 2163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "962:15:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + }, + "value": "INVALID_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + } + ], + "id": 2156, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "930:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "930:48:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2165, + "nodeType": "ExpressionStatement", + "src": "930:48:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2167, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "1011:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2168, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "1020:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2166, + "name": "OwnershipTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2120, + "src": "993:17:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "993:36:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2170, + "nodeType": "EmitStatement", + "src": "988:41:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 2173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2171, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "1039:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2172, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "1049:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1039:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2174, + "nodeType": "ExpressionStatement", + "src": "1039:18:15" + } + ] + }, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 2176, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2154, + "modifierName": { + "argumentTypes": null, + "id": 2153, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "910:9:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "910:9:15" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2151, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2176, + "src": "883:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "883:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "882:18:15" + }, + "returnParameters": { + "id": 2155, + "nodeType": "ParameterList", + "parameters": [], + "src": "920:0:15" + }, + "scope": 2197, + "src": "856:208:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2187, + "nodeType": "Block", + "src": "1125:38:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2183, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "1135:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2184, + "name": "newPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "1148:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1135:21:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2186, + "nodeType": "ExpressionStatement", + "src": "1135:21:15" + } + ] + }, + "documentation": null, + "functionSelector": "91b7f5ed", + "id": 2188, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2181, + "modifierName": { + "argumentTypes": null, + "id": 2180, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "1115:9:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1115:9:15" + } + ], + "name": "setPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2178, + "mutability": "mutable", + "name": "newPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2188, + "src": "1088:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1088:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1087:18:15" + }, + "returnParameters": { + "id": 2182, + "nodeType": "ParameterList", + "parameters": [], + "src": "1125:0:15" + }, + "scope": 2197, + "src": "1070:93:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2195, + "nodeType": "Block", + "src": "1221:34:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2193, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "1238:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2192, + "id": 2194, + "nodeType": "Return", + "src": "1231:17:15" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 2196, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [], + "src": "1186:2:15" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2196, + "src": "1212:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1212:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1211:9:15" + }, + "scope": 2197, + "src": "1169:86:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2198, + "src": "336:921:15" + } + ], + "src": "78:1180:15" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.510Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IOracle.json b/build-v1/contracts/IOracle.json new file mode 100644 index 0000000..68c9f9c --- /dev/null +++ b/build-v1/contracts/IOracle.json @@ -0,0 +1,257 @@ +{ + "contractName": "IOracle", + "abi": [ + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol\":\"IOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol\":{\"keccak256\":\"0xed4a31155c30a764366aba2244e42406269e59618088f93c02f1b4c9fec9e53c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bd3d50110c9120d942f7713e1cfced848ba7721ea336b2d9c4a87a6eb2a82ca9\",\"dweb:/ipfs/QmTYFeDcAyA2JpfoL1LsGLgj4TeRJxNV1rM27vdcaZSwpF\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IOracle {\n function getPrice() external view returns (uint256);\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol", + "exportedSymbols": { + "IOracle": [ + 10616 + ] + }, + "id": 10617, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10609, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:33" + }, + { + "id": 10610, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:33" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10616, + "linearizedBaseContracts": [ + 10616 + ], + "name": "IOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 10615, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10611, + "nodeType": "ParameterList", + "parameters": [], + "src": "178:2:33" + }, + "returnParameters": { + "id": 10614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10613, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10615, + "src": "204:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "204:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "203:9:33" + }, + "scope": 10616, + "src": "161:52:33", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 10617, + "src": "137:78:33" + } + ], + "src": "78:138:33" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol", + "exportedSymbols": { + "IOracle": [ + 10616 + ] + }, + "id": 10617, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10609, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:33" + }, + { + "id": 10610, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:33" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10616, + "linearizedBaseContracts": [ + 10616 + ], + "name": "IOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 10615, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10611, + "nodeType": "ParameterList", + "parameters": [], + "src": "178:2:33" + }, + "returnParameters": { + "id": 10614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10613, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10615, + "src": "204:7:33", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "204:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "203:9:33" + }, + "scope": 10616, + "src": "161:52:33", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 10617, + "src": "137:78:33" + } + ], + "src": "78:138:33" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.714Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IUniswapV2Callee.json b/build-v1/contracts/IUniswapV2Callee.json new file mode 100644 index 0000000..ef98c62 --- /dev/null +++ b/build-v1/contracts/IUniswapV2Callee.json @@ -0,0 +1,59170 @@ +{ + "contractName": "IUniswapV2Callee", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount0", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount1", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "uniswapV2Call", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"uniswapV2Call\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":\"IUniswapV2Callee\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":{\"keccak256\":\"0x13276cbc5f35abd8a8599841059a1b618e394bab470fb40ae1bf382f32603043\",\"urls\":[\"bzz-raw://3c7be65f25ff007e1ad9fab37105253b91b300e289153c4e6848e5bacaf7b9d3\",\"dweb:/ipfs/QmSEaJzNeFQRGX1JPsU7aNsjcZ9zFB7snRi5Fzosysk4kG\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/**\n *Submitted for verification at Etherscan.io on 2020-05-05\n */\n\n// File: contracts/interfaces/IUniswapV2Pair.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Pair {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n function MINIMUM_LIQUIDITY() external pure returns (uint256);\n\n function factory() external view returns (address);\n\n function token0() external view returns (address);\n\n function token1() external view returns (address);\n\n function getReserves()\n external\n view\n returns (\n uint112 reserve0,\n uint112 reserve1,\n uint32 blockTimestampLast\n );\n\n function price0CumulativeLast() external view returns (uint256);\n\n function price1CumulativeLast() external view returns (uint256);\n\n function kLast() external view returns (uint256);\n\n function mint(address to) external returns (uint256 liquidity);\n\n function burn(address to) external returns (uint256 amount0, uint256 amount1);\n\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external;\n\n function skim(address to) external;\n\n function sync() external;\n\n function initialize(address, address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2ERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2ERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n}\n\n// File: contracts/libraries/SafeMath.sol\n\npragma solidity 0.6.9;\n\n// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)\n\nlibrary SafeMath {\n function add(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x + y) >= x, \"ds-math-add-overflow\");\n }\n\n function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x - y) <= x, \"ds-math-sub-underflow\");\n }\n\n function mul(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require(y == 0 || (z = x * y) / y == x, \"ds-math-mul-overflow\");\n }\n}\n\n// File: contracts/UniswapV2ERC20.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2ERC20 {\n using SafeMath for uint256;\n\n string public constant name = \"Uniswap V2\";\n string public constant symbol = \"UNI-V2\";\n uint8 public constant decimals = 18;\n uint256 public totalSupply;\n mapping(address => uint256) public balanceOf;\n mapping(address => mapping(address => uint256)) public allowance;\n\n bytes32 public DOMAIN_SEPARATOR;\n // keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\");\n bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\n mapping(address => uint256) public nonces;\n\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function _mint(address to, uint256 value) internal {\n totalSupply = totalSupply.add(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(address(0), to, value);\n }\n\n function _burn(address from, uint256 value) internal {\n balanceOf[from] = balanceOf[from].sub(value);\n totalSupply = totalSupply.sub(value);\n emit Transfer(from, address(0), value);\n }\n\n function _approve(\n address owner,\n address spender,\n uint256 value\n ) private {\n allowance[owner][spender] = value;\n emit Approval(owner, spender, value);\n }\n\n function _transfer(\n address from,\n address to,\n uint256 value\n ) private {\n balanceOf[from] = balanceOf[from].sub(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(from, to, value);\n }\n\n function approve(address spender, uint256 value) external returns (bool) {\n _approve(msg.sender, spender, value);\n return true;\n }\n\n function transfer(address to, uint256 value) external returns (bool) {\n _transfer(msg.sender, to, value);\n return true;\n }\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool) {\n if (allowance[from][msg.sender] != uint256(-1)) {\n allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);\n }\n _transfer(from, to, value);\n return true;\n }\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external {\n require(deadline >= block.timestamp, \"UniswapV2: EXPIRED\");\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n DOMAIN_SEPARATOR,\n keccak256(\n abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)\n )\n )\n );\n address recoveredAddress = ecrecover(digest, v, r, s);\n require(\n recoveredAddress != address(0) && recoveredAddress == owner,\n \"UniswapV2: INVALID_SIGNATURE\"\n );\n _approve(owner, spender, value);\n }\n}\n\n// File: contracts/libraries/Math.sol\n\npragma solidity 0.6.9;\n\n// a library for performing various math operations\n\nlibrary Math {\n function min(uint256 x, uint256 y) internal pure returns (uint256 z) {\n z = x < y ? x : y;\n }\n\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\n function sqrt(uint256 y) internal pure returns (uint256 z) {\n if (y > 3) {\n z = y;\n uint256 x = y / 2 + 1;\n while (x < z) {\n z = x;\n x = (y / x + x) / 2;\n }\n } else if (y != 0) {\n z = 1;\n }\n }\n}\n\n// File: contracts/libraries/UQ112x112.sol\n\npragma solidity 0.6.9;\n\n// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))\n\n// range: [0, 2**112 - 1]\n// resolution: 1 / 2**112\n\nlibrary UQ112x112 {\n uint224 constant Q112 = 2**112;\n\n // encode a uint112 as a UQ112x112\n function encode(uint112 y) internal pure returns (uint224 z) {\n z = uint224(y) * Q112; // never overflows\n }\n\n // divide a UQ112x112 by a uint112, returning a UQ112x112\n function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\n z = x / uint224(y);\n }\n}\n\n// File: contracts/interfaces/IERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external view returns (string memory);\n\n function symbol() external view returns (string memory);\n\n function decimals() external view returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n}\n\n// File: contracts/interfaces/IUniswapV2Factory.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Factory {\n event PairCreated(address indexed token0, address indexed token1, address pair, uint256);\n\n function feeTo() external view returns (address);\n\n function feeToSetter() external view returns (address);\n\n function getPair(address tokenA, address tokenB) external view returns (address pair);\n\n function allPairs(uint256) external view returns (address pair);\n\n function allPairsLength() external view returns (uint256);\n\n function createPair(address tokenA, address tokenB) external returns (address pair);\n\n function setFeeTo(address) external;\n\n function setFeeToSetter(address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2Callee.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Callee {\n function uniswapV2Call(\n address sender,\n uint256 amount0,\n uint256 amount1,\n bytes calldata data\n ) external;\n}\n\n// File: contracts/UniswapV2Pair.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2Pair is UniswapV2ERC20 {\n using SafeMath for uint256;\n using UQ112x112 for uint224;\n\n uint256 public constant MINIMUM_LIQUIDITY = 10**3;\n bytes4 private constant SELECTOR = bytes4(keccak256(bytes(\"transfer(address,uint256)\")));\n\n address public factory;\n address public token0;\n address public token1;\n\n uint112 private reserve0; // uses single storage slot, accessible via getReserves\n uint112 private reserve1; // uses single storage slot, accessible via getReserves\n uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\n\n uint256 public price0CumulativeLast;\n uint256 public price1CumulativeLast;\n uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\n\n uint256 private unlocked = 1;\n modifier lock() {\n require(unlocked == 1, \"UniswapV2: LOCKED\");\n unlocked = 0;\n _;\n unlocked = 1;\n }\n\n function getReserves()\n public\n view\n returns (\n uint112 _reserve0,\n uint112 _reserve1,\n uint32 _blockTimestampLast\n )\n {\n _reserve0 = reserve0;\n _reserve1 = reserve1;\n _blockTimestampLast = blockTimestampLast;\n }\n\n function _safeTransfer(\n address token,\n address to,\n uint256 value\n ) private {\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n \"UniswapV2: TRANSFER_FAILED\"\n );\n }\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n constructor() public {\n factory = msg.sender;\n }\n\n // called once by the factory at time of deployment\n function initialize(address _token0, address _token1) external {\n require(msg.sender == factory, \"UniswapV2: FORBIDDEN\"); // sufficient check\n token0 = _token0;\n token1 = _token1;\n }\n\n // update reserves and, on the first call per block, price accumulators\n function _update(\n uint256 balance0,\n uint256 balance1,\n uint112 _reserve0,\n uint112 _reserve1\n ) private {\n require(balance0 <= uint112(-1) && balance1 <= uint112(-1), \"UniswapV2: OVERFLOW\");\n uint32 blockTimestamp = uint32(block.timestamp % 2**32);\n uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\n if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {\n // * never overflows, and + overflow is desired\n price0CumulativeLast +=\n uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) *\n timeElapsed;\n price1CumulativeLast +=\n uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) *\n timeElapsed;\n }\n reserve0 = uint112(balance0);\n reserve1 = uint112(balance1);\n blockTimestampLast = blockTimestamp;\n emit Sync(reserve0, reserve1);\n }\n\n // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)\n function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {\n address feeTo = IUniswapV2Factory(factory).feeTo();\n feeOn = feeTo != address(0);\n uint256 _kLast = kLast; // gas savings\n if (feeOn) {\n if (_kLast != 0) {\n uint256 rootK = Math.sqrt(uint256(_reserve0).mul(_reserve1));\n uint256 rootKLast = Math.sqrt(_kLast);\n if (rootK > rootKLast) {\n uint256 numerator = totalSupply.mul(rootK.sub(rootKLast));\n uint256 denominator = rootK.mul(5).add(rootKLast);\n uint256 liquidity = numerator / denominator;\n if (liquidity > 0) _mint(feeTo, liquidity);\n }\n }\n } else if (_kLast != 0) {\n kLast = 0;\n }\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function mint(address to) external lock returns (uint256 liquidity) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n uint256 balance0 = IERC20(token0).balanceOf(address(this));\n uint256 balance1 = IERC20(token1).balanceOf(address(this));\n uint256 amount0 = balance0.sub(_reserve0);\n uint256 amount1 = balance1.sub(_reserve1);\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n if (_totalSupply == 0) {\n liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);\n _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens\n } else {\n liquidity = Math.min(\n amount0.mul(_totalSupply) / _reserve0,\n amount1.mul(_totalSupply) / _reserve1\n );\n }\n require(liquidity > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\");\n _mint(to, liquidity);\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Mint(msg.sender, amount0, amount1);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function burn(address to) external lock returns (uint256 amount0, uint256 amount1) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n uint256 balance0 = IERC20(_token0).balanceOf(address(this));\n uint256 balance1 = IERC20(_token1).balanceOf(address(this));\n uint256 liquidity = balanceOf[address(this)];\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution\n amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution\n require(amount0 > 0 && amount1 > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\");\n _burn(address(this), liquidity);\n _safeTransfer(_token0, to, amount0);\n _safeTransfer(_token1, to, amount1);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Burn(msg.sender, amount0, amount1, to);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external lock {\n require(amount0Out > 0 || amount1Out > 0, \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\");\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n require(\n amount0Out < _reserve0 && amount1Out < _reserve1,\n \"UniswapV2: INSUFFICIENT_LIQUIDITY\"\n );\n\n uint256 balance0;\n uint256 balance1;\n {\n // scope for _token{0,1}, avoids stack too deep errors\n address _token0 = token0;\n address _token1 = token1;\n require(to != _token0 && to != _token1, \"UniswapV2: INVALID_TO\");\n if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens\n if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens\n if (data.length > 0)\n IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n }\n uint256 amount0In = balance0 > _reserve0 - amount0Out\n ? balance0 - (_reserve0 - amount0Out)\n : 0;\n uint256 amount1In = balance1 > _reserve1 - amount1Out\n ? balance1 - (_reserve1 - amount1Out)\n : 0;\n require(amount0In > 0 || amount1In > 0, \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\");\n {\n // scope for reserve{0,1}Adjusted, avoids stack too deep errors\n uint256 balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));\n uint256 balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));\n require(\n balance0Adjusted.mul(balance1Adjusted) >=\n uint256(_reserve0).mul(_reserve1).mul(1000**2),\n \"UniswapV2: K\"\n );\n }\n\n _update(balance0, balance1, _reserve0, _reserve1);\n emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);\n }\n\n // force balances to match reserves\n function skim(address to) external lock {\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));\n _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));\n }\n\n // force reserves to match balances\n function sync() external lock {\n _update(\n IERC20(token0).balanceOf(address(this)),\n IERC20(token1).balanceOf(address(this)),\n reserve0,\n reserve1\n );\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.551Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IUniswapV2ERC20.json b/build-v1/contracts/IUniswapV2ERC20.json new file mode 100644 index 0000000..7e7e151 --- /dev/null +++ b/build-v1/contracts/IUniswapV2ERC20.json @@ -0,0 +1,59452 @@ +{ + "contractName": "IUniswapV2ERC20", + "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": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "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": "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": "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" + }, + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PERMIT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "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" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"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\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"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\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"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\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"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\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":\"IUniswapV2ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":{\"keccak256\":\"0x13276cbc5f35abd8a8599841059a1b618e394bab470fb40ae1bf382f32603043\",\"urls\":[\"bzz-raw://3c7be65f25ff007e1ad9fab37105253b91b300e289153c4e6848e5bacaf7b9d3\",\"dweb:/ipfs/QmSEaJzNeFQRGX1JPsU7aNsjcZ9zFB7snRi5Fzosysk4kG\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/**\n *Submitted for verification at Etherscan.io on 2020-05-05\n */\n\n// File: contracts/interfaces/IUniswapV2Pair.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Pair {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n function MINIMUM_LIQUIDITY() external pure returns (uint256);\n\n function factory() external view returns (address);\n\n function token0() external view returns (address);\n\n function token1() external view returns (address);\n\n function getReserves()\n external\n view\n returns (\n uint112 reserve0,\n uint112 reserve1,\n uint32 blockTimestampLast\n );\n\n function price0CumulativeLast() external view returns (uint256);\n\n function price1CumulativeLast() external view returns (uint256);\n\n function kLast() external view returns (uint256);\n\n function mint(address to) external returns (uint256 liquidity);\n\n function burn(address to) external returns (uint256 amount0, uint256 amount1);\n\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external;\n\n function skim(address to) external;\n\n function sync() external;\n\n function initialize(address, address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2ERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2ERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n}\n\n// File: contracts/libraries/SafeMath.sol\n\npragma solidity 0.6.9;\n\n// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)\n\nlibrary SafeMath {\n function add(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x + y) >= x, \"ds-math-add-overflow\");\n }\n\n function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x - y) <= x, \"ds-math-sub-underflow\");\n }\n\n function mul(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require(y == 0 || (z = x * y) / y == x, \"ds-math-mul-overflow\");\n }\n}\n\n// File: contracts/UniswapV2ERC20.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2ERC20 {\n using SafeMath for uint256;\n\n string public constant name = \"Uniswap V2\";\n string public constant symbol = \"UNI-V2\";\n uint8 public constant decimals = 18;\n uint256 public totalSupply;\n mapping(address => uint256) public balanceOf;\n mapping(address => mapping(address => uint256)) public allowance;\n\n bytes32 public DOMAIN_SEPARATOR;\n // keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\");\n bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\n mapping(address => uint256) public nonces;\n\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function _mint(address to, uint256 value) internal {\n totalSupply = totalSupply.add(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(address(0), to, value);\n }\n\n function _burn(address from, uint256 value) internal {\n balanceOf[from] = balanceOf[from].sub(value);\n totalSupply = totalSupply.sub(value);\n emit Transfer(from, address(0), value);\n }\n\n function _approve(\n address owner,\n address spender,\n uint256 value\n ) private {\n allowance[owner][spender] = value;\n emit Approval(owner, spender, value);\n }\n\n function _transfer(\n address from,\n address to,\n uint256 value\n ) private {\n balanceOf[from] = balanceOf[from].sub(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(from, to, value);\n }\n\n function approve(address spender, uint256 value) external returns (bool) {\n _approve(msg.sender, spender, value);\n return true;\n }\n\n function transfer(address to, uint256 value) external returns (bool) {\n _transfer(msg.sender, to, value);\n return true;\n }\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool) {\n if (allowance[from][msg.sender] != uint256(-1)) {\n allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);\n }\n _transfer(from, to, value);\n return true;\n }\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external {\n require(deadline >= block.timestamp, \"UniswapV2: EXPIRED\");\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n DOMAIN_SEPARATOR,\n keccak256(\n abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)\n )\n )\n );\n address recoveredAddress = ecrecover(digest, v, r, s);\n require(\n recoveredAddress != address(0) && recoveredAddress == owner,\n \"UniswapV2: INVALID_SIGNATURE\"\n );\n _approve(owner, spender, value);\n }\n}\n\n// File: contracts/libraries/Math.sol\n\npragma solidity 0.6.9;\n\n// a library for performing various math operations\n\nlibrary Math {\n function min(uint256 x, uint256 y) internal pure returns (uint256 z) {\n z = x < y ? x : y;\n }\n\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\n function sqrt(uint256 y) internal pure returns (uint256 z) {\n if (y > 3) {\n z = y;\n uint256 x = y / 2 + 1;\n while (x < z) {\n z = x;\n x = (y / x + x) / 2;\n }\n } else if (y != 0) {\n z = 1;\n }\n }\n}\n\n// File: contracts/libraries/UQ112x112.sol\n\npragma solidity 0.6.9;\n\n// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))\n\n// range: [0, 2**112 - 1]\n// resolution: 1 / 2**112\n\nlibrary UQ112x112 {\n uint224 constant Q112 = 2**112;\n\n // encode a uint112 as a UQ112x112\n function encode(uint112 y) internal pure returns (uint224 z) {\n z = uint224(y) * Q112; // never overflows\n }\n\n // divide a UQ112x112 by a uint112, returning a UQ112x112\n function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\n z = x / uint224(y);\n }\n}\n\n// File: contracts/interfaces/IERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external view returns (string memory);\n\n function symbol() external view returns (string memory);\n\n function decimals() external view returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n}\n\n// File: contracts/interfaces/IUniswapV2Factory.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Factory {\n event PairCreated(address indexed token0, address indexed token1, address pair, uint256);\n\n function feeTo() external view returns (address);\n\n function feeToSetter() external view returns (address);\n\n function getPair(address tokenA, address tokenB) external view returns (address pair);\n\n function allPairs(uint256) external view returns (address pair);\n\n function allPairsLength() external view returns (uint256);\n\n function createPair(address tokenA, address tokenB) external returns (address pair);\n\n function setFeeTo(address) external;\n\n function setFeeToSetter(address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2Callee.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Callee {\n function uniswapV2Call(\n address sender,\n uint256 amount0,\n uint256 amount1,\n bytes calldata data\n ) external;\n}\n\n// File: contracts/UniswapV2Pair.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2Pair is UniswapV2ERC20 {\n using SafeMath for uint256;\n using UQ112x112 for uint224;\n\n uint256 public constant MINIMUM_LIQUIDITY = 10**3;\n bytes4 private constant SELECTOR = bytes4(keccak256(bytes(\"transfer(address,uint256)\")));\n\n address public factory;\n address public token0;\n address public token1;\n\n uint112 private reserve0; // uses single storage slot, accessible via getReserves\n uint112 private reserve1; // uses single storage slot, accessible via getReserves\n uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\n\n uint256 public price0CumulativeLast;\n uint256 public price1CumulativeLast;\n uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\n\n uint256 private unlocked = 1;\n modifier lock() {\n require(unlocked == 1, \"UniswapV2: LOCKED\");\n unlocked = 0;\n _;\n unlocked = 1;\n }\n\n function getReserves()\n public\n view\n returns (\n uint112 _reserve0,\n uint112 _reserve1,\n uint32 _blockTimestampLast\n )\n {\n _reserve0 = reserve0;\n _reserve1 = reserve1;\n _blockTimestampLast = blockTimestampLast;\n }\n\n function _safeTransfer(\n address token,\n address to,\n uint256 value\n ) private {\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n \"UniswapV2: TRANSFER_FAILED\"\n );\n }\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n constructor() public {\n factory = msg.sender;\n }\n\n // called once by the factory at time of deployment\n function initialize(address _token0, address _token1) external {\n require(msg.sender == factory, \"UniswapV2: FORBIDDEN\"); // sufficient check\n token0 = _token0;\n token1 = _token1;\n }\n\n // update reserves and, on the first call per block, price accumulators\n function _update(\n uint256 balance0,\n uint256 balance1,\n uint112 _reserve0,\n uint112 _reserve1\n ) private {\n require(balance0 <= uint112(-1) && balance1 <= uint112(-1), \"UniswapV2: OVERFLOW\");\n uint32 blockTimestamp = uint32(block.timestamp % 2**32);\n uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\n if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {\n // * never overflows, and + overflow is desired\n price0CumulativeLast +=\n uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) *\n timeElapsed;\n price1CumulativeLast +=\n uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) *\n timeElapsed;\n }\n reserve0 = uint112(balance0);\n reserve1 = uint112(balance1);\n blockTimestampLast = blockTimestamp;\n emit Sync(reserve0, reserve1);\n }\n\n // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)\n function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {\n address feeTo = IUniswapV2Factory(factory).feeTo();\n feeOn = feeTo != address(0);\n uint256 _kLast = kLast; // gas savings\n if (feeOn) {\n if (_kLast != 0) {\n uint256 rootK = Math.sqrt(uint256(_reserve0).mul(_reserve1));\n uint256 rootKLast = Math.sqrt(_kLast);\n if (rootK > rootKLast) {\n uint256 numerator = totalSupply.mul(rootK.sub(rootKLast));\n uint256 denominator = rootK.mul(5).add(rootKLast);\n uint256 liquidity = numerator / denominator;\n if (liquidity > 0) _mint(feeTo, liquidity);\n }\n }\n } else if (_kLast != 0) {\n kLast = 0;\n }\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function mint(address to) external lock returns (uint256 liquidity) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n uint256 balance0 = IERC20(token0).balanceOf(address(this));\n uint256 balance1 = IERC20(token1).balanceOf(address(this));\n uint256 amount0 = balance0.sub(_reserve0);\n uint256 amount1 = balance1.sub(_reserve1);\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n if (_totalSupply == 0) {\n liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);\n _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens\n } else {\n liquidity = Math.min(\n amount0.mul(_totalSupply) / _reserve0,\n amount1.mul(_totalSupply) / _reserve1\n );\n }\n require(liquidity > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\");\n _mint(to, liquidity);\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Mint(msg.sender, amount0, amount1);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function burn(address to) external lock returns (uint256 amount0, uint256 amount1) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n uint256 balance0 = IERC20(_token0).balanceOf(address(this));\n uint256 balance1 = IERC20(_token1).balanceOf(address(this));\n uint256 liquidity = balanceOf[address(this)];\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution\n amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution\n require(amount0 > 0 && amount1 > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\");\n _burn(address(this), liquidity);\n _safeTransfer(_token0, to, amount0);\n _safeTransfer(_token1, to, amount1);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Burn(msg.sender, amount0, amount1, to);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external lock {\n require(amount0Out > 0 || amount1Out > 0, \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\");\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n require(\n amount0Out < _reserve0 && amount1Out < _reserve1,\n \"UniswapV2: INSUFFICIENT_LIQUIDITY\"\n );\n\n uint256 balance0;\n uint256 balance1;\n {\n // scope for _token{0,1}, avoids stack too deep errors\n address _token0 = token0;\n address _token1 = token1;\n require(to != _token0 && to != _token1, \"UniswapV2: INVALID_TO\");\n if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens\n if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens\n if (data.length > 0)\n IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n }\n uint256 amount0In = balance0 > _reserve0 - amount0Out\n ? balance0 - (_reserve0 - amount0Out)\n : 0;\n uint256 amount1In = balance1 > _reserve1 - amount1Out\n ? balance1 - (_reserve1 - amount1Out)\n : 0;\n require(amount0In > 0 || amount1In > 0, \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\");\n {\n // scope for reserve{0,1}Adjusted, avoids stack too deep errors\n uint256 balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));\n uint256 balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));\n require(\n balance0Adjusted.mul(balance1Adjusted) >=\n uint256(_reserve0).mul(_reserve1).mul(1000**2),\n \"UniswapV2: K\"\n );\n }\n\n _update(balance0, balance1, _reserve0, _reserve1);\n emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);\n }\n\n // force balances to match reserves\n function skim(address to) external lock {\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));\n _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));\n }\n\n // force reserves to match balances\n function sync() external lock {\n _update(\n IERC20(token0).balanceOf(address(this)),\n IERC20(token1).balanceOf(address(this)),\n reserve0,\n reserve1\n );\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.573Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IUniswapV2Factory.json b/build-v1/contracts/IUniswapV2Factory.json new file mode 100644 index 0000000..748bea1 --- /dev/null +++ b/build-v1/contracts/IUniswapV2Factory.json @@ -0,0 +1,59305 @@ +{ + "contractName": "IUniswapV2Factory", + "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": [], + "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": "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": [ + { + "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" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"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\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":\"IUniswapV2Factory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":{\"keccak256\":\"0x13276cbc5f35abd8a8599841059a1b618e394bab470fb40ae1bf382f32603043\",\"urls\":[\"bzz-raw://3c7be65f25ff007e1ad9fab37105253b91b300e289153c4e6848e5bacaf7b9d3\",\"dweb:/ipfs/QmSEaJzNeFQRGX1JPsU7aNsjcZ9zFB7snRi5Fzosysk4kG\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/**\n *Submitted for verification at Etherscan.io on 2020-05-05\n */\n\n// File: contracts/interfaces/IUniswapV2Pair.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Pair {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n function MINIMUM_LIQUIDITY() external pure returns (uint256);\n\n function factory() external view returns (address);\n\n function token0() external view returns (address);\n\n function token1() external view returns (address);\n\n function getReserves()\n external\n view\n returns (\n uint112 reserve0,\n uint112 reserve1,\n uint32 blockTimestampLast\n );\n\n function price0CumulativeLast() external view returns (uint256);\n\n function price1CumulativeLast() external view returns (uint256);\n\n function kLast() external view returns (uint256);\n\n function mint(address to) external returns (uint256 liquidity);\n\n function burn(address to) external returns (uint256 amount0, uint256 amount1);\n\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external;\n\n function skim(address to) external;\n\n function sync() external;\n\n function initialize(address, address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2ERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2ERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n}\n\n// File: contracts/libraries/SafeMath.sol\n\npragma solidity 0.6.9;\n\n// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)\n\nlibrary SafeMath {\n function add(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x + y) >= x, \"ds-math-add-overflow\");\n }\n\n function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x - y) <= x, \"ds-math-sub-underflow\");\n }\n\n function mul(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require(y == 0 || (z = x * y) / y == x, \"ds-math-mul-overflow\");\n }\n}\n\n// File: contracts/UniswapV2ERC20.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2ERC20 {\n using SafeMath for uint256;\n\n string public constant name = \"Uniswap V2\";\n string public constant symbol = \"UNI-V2\";\n uint8 public constant decimals = 18;\n uint256 public totalSupply;\n mapping(address => uint256) public balanceOf;\n mapping(address => mapping(address => uint256)) public allowance;\n\n bytes32 public DOMAIN_SEPARATOR;\n // keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\");\n bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\n mapping(address => uint256) public nonces;\n\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function _mint(address to, uint256 value) internal {\n totalSupply = totalSupply.add(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(address(0), to, value);\n }\n\n function _burn(address from, uint256 value) internal {\n balanceOf[from] = balanceOf[from].sub(value);\n totalSupply = totalSupply.sub(value);\n emit Transfer(from, address(0), value);\n }\n\n function _approve(\n address owner,\n address spender,\n uint256 value\n ) private {\n allowance[owner][spender] = value;\n emit Approval(owner, spender, value);\n }\n\n function _transfer(\n address from,\n address to,\n uint256 value\n ) private {\n balanceOf[from] = balanceOf[from].sub(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(from, to, value);\n }\n\n function approve(address spender, uint256 value) external returns (bool) {\n _approve(msg.sender, spender, value);\n return true;\n }\n\n function transfer(address to, uint256 value) external returns (bool) {\n _transfer(msg.sender, to, value);\n return true;\n }\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool) {\n if (allowance[from][msg.sender] != uint256(-1)) {\n allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);\n }\n _transfer(from, to, value);\n return true;\n }\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external {\n require(deadline >= block.timestamp, \"UniswapV2: EXPIRED\");\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n DOMAIN_SEPARATOR,\n keccak256(\n abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)\n )\n )\n );\n address recoveredAddress = ecrecover(digest, v, r, s);\n require(\n recoveredAddress != address(0) && recoveredAddress == owner,\n \"UniswapV2: INVALID_SIGNATURE\"\n );\n _approve(owner, spender, value);\n }\n}\n\n// File: contracts/libraries/Math.sol\n\npragma solidity 0.6.9;\n\n// a library for performing various math operations\n\nlibrary Math {\n function min(uint256 x, uint256 y) internal pure returns (uint256 z) {\n z = x < y ? x : y;\n }\n\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\n function sqrt(uint256 y) internal pure returns (uint256 z) {\n if (y > 3) {\n z = y;\n uint256 x = y / 2 + 1;\n while (x < z) {\n z = x;\n x = (y / x + x) / 2;\n }\n } else if (y != 0) {\n z = 1;\n }\n }\n}\n\n// File: contracts/libraries/UQ112x112.sol\n\npragma solidity 0.6.9;\n\n// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))\n\n// range: [0, 2**112 - 1]\n// resolution: 1 / 2**112\n\nlibrary UQ112x112 {\n uint224 constant Q112 = 2**112;\n\n // encode a uint112 as a UQ112x112\n function encode(uint112 y) internal pure returns (uint224 z) {\n z = uint224(y) * Q112; // never overflows\n }\n\n // divide a UQ112x112 by a uint112, returning a UQ112x112\n function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\n z = x / uint224(y);\n }\n}\n\n// File: contracts/interfaces/IERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external view returns (string memory);\n\n function symbol() external view returns (string memory);\n\n function decimals() external view returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n}\n\n// File: contracts/interfaces/IUniswapV2Factory.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Factory {\n event PairCreated(address indexed token0, address indexed token1, address pair, uint256);\n\n function feeTo() external view returns (address);\n\n function feeToSetter() external view returns (address);\n\n function getPair(address tokenA, address tokenB) external view returns (address pair);\n\n function allPairs(uint256) external view returns (address pair);\n\n function allPairsLength() external view returns (uint256);\n\n function createPair(address tokenA, address tokenB) external returns (address pair);\n\n function setFeeTo(address) external;\n\n function setFeeToSetter(address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2Callee.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Callee {\n function uniswapV2Call(\n address sender,\n uint256 amount0,\n uint256 amount1,\n bytes calldata data\n ) external;\n}\n\n// File: contracts/UniswapV2Pair.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2Pair is UniswapV2ERC20 {\n using SafeMath for uint256;\n using UQ112x112 for uint224;\n\n uint256 public constant MINIMUM_LIQUIDITY = 10**3;\n bytes4 private constant SELECTOR = bytes4(keccak256(bytes(\"transfer(address,uint256)\")));\n\n address public factory;\n address public token0;\n address public token1;\n\n uint112 private reserve0; // uses single storage slot, accessible via getReserves\n uint112 private reserve1; // uses single storage slot, accessible via getReserves\n uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\n\n uint256 public price0CumulativeLast;\n uint256 public price1CumulativeLast;\n uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\n\n uint256 private unlocked = 1;\n modifier lock() {\n require(unlocked == 1, \"UniswapV2: LOCKED\");\n unlocked = 0;\n _;\n unlocked = 1;\n }\n\n function getReserves()\n public\n view\n returns (\n uint112 _reserve0,\n uint112 _reserve1,\n uint32 _blockTimestampLast\n )\n {\n _reserve0 = reserve0;\n _reserve1 = reserve1;\n _blockTimestampLast = blockTimestampLast;\n }\n\n function _safeTransfer(\n address token,\n address to,\n uint256 value\n ) private {\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n \"UniswapV2: TRANSFER_FAILED\"\n );\n }\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n constructor() public {\n factory = msg.sender;\n }\n\n // called once by the factory at time of deployment\n function initialize(address _token0, address _token1) external {\n require(msg.sender == factory, \"UniswapV2: FORBIDDEN\"); // sufficient check\n token0 = _token0;\n token1 = _token1;\n }\n\n // update reserves and, on the first call per block, price accumulators\n function _update(\n uint256 balance0,\n uint256 balance1,\n uint112 _reserve0,\n uint112 _reserve1\n ) private {\n require(balance0 <= uint112(-1) && balance1 <= uint112(-1), \"UniswapV2: OVERFLOW\");\n uint32 blockTimestamp = uint32(block.timestamp % 2**32);\n uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\n if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {\n // * never overflows, and + overflow is desired\n price0CumulativeLast +=\n uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) *\n timeElapsed;\n price1CumulativeLast +=\n uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) *\n timeElapsed;\n }\n reserve0 = uint112(balance0);\n reserve1 = uint112(balance1);\n blockTimestampLast = blockTimestamp;\n emit Sync(reserve0, reserve1);\n }\n\n // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)\n function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {\n address feeTo = IUniswapV2Factory(factory).feeTo();\n feeOn = feeTo != address(0);\n uint256 _kLast = kLast; // gas savings\n if (feeOn) {\n if (_kLast != 0) {\n uint256 rootK = Math.sqrt(uint256(_reserve0).mul(_reserve1));\n uint256 rootKLast = Math.sqrt(_kLast);\n if (rootK > rootKLast) {\n uint256 numerator = totalSupply.mul(rootK.sub(rootKLast));\n uint256 denominator = rootK.mul(5).add(rootKLast);\n uint256 liquidity = numerator / denominator;\n if (liquidity > 0) _mint(feeTo, liquidity);\n }\n }\n } else if (_kLast != 0) {\n kLast = 0;\n }\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function mint(address to) external lock returns (uint256 liquidity) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n uint256 balance0 = IERC20(token0).balanceOf(address(this));\n uint256 balance1 = IERC20(token1).balanceOf(address(this));\n uint256 amount0 = balance0.sub(_reserve0);\n uint256 amount1 = balance1.sub(_reserve1);\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n if (_totalSupply == 0) {\n liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);\n _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens\n } else {\n liquidity = Math.min(\n amount0.mul(_totalSupply) / _reserve0,\n amount1.mul(_totalSupply) / _reserve1\n );\n }\n require(liquidity > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\");\n _mint(to, liquidity);\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Mint(msg.sender, amount0, amount1);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function burn(address to) external lock returns (uint256 amount0, uint256 amount1) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n uint256 balance0 = IERC20(_token0).balanceOf(address(this));\n uint256 balance1 = IERC20(_token1).balanceOf(address(this));\n uint256 liquidity = balanceOf[address(this)];\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution\n amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution\n require(amount0 > 0 && amount1 > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\");\n _burn(address(this), liquidity);\n _safeTransfer(_token0, to, amount0);\n _safeTransfer(_token1, to, amount1);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Burn(msg.sender, amount0, amount1, to);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external lock {\n require(amount0Out > 0 || amount1Out > 0, \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\");\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n require(\n amount0Out < _reserve0 && amount1Out < _reserve1,\n \"UniswapV2: INSUFFICIENT_LIQUIDITY\"\n );\n\n uint256 balance0;\n uint256 balance1;\n {\n // scope for _token{0,1}, avoids stack too deep errors\n address _token0 = token0;\n address _token1 = token1;\n require(to != _token0 && to != _token1, \"UniswapV2: INVALID_TO\");\n if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens\n if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens\n if (data.length > 0)\n IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n }\n uint256 amount0In = balance0 > _reserve0 - amount0Out\n ? balance0 - (_reserve0 - amount0Out)\n : 0;\n uint256 amount1In = balance1 > _reserve1 - amount1Out\n ? balance1 - (_reserve1 - amount1Out)\n : 0;\n require(amount0In > 0 || amount1In > 0, \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\");\n {\n // scope for reserve{0,1}Adjusted, avoids stack too deep errors\n uint256 balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));\n uint256 balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));\n require(\n balance0Adjusted.mul(balance1Adjusted) >=\n uint256(_reserve0).mul(_reserve1).mul(1000**2),\n \"UniswapV2: K\"\n );\n }\n\n _update(balance0, balance1, _reserve0, _reserve1);\n emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);\n }\n\n // force balances to match reserves\n function skim(address to) external lock {\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));\n _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));\n }\n\n // force reserves to match balances\n function sync() external lock {\n _update(\n IERC20(token0).balanceOf(address(this)),\n IERC20(token1).balanceOf(address(this)),\n reserve0,\n reserve1\n );\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.590Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IUniswapV2Pair.json b/build-v1/contracts/IUniswapV2Pair.json new file mode 100644 index 0000000..b073099 --- /dev/null +++ b/build-v1/contracts/IUniswapV2Pair.json @@ -0,0 +1,59793 @@ +{ + "contractName": "IUniswapV2Pair", + "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": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "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": "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": "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" + }, + { + "inputs": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PERMIT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "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": "MINIMUM_LIQUIDITY", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "factory", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "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": "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": [], + "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": [], + "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": [ + { + "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": [ + { + "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": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "skim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sync", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"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\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":\"IUniswapV2Pair\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":{\"keccak256\":\"0x13276cbc5f35abd8a8599841059a1b618e394bab470fb40ae1bf382f32603043\",\"urls\":[\"bzz-raw://3c7be65f25ff007e1ad9fab37105253b91b300e289153c4e6848e5bacaf7b9d3\",\"dweb:/ipfs/QmSEaJzNeFQRGX1JPsU7aNsjcZ9zFB7snRi5Fzosysk4kG\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/**\n *Submitted for verification at Etherscan.io on 2020-05-05\n */\n\n// File: contracts/interfaces/IUniswapV2Pair.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Pair {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n function MINIMUM_LIQUIDITY() external pure returns (uint256);\n\n function factory() external view returns (address);\n\n function token0() external view returns (address);\n\n function token1() external view returns (address);\n\n function getReserves()\n external\n view\n returns (\n uint112 reserve0,\n uint112 reserve1,\n uint32 blockTimestampLast\n );\n\n function price0CumulativeLast() external view returns (uint256);\n\n function price1CumulativeLast() external view returns (uint256);\n\n function kLast() external view returns (uint256);\n\n function mint(address to) external returns (uint256 liquidity);\n\n function burn(address to) external returns (uint256 amount0, uint256 amount1);\n\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external;\n\n function skim(address to) external;\n\n function sync() external;\n\n function initialize(address, address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2ERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2ERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n}\n\n// File: contracts/libraries/SafeMath.sol\n\npragma solidity 0.6.9;\n\n// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)\n\nlibrary SafeMath {\n function add(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x + y) >= x, \"ds-math-add-overflow\");\n }\n\n function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x - y) <= x, \"ds-math-sub-underflow\");\n }\n\n function mul(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require(y == 0 || (z = x * y) / y == x, \"ds-math-mul-overflow\");\n }\n}\n\n// File: contracts/UniswapV2ERC20.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2ERC20 {\n using SafeMath for uint256;\n\n string public constant name = \"Uniswap V2\";\n string public constant symbol = \"UNI-V2\";\n uint8 public constant decimals = 18;\n uint256 public totalSupply;\n mapping(address => uint256) public balanceOf;\n mapping(address => mapping(address => uint256)) public allowance;\n\n bytes32 public DOMAIN_SEPARATOR;\n // keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\");\n bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\n mapping(address => uint256) public nonces;\n\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function _mint(address to, uint256 value) internal {\n totalSupply = totalSupply.add(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(address(0), to, value);\n }\n\n function _burn(address from, uint256 value) internal {\n balanceOf[from] = balanceOf[from].sub(value);\n totalSupply = totalSupply.sub(value);\n emit Transfer(from, address(0), value);\n }\n\n function _approve(\n address owner,\n address spender,\n uint256 value\n ) private {\n allowance[owner][spender] = value;\n emit Approval(owner, spender, value);\n }\n\n function _transfer(\n address from,\n address to,\n uint256 value\n ) private {\n balanceOf[from] = balanceOf[from].sub(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(from, to, value);\n }\n\n function approve(address spender, uint256 value) external returns (bool) {\n _approve(msg.sender, spender, value);\n return true;\n }\n\n function transfer(address to, uint256 value) external returns (bool) {\n _transfer(msg.sender, to, value);\n return true;\n }\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool) {\n if (allowance[from][msg.sender] != uint256(-1)) {\n allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);\n }\n _transfer(from, to, value);\n return true;\n }\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external {\n require(deadline >= block.timestamp, \"UniswapV2: EXPIRED\");\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n DOMAIN_SEPARATOR,\n keccak256(\n abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)\n )\n )\n );\n address recoveredAddress = ecrecover(digest, v, r, s);\n require(\n recoveredAddress != address(0) && recoveredAddress == owner,\n \"UniswapV2: INVALID_SIGNATURE\"\n );\n _approve(owner, spender, value);\n }\n}\n\n// File: contracts/libraries/Math.sol\n\npragma solidity 0.6.9;\n\n// a library for performing various math operations\n\nlibrary Math {\n function min(uint256 x, uint256 y) internal pure returns (uint256 z) {\n z = x < y ? x : y;\n }\n\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\n function sqrt(uint256 y) internal pure returns (uint256 z) {\n if (y > 3) {\n z = y;\n uint256 x = y / 2 + 1;\n while (x < z) {\n z = x;\n x = (y / x + x) / 2;\n }\n } else if (y != 0) {\n z = 1;\n }\n }\n}\n\n// File: contracts/libraries/UQ112x112.sol\n\npragma solidity 0.6.9;\n\n// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))\n\n// range: [0, 2**112 - 1]\n// resolution: 1 / 2**112\n\nlibrary UQ112x112 {\n uint224 constant Q112 = 2**112;\n\n // encode a uint112 as a UQ112x112\n function encode(uint112 y) internal pure returns (uint224 z) {\n z = uint224(y) * Q112; // never overflows\n }\n\n // divide a UQ112x112 by a uint112, returning a UQ112x112\n function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\n z = x / uint224(y);\n }\n}\n\n// File: contracts/interfaces/IERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external view returns (string memory);\n\n function symbol() external view returns (string memory);\n\n function decimals() external view returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n}\n\n// File: contracts/interfaces/IUniswapV2Factory.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Factory {\n event PairCreated(address indexed token0, address indexed token1, address pair, uint256);\n\n function feeTo() external view returns (address);\n\n function feeToSetter() external view returns (address);\n\n function getPair(address tokenA, address tokenB) external view returns (address pair);\n\n function allPairs(uint256) external view returns (address pair);\n\n function allPairsLength() external view returns (uint256);\n\n function createPair(address tokenA, address tokenB) external returns (address pair);\n\n function setFeeTo(address) external;\n\n function setFeeToSetter(address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2Callee.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Callee {\n function uniswapV2Call(\n address sender,\n uint256 amount0,\n uint256 amount1,\n bytes calldata data\n ) external;\n}\n\n// File: contracts/UniswapV2Pair.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2Pair is UniswapV2ERC20 {\n using SafeMath for uint256;\n using UQ112x112 for uint224;\n\n uint256 public constant MINIMUM_LIQUIDITY = 10**3;\n bytes4 private constant SELECTOR = bytes4(keccak256(bytes(\"transfer(address,uint256)\")));\n\n address public factory;\n address public token0;\n address public token1;\n\n uint112 private reserve0; // uses single storage slot, accessible via getReserves\n uint112 private reserve1; // uses single storage slot, accessible via getReserves\n uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\n\n uint256 public price0CumulativeLast;\n uint256 public price1CumulativeLast;\n uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\n\n uint256 private unlocked = 1;\n modifier lock() {\n require(unlocked == 1, \"UniswapV2: LOCKED\");\n unlocked = 0;\n _;\n unlocked = 1;\n }\n\n function getReserves()\n public\n view\n returns (\n uint112 _reserve0,\n uint112 _reserve1,\n uint32 _blockTimestampLast\n )\n {\n _reserve0 = reserve0;\n _reserve1 = reserve1;\n _blockTimestampLast = blockTimestampLast;\n }\n\n function _safeTransfer(\n address token,\n address to,\n uint256 value\n ) private {\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n \"UniswapV2: TRANSFER_FAILED\"\n );\n }\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n constructor() public {\n factory = msg.sender;\n }\n\n // called once by the factory at time of deployment\n function initialize(address _token0, address _token1) external {\n require(msg.sender == factory, \"UniswapV2: FORBIDDEN\"); // sufficient check\n token0 = _token0;\n token1 = _token1;\n }\n\n // update reserves and, on the first call per block, price accumulators\n function _update(\n uint256 balance0,\n uint256 balance1,\n uint112 _reserve0,\n uint112 _reserve1\n ) private {\n require(balance0 <= uint112(-1) && balance1 <= uint112(-1), \"UniswapV2: OVERFLOW\");\n uint32 blockTimestamp = uint32(block.timestamp % 2**32);\n uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\n if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {\n // * never overflows, and + overflow is desired\n price0CumulativeLast +=\n uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) *\n timeElapsed;\n price1CumulativeLast +=\n uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) *\n timeElapsed;\n }\n reserve0 = uint112(balance0);\n reserve1 = uint112(balance1);\n blockTimestampLast = blockTimestamp;\n emit Sync(reserve0, reserve1);\n }\n\n // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)\n function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {\n address feeTo = IUniswapV2Factory(factory).feeTo();\n feeOn = feeTo != address(0);\n uint256 _kLast = kLast; // gas savings\n if (feeOn) {\n if (_kLast != 0) {\n uint256 rootK = Math.sqrt(uint256(_reserve0).mul(_reserve1));\n uint256 rootKLast = Math.sqrt(_kLast);\n if (rootK > rootKLast) {\n uint256 numerator = totalSupply.mul(rootK.sub(rootKLast));\n uint256 denominator = rootK.mul(5).add(rootKLast);\n uint256 liquidity = numerator / denominator;\n if (liquidity > 0) _mint(feeTo, liquidity);\n }\n }\n } else if (_kLast != 0) {\n kLast = 0;\n }\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function mint(address to) external lock returns (uint256 liquidity) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n uint256 balance0 = IERC20(token0).balanceOf(address(this));\n uint256 balance1 = IERC20(token1).balanceOf(address(this));\n uint256 amount0 = balance0.sub(_reserve0);\n uint256 amount1 = balance1.sub(_reserve1);\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n if (_totalSupply == 0) {\n liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);\n _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens\n } else {\n liquidity = Math.min(\n amount0.mul(_totalSupply) / _reserve0,\n amount1.mul(_totalSupply) / _reserve1\n );\n }\n require(liquidity > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\");\n _mint(to, liquidity);\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Mint(msg.sender, amount0, amount1);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function burn(address to) external lock returns (uint256 amount0, uint256 amount1) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n uint256 balance0 = IERC20(_token0).balanceOf(address(this));\n uint256 balance1 = IERC20(_token1).balanceOf(address(this));\n uint256 liquidity = balanceOf[address(this)];\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution\n amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution\n require(amount0 > 0 && amount1 > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\");\n _burn(address(this), liquidity);\n _safeTransfer(_token0, to, amount0);\n _safeTransfer(_token1, to, amount1);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Burn(msg.sender, amount0, amount1, to);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external lock {\n require(amount0Out > 0 || amount1Out > 0, \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\");\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n require(\n amount0Out < _reserve0 && amount1Out < _reserve1,\n \"UniswapV2: INSUFFICIENT_LIQUIDITY\"\n );\n\n uint256 balance0;\n uint256 balance1;\n {\n // scope for _token{0,1}, avoids stack too deep errors\n address _token0 = token0;\n address _token1 = token1;\n require(to != _token0 && to != _token1, \"UniswapV2: INVALID_TO\");\n if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens\n if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens\n if (data.length > 0)\n IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n }\n uint256 amount0In = balance0 > _reserve0 - amount0Out\n ? balance0 - (_reserve0 - amount0Out)\n : 0;\n uint256 amount1In = balance1 > _reserve1 - amount1Out\n ? balance1 - (_reserve1 - amount1Out)\n : 0;\n require(amount0In > 0 || amount1In > 0, \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\");\n {\n // scope for reserve{0,1}Adjusted, avoids stack too deep errors\n uint256 balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));\n uint256 balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));\n require(\n balance0Adjusted.mul(balance1Adjusted) >=\n uint256(_reserve0).mul(_reserve1).mul(1000**2),\n \"UniswapV2: K\"\n );\n }\n\n _update(balance0, balance1, _reserve0, _reserve1);\n emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);\n }\n\n // force balances to match reserves\n function skim(address to) external lock {\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));\n _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));\n }\n\n // force reserves to match balances\n function sync() external lock {\n _update(\n IERC20(token0).balanceOf(address(this)),\n IERC20(token1).balanceOf(address(this)),\n reserve0,\n reserve1\n );\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.528Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/IWETH.json b/build-v1/contracts/IWETH.json new file mode 100644 index 0000000..e2b8ea6 --- /dev/null +++ b/build-v1/contracts/IWETH.json @@ -0,0 +1,1735 @@ +{ + "contractName": "IWETH", + "abi": [ + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": "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": "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": "src", + "type": "address" + }, + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IWETH.sol\":\"IWETH\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IWETH.sol\":{\"keccak256\":\"0x477940fe56d5823b603218a07d843eb013524a5b44e2784bf38b8374c22dd4ab\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c9111ef0a330bb0353c5232742867bb18259dd19edd6fb58c83046c007f4dae4\",\"dweb:/ipfs/QmWE34g93fLw5sjMfNxRKP4NU6gdjmyd4A2HNVH9DrkdKp\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IWETH {\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address account) external view returns (uint256);\n\n function transfer(address recipient, uint256 amount) external returns (bool);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 amount) external returns (bool);\n\n function transferFrom(\n address src,\n address dst,\n uint256 wad\n ) external returns (bool);\n\n function deposit() external payable;\n\n function withdraw(uint256 wad) external;\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IWETH.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IWETH.sol", + "exportedSymbols": { + "IWETH": [ + 10678 + ] + }, + "id": 10679, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10618, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:34" + }, + { + "id": 10619, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:34" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10678, + "linearizedBaseContracts": [ + 10678 + ], + "name": "IWETH", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 10624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10620, + "nodeType": "ParameterList", + "parameters": [], + "src": "179:2:34" + }, + "returnParameters": { + "id": 10623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10622, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10624, + "src": "205:7:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "205:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "204:9:34" + }, + "scope": 10678, + "src": "159:55:34", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 10631, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10626, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10631, + "src": "239:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10625, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "239:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "238:17:34" + }, + "returnParameters": { + "id": 10630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10629, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10631, + "src": "279:7:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "279:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "278:9:34" + }, + "scope": 10678, + "src": "220:68:34", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 10640, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10636, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10633, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10640, + "src": "312:17:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10632, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "312:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10635, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10640, + "src": "331:14:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "331:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "311:35:34" + }, + "returnParameters": { + "id": 10639, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10638, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10640, + "src": "365:4:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10637, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "365:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "364:6:34" + }, + "scope": 10678, + "src": "294:77:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 10649, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10642, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10649, + "src": "396:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "396:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10644, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10649, + "src": "411:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10643, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "411:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "395:32:34" + }, + "returnParameters": { + "id": 10648, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10647, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10649, + "src": "451:7:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10646, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "451:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "450:9:34" + }, + "scope": 10678, + "src": "377:83:34", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 10658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10651, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10658, + "src": "483:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "483:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10653, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10658, + "src": "500:14:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10652, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "500:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "482:33:34" + }, + "returnParameters": { + "id": 10657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10658, + "src": "534:4:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10655, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "534:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "533:6:34" + }, + "scope": 10678, + "src": "466:74:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 10669, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10665, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10660, + "mutability": "mutable", + "name": "src", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10669, + "src": "577:11:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "577:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10662, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10669, + "src": "598:11:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "598:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10664, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10669, + "src": "619:11:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "619:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "567:69:34" + }, + "returnParameters": { + "id": 10668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10669, + "src": "655:4:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10666, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "655:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "654:6:34" + }, + "scope": 10678, + "src": "546:115:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d0e30db0", + "id": 10672, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10670, + "nodeType": "ParameterList", + "parameters": [], + "src": "683:2:34" + }, + "returnParameters": { + "id": 10671, + "nodeType": "ParameterList", + "parameters": [], + "src": "702:0:34" + }, + "scope": 10678, + "src": "667:36:34", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "2e1a7d4d", + "id": 10677, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10674, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10677, + "src": "727:11:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "727:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "726:13:34" + }, + "returnParameters": { + "id": 10676, + "nodeType": "ParameterList", + "parameters": [], + "src": "748:0:34" + }, + "scope": 10678, + "src": "709:40:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 10679, + "src": "137:614:34" + } + ], + "src": "78:674:34" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IWETH.sol", + "exportedSymbols": { + "IWETH": [ + 10678 + ] + }, + "id": 10679, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10618, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:34" + }, + { + "id": 10619, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:34" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10678, + "linearizedBaseContracts": [ + 10678 + ], + "name": "IWETH", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 10624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10620, + "nodeType": "ParameterList", + "parameters": [], + "src": "179:2:34" + }, + "returnParameters": { + "id": 10623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10622, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10624, + "src": "205:7:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "205:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "204:9:34" + }, + "scope": 10678, + "src": "159:55:34", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 10631, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10626, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10631, + "src": "239:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10625, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "239:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "238:17:34" + }, + "returnParameters": { + "id": 10630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10629, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10631, + "src": "279:7:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "279:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "278:9:34" + }, + "scope": 10678, + "src": "220:68:34", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 10640, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10636, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10633, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10640, + "src": "312:17:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10632, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "312:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10635, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10640, + "src": "331:14:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "331:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "311:35:34" + }, + "returnParameters": { + "id": 10639, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10638, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10640, + "src": "365:4:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10637, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "365:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "364:6:34" + }, + "scope": 10678, + "src": "294:77:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 10649, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10642, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10649, + "src": "396:13:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "396:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10644, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10649, + "src": "411:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10643, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "411:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "395:32:34" + }, + "returnParameters": { + "id": 10648, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10647, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10649, + "src": "451:7:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10646, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "451:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "450:9:34" + }, + "scope": 10678, + "src": "377:83:34", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 10658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10651, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10658, + "src": "483:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10650, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "483:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10653, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10658, + "src": "500:14:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10652, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "500:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "482:33:34" + }, + "returnParameters": { + "id": 10657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10658, + "src": "534:4:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10655, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "534:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "533:6:34" + }, + "scope": 10678, + "src": "466:74:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 10669, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10665, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10660, + "mutability": "mutable", + "name": "src", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10669, + "src": "577:11:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "577:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10662, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10669, + "src": "598:11:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "598:7:34", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10664, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10669, + "src": "619:11:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "619:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "567:69:34" + }, + "returnParameters": { + "id": 10668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10669, + "src": "655:4:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10666, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "655:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "654:6:34" + }, + "scope": 10678, + "src": "546:115:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d0e30db0", + "id": 10672, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10670, + "nodeType": "ParameterList", + "parameters": [], + "src": "683:2:34" + }, + "returnParameters": { + "id": 10671, + "nodeType": "ParameterList", + "parameters": [], + "src": "702:0:34" + }, + "scope": 10678, + "src": "667:36:34", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "2e1a7d4d", + "id": 10677, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10674, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10677, + "src": "727:11:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "727:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "726:13:34" + }, + "returnParameters": { + "id": 10676, + "nodeType": "ParameterList", + "parameters": [], + "src": "748:0:34" + }, + "scope": 10678, + "src": "709:40:34", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 10679, + "src": "137:614:34" + } + ], + "src": "78:674:34" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.715Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/InitializableOwnable.json b/build-v1/contracts/InitializableOwnable.json new file mode 100644 index 0000000..251096d --- /dev/null +++ b/build-v1/contracts/InitializableOwnable.json @@ -0,0 +1,2453 @@ +{ + "contractName": "InitializableOwnable", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"Ownable\"},\"userdoc\":{\"methods\":{},\"notice\":\"Ownership related functions\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol\":\"InitializableOwnable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol\":{\"keccak256\":\"0xf462d86a85221f424c5a40f3c0d4a699c72a61b31ed07091ffb0e0b28b3cd137\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3d92b79f4527b3d7812395c41e5d0786309a121b99af3bff5cd7663f7255d335\",\"dweb:/ipfs/QmYkQANWtKsJNHKeD6PrtUFeC3D6uWAxhXjB97eBHwqtzK\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506102dd806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806316048bc4146100515780634e71e0c81461006f5780638456db1514610079578063f2fde38b14610081575b600080fd5b610059610094565b6040516100669190610222565b60405180910390f35b6100776100a3565b005b61005961013a565b61007761008f3660046101f4565b610149565b6000546001600160a01b031681565b6001546001600160a01b031633146100d65760405162461bcd60e51b81526004016100cd90610236565b60405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001546001600160a01b031681565b6000546001600160a01b031633146101735760405162461bcd60e51b81526004016100cd90610284565b6001600160a01b0381166101995760405162461bcd60e51b81526004016100cd9061025d565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610205578081fd5b81356001600160a01b038116811461021b578182fd5b9392505050565b6001600160a01b0391909116815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b60408201526060019056fea26469706673582212208d20209ac182c3ef10b045c8d7466fe6ad34fd6712457f5b3fe9d64acdfe2ef464736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c806316048bc4146100515780634e71e0c81461006f5780638456db1514610079578063f2fde38b14610081575b600080fd5b610059610094565b6040516100669190610222565b60405180910390f35b6100776100a3565b005b61005961013a565b61007761008f3660046101f4565b610149565b6000546001600160a01b031681565b6001546001600160a01b031633146100d65760405162461bcd60e51b81526004016100cd90610236565b60405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001546001600160a01b031681565b6000546001600160a01b031633146101735760405162461bcd60e51b81526004016100cd90610284565b6001600160a01b0381166101995760405162461bcd60e51b81526004016100cd9061025d565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610205578081fd5b81356001600160a01b038116811461021b578182fd5b9392505050565b6001600160a01b0391909116815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b60408201526060019056fea26469706673582212208d20209ac182c3ef10b045c8d7466fe6ad34fd6712457f5b3fe9d64acdfe2ef464736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "228:962:37:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "228:962:37:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;264:22;;;:::i;:::-;;;;;;;;;;;;;;;;963:225;;;:::i;:::-;;292:26;;;:::i;737:220::-;;;;;;;;;:::i;264:22::-;;;-1:-1:-1;;;;;264:22:37;;:::o;963:225::-;1030:11;;-1:-1:-1;;;;;1030:11:37;1016:10;:25;1008:51;;;;-1:-1:-1;;;1008:51:37;;;;;;;;;;;;;;;;;1104:11;;;1095:7;;1074:42;;-1:-1:-1;;;;;1104:11:37;;;;1095:7;;;;1074:42;;;1136:11;;;;1126:21;;-1:-1:-1;;;;;;1126:21:37;;;-1:-1:-1;;;;;1136:11:37;;1126:21;;;;1157:24;;;963:225::o;292:26::-;;;-1:-1:-1;;;;;292:26:37;;:::o;737:220::-;648:7;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;-1:-1:-1;;;;;819:22:37;::::1;811:48;;;;-1:-1:-1::0;;;811:48:37::1;;;;;;;;;900:7;::::0;;874:44:::1;::::0;-1:-1:-1;;;;;874:44:37;;::::1;::::0;900:7;::::1;::::0;874:44:::1;::::0;::::1;928:11;:22:::0;;-1:-1:-1;;;;;;928:22:37::1;-1:-1:-1::0;;;;;928:22:37;;;::::1;::::0;;;::::1;::::0;;737:220::o;142:241:-1:-;;246:2;234:9;225:7;221:23;217:32;214:2;;;-1:-1;;252:12;214:2;72:20;;-1:-1;;;;;3301:54;;3426:35;;3416:2;;-1:-1;;3465:12;3416:2;304:63;208:175;-1:-1;;;208:175;1471:222;-1:-1;;;;;3301:54;;;;461:37;;1598:2;1583:18;;1569:124;1700:416;1900:2;1914:47;;;735:2;1885:18;;;3073:19;-1:-1;;;3113:14;;;751:36;806:12;;;1871:245;2123:416;2323:2;2337:47;;;1057:2;2308:18;;;3073:19;-1:-1;;;3113:14;;;1073:36;1128:12;;;2294:245;2546:416;2746:2;2760:47;;;1379:1;2731:18;;;3073:19;-1:-1;;;3113:14;;;1394:32;1445:12;;;2717:245", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n/**\n * @title Ownable\n * @author DODO Breeder\n *\n * @notice Ownership related functions\n */\ncontract InitializableOwnable {\n address public _OWNER_;\n address public _NEW_OWNER_;\n\n // ============ Events ============\n\n event OwnershipTransferPrepared(address indexed previousOwner, address indexed newOwner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n // ============ Modifiers ============\n\n modifier onlyOwner() {\n require(msg.sender == _OWNER_, \"NOT_OWNER\");\n _;\n }\n\n // ============ Functions ============\n\n function transferOwnership(address newOwner) external onlyOwner {\n require(newOwner != address(0), \"INVALID_OWNER\");\n emit OwnershipTransferPrepared(_OWNER_, newOwner);\n _NEW_OWNER_ = newOwner;\n }\n\n function claimOwnership() external {\n require(msg.sender == _NEW_OWNER_, \"INVALID_CLAIM\");\n emit OwnershipTransferred(_OWNER_, _NEW_OWNER_);\n _OWNER_ = _NEW_OWNER_;\n _NEW_OWNER_ = address(0);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol", + "exportedSymbols": { + "InitializableOwnable": [ + 11166 + ] + }, + "id": 11167, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11080, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:37" + }, + { + "id": 11081, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:37" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 11082, + "nodeType": "StructuredDocumentation", + "src": "136:91:37", + "text": " @title Ownable\n @author DODO Breeder\n @notice Ownership related functions" + }, + "fullyImplemented": true, + "id": 11166, + "linearizedBaseContracts": [ + 11166 + ], + "name": "InitializableOwnable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "16048bc4", + "id": 11084, + "mutability": "mutable", + "name": "_OWNER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11166, + "src": "264:22:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "264:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "8456db15", + "id": 11086, + "mutability": "mutable", + "name": "_NEW_OWNER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11166, + "src": "292:26:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "292:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 11092, + "name": "OwnershipTransferPrepared", + "nodeType": "EventDefinition", + "parameters": { + "id": 11091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11088, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11092, + "src": "398:29:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "398:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11090, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11092, + "src": "429:24:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11089, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "429:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "397:57:37" + }, + "src": "366:89:37" + }, + { + "anonymous": false, + "documentation": null, + "id": 11098, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 11097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11094, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11098, + "src": "488:29:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "488:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11096, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11098, + "src": "519:24:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11095, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "519:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "487:57:37" + }, + "src": "461:84:37" + }, + { + "body": { + "id": 11109, + "nodeType": "Block", + "src": "616:71:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11101, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "634:3:37", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "634:10:37", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 11103, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "648:7:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "634:21:37", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f4f574e4552", + "id": 11105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "657:11:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + }, + "value": "NOT_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + } + ], + "id": 11100, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "626:7:37", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "626:43:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11107, + "nodeType": "ExpressionStatement", + "src": "626:43:37" + }, + { + "id": 11108, + "nodeType": "PlaceholderStatement", + "src": "679:1:37" + } + ] + }, + "documentation": null, + "id": 11110, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 11099, + "nodeType": "ParameterList", + "parameters": [], + "src": "613:2:37" + }, + "src": "595:92:37", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11136, + "nodeType": "Block", + "src": "801:156:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11118, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11112, + "src": "819:8:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 11121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "839:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "831:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11119, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "831:7:37", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "831:10:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "819:22:37", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "494e56414c49445f4f574e4552", + "id": 11124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "843:15:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + }, + "value": "INVALID_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + } + ], + "id": 11117, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "811:7:37", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "811:48:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11126, + "nodeType": "ExpressionStatement", + "src": "811:48:37" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11128, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "900:7:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11129, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11112, + "src": "909:8:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11127, + "name": "OwnershipTransferPrepared", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11092, + "src": "874:25:37", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 11130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "874:44:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11131, + "nodeType": "EmitStatement", + "src": "869:49:37" + }, + { + "expression": { + "argumentTypes": null, + "id": 11134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11132, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11086, + "src": "928:11:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11133, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11112, + "src": "942:8:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "928:22:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11135, + "nodeType": "ExpressionStatement", + "src": "928:22:37" + } + ] + }, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 11137, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 11115, + "modifierName": { + "argumentTypes": null, + "id": 11114, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "791:9:37", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "791:9:37" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11112, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11137, + "src": "764:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "764:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "763:18:37" + }, + "returnParameters": { + "id": 11116, + "nodeType": "ParameterList", + "parameters": [], + "src": "801:0:37" + }, + "scope": 11166, + "src": "737:220:37", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 11164, + "nodeType": "Block", + "src": "998:190:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1016:3:37", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1016:10:37", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 11143, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11086, + "src": "1030:11:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1016:25:37", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "494e56414c49445f434c41494d", + "id": 11145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1043:15:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1a7d37d176cef23e7f8e2f25c843c5298bb47032880ff77a8bf2eecb0d19b22b", + "typeString": "literal_string \"INVALID_CLAIM\"" + }, + "value": "INVALID_CLAIM" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1a7d37d176cef23e7f8e2f25c843c5298bb47032880ff77a8bf2eecb0d19b22b", + "typeString": "literal_string \"INVALID_CLAIM\"" + } + ], + "id": 11140, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1008:7:37", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1008:51:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11147, + "nodeType": "ExpressionStatement", + "src": "1008:51:37" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11149, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "1095:7:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11150, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11086, + "src": "1104:11:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11148, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11098, + "src": "1074:20:37", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 11151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1074:42:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11152, + "nodeType": "EmitStatement", + "src": "1069:47:37" + }, + { + "expression": { + "argumentTypes": null, + "id": 11155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11153, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "1126:7:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11154, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11086, + "src": "1136:11:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1126:21:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11156, + "nodeType": "ExpressionStatement", + "src": "1126:21:37" + }, + { + "expression": { + "argumentTypes": null, + "id": 11162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11157, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11086, + "src": "1157:11:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 11160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1179:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1171:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1171:7:37", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1171:10:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1157:24:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11163, + "nodeType": "ExpressionStatement", + "src": "1157:24:37" + } + ] + }, + "documentation": null, + "functionSelector": "4e71e0c8", + "id": 11165, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claimOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11138, + "nodeType": "ParameterList", + "parameters": [], + "src": "986:2:37" + }, + "returnParameters": { + "id": 11139, + "nodeType": "ParameterList", + "parameters": [], + "src": "998:0:37" + }, + "scope": 11166, + "src": "963:225:37", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11167, + "src": "228:962:37" + } + ], + "src": "78:1113:37" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol", + "exportedSymbols": { + "InitializableOwnable": [ + 11166 + ] + }, + "id": 11167, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11080, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:37" + }, + { + "id": 11081, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:37" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 11082, + "nodeType": "StructuredDocumentation", + "src": "136:91:37", + "text": " @title Ownable\n @author DODO Breeder\n @notice Ownership related functions" + }, + "fullyImplemented": true, + "id": 11166, + "linearizedBaseContracts": [ + 11166 + ], + "name": "InitializableOwnable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "16048bc4", + "id": 11084, + "mutability": "mutable", + "name": "_OWNER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11166, + "src": "264:22:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "264:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "8456db15", + "id": 11086, + "mutability": "mutable", + "name": "_NEW_OWNER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11166, + "src": "292:26:37", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "292:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 11092, + "name": "OwnershipTransferPrepared", + "nodeType": "EventDefinition", + "parameters": { + "id": 11091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11088, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11092, + "src": "398:29:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "398:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11090, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11092, + "src": "429:24:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11089, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "429:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "397:57:37" + }, + "src": "366:89:37" + }, + { + "anonymous": false, + "documentation": null, + "id": 11098, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 11097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11094, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11098, + "src": "488:29:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "488:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11096, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11098, + "src": "519:24:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11095, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "519:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "487:57:37" + }, + "src": "461:84:37" + }, + { + "body": { + "id": 11109, + "nodeType": "Block", + "src": "616:71:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11101, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "634:3:37", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "634:10:37", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 11103, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "648:7:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "634:21:37", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f4f574e4552", + "id": 11105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "657:11:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + }, + "value": "NOT_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + } + ], + "id": 11100, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "626:7:37", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "626:43:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11107, + "nodeType": "ExpressionStatement", + "src": "626:43:37" + }, + { + "id": 11108, + "nodeType": "PlaceholderStatement", + "src": "679:1:37" + } + ] + }, + "documentation": null, + "id": 11110, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 11099, + "nodeType": "ParameterList", + "parameters": [], + "src": "613:2:37" + }, + "src": "595:92:37", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11136, + "nodeType": "Block", + "src": "801:156:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11118, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11112, + "src": "819:8:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 11121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "839:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "831:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11119, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "831:7:37", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "831:10:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "819:22:37", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "494e56414c49445f4f574e4552", + "id": 11124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "843:15:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + }, + "value": "INVALID_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + } + ], + "id": 11117, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "811:7:37", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "811:48:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11126, + "nodeType": "ExpressionStatement", + "src": "811:48:37" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11128, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "900:7:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11129, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11112, + "src": "909:8:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11127, + "name": "OwnershipTransferPrepared", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11092, + "src": "874:25:37", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 11130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "874:44:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11131, + "nodeType": "EmitStatement", + "src": "869:49:37" + }, + { + "expression": { + "argumentTypes": null, + "id": 11134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11132, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11086, + "src": "928:11:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11133, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11112, + "src": "942:8:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "928:22:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11135, + "nodeType": "ExpressionStatement", + "src": "928:22:37" + } + ] + }, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 11137, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 11115, + "modifierName": { + "argumentTypes": null, + "id": 11114, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "791:9:37", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "791:9:37" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11112, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11137, + "src": "764:16:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "764:7:37", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "763:18:37" + }, + "returnParameters": { + "id": 11116, + "nodeType": "ParameterList", + "parameters": [], + "src": "801:0:37" + }, + "scope": 11166, + "src": "737:220:37", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 11164, + "nodeType": "Block", + "src": "998:190:37", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11141, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1016:3:37", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1016:10:37", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 11143, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11086, + "src": "1030:11:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1016:25:37", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "494e56414c49445f434c41494d", + "id": 11145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1043:15:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1a7d37d176cef23e7f8e2f25c843c5298bb47032880ff77a8bf2eecb0d19b22b", + "typeString": "literal_string \"INVALID_CLAIM\"" + }, + "value": "INVALID_CLAIM" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1a7d37d176cef23e7f8e2f25c843c5298bb47032880ff77a8bf2eecb0d19b22b", + "typeString": "literal_string \"INVALID_CLAIM\"" + } + ], + "id": 11140, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1008:7:37", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1008:51:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11147, + "nodeType": "ExpressionStatement", + "src": "1008:51:37" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11149, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "1095:7:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11150, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11086, + "src": "1104:11:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11148, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11098, + "src": "1074:20:37", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 11151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1074:42:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11152, + "nodeType": "EmitStatement", + "src": "1069:47:37" + }, + { + "expression": { + "argumentTypes": null, + "id": 11155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11153, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "1126:7:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11154, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11086, + "src": "1136:11:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1126:21:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11156, + "nodeType": "ExpressionStatement", + "src": "1126:21:37" + }, + { + "expression": { + "argumentTypes": null, + "id": 11162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11157, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11086, + "src": "1157:11:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 11160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1179:1:37", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1171:7:37", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1171:7:37", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1171:10:37", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1157:24:37", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11163, + "nodeType": "ExpressionStatement", + "src": "1157:24:37" + } + ] + }, + "documentation": null, + "functionSelector": "4e71e0c8", + "id": 11165, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claimOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11138, + "nodeType": "ParameterList", + "parameters": [], + "src": "986:2:37" + }, + "returnParameters": { + "id": 11139, + "nodeType": "ParameterList", + "parameters": [], + "src": "998:0:37" + }, + "scope": 11166, + "src": "963:225:37", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11167, + "src": "228:962:37" + } + ], + "src": "78:1113:37" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.721Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "Ownable" + }, + "userdoc": { + "methods": {}, + "notice": "Ownership related functions" + } +} \ No newline at end of file diff --git a/build-v1/contracts/LiquidityProvider.json b/build-v1/contracts/LiquidityProvider.json new file mode 100644 index 0000000..2c21532 --- /dev/null +++ b/build-v1/contracts/LiquidityProvider.json @@ -0,0 +1,29808 @@ +{ + "contractName": "LiquidityProvider", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isBaseToken", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "ChargePenalty", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "baseTokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "quoteTokenAmount", + "type": "uint256" + } + ], + "name": "ClaimAssets", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isBaseToken", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "lpTokenAmount", + "type": "uint256" + } + ], + "name": "Deposit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isBaseToken", + "type": "bool" + } + ], + "name": "Donate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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": true, + "internalType": "address", + "name": "payer", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isBaseToken", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "lpTokenAmount", + "type": "uint256" + } + ], + "name": "Withdraw", + "type": "event" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BUYING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "_CLAIMED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_CLOSED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_BASE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_GAS_PRICE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_K_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_LP_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MAINTAINER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MT_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_ORACLE_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_R_STATUS_", + "outputs": [ + { + "internalType": "enum Types.RStatus", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SELLING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SUPERVISOR_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TRADE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimAssets", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "donateBaseToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "donateQuoteToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "finalSettlement", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getBaseCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getExpectedTarget", + "outputs": [ + { + "internalType": "uint256", + "name": "baseTarget", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quoteTarget", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMidPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "midPrice", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getQuoteCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalBaseCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalQuoteCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "retrieve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdrawBase", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "depositBase", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdrawQuote", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "depositQuote", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawAllBase", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "withdrawAllQuote", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "depositQuoteTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "depositBaseTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdrawQuoteTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdrawBaseTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "withdrawAllQuoteTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "withdrawAllBaseTo", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getLpBaseBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "lpBalance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getLpQuoteBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "lpBalance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "getWithdrawQuotePenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "penalty", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "getWithdrawBasePenalty", + "outputs": [ + { + "internalType": "uint256", + "name": "penalty", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBaseToken\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChargePenalty\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseTokenAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quoteTokenAmount\",\"type\":\"uint256\"}],\"name\":\"ClaimAssets\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBaseToken\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lpTokenAmount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBaseToken\",\"type\":\"bool\"}],\"name\":\"Donate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\":true,\"internalType\":\"address\",\"name\":\"payer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBaseToken\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lpTokenAmount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_RECEIVE_QUOTE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BUYING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_CLAIMED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_CLOSED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_BASE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_QUOTE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_GAS_PRICE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_K_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_LP_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MAINTAINER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MT_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_ORACLE_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_RECEIVE_BASE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_R_STATUS_\",\"outputs\":[{\"internalType\":\"enum Types.RStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SELLING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SUPERVISOR_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_BASE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_QUOTE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TRADE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositBaseTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositQuote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"depositQuoteTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"donateBaseToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"donateQuoteToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalSettlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getBaseCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExpectedTarget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"baseTarget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quoteTarget\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getLpBaseBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lpBalance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getLpQuoteBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lpBalance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMidPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"midPrice\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOraclePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getQuoteCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalBaseCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalQuoteCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getWithdrawBasePenalty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"penalty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getWithdrawQuotePenalty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"penalty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"retrieve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawAllBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdrawAllBaseTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdrawAllQuote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"withdrawAllQuoteTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawBase\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawBaseTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawQuote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawQuoteTo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"LiquidityProvider\"},\"userdoc\":{\"methods\":{},\"notice\":\"Functions for liquidity provider operations\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/LiquidityProvider.sol\":\"LiquidityProvider\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/LiquidityProvider.sol\":{\"keccak256\":\"0x1bbb3571a539c9098a617410934ef589e40c6a910f155c31ff0680b2d754c3a9\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://ec97b6eb2b09157237590eae3c7b9b34720c8cf8b392d78aa1ef41c1c543c1ed\",\"dweb:/ipfs/QmYLVFUrD3fbgHFyhWTPmqyS41SDi8kyegS4MpVMdDyr9V\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Pricing.sol\":{\"keccak256\":\"0xaec47be06aa7f8994923c80f2c2318304423666300a48f03a43265787f27c708\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e187f46639dd1127abc81439896e67e21338e9eee8707996606b0c9c8ede68a1\",\"dweb:/ipfs/QmPSfPbZuyM3haHZtWVFknZLAMqg2Jy613jQ36JGuCm7LS\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Settlement.sol\":{\"keccak256\":\"0x8167f472615dc95cf743254785eeef730a0a3b753f05f5b64391fbb9992c8ab6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3e2a25e398638f4bbecf434cf9b8b608c34a1271c051ee7e411b6c2c32702439\",\"dweb:/ipfs/QmUQmysLQ1k8uBWGzsTdmGCqyWQhZ4xtzPWAfsALGWYLPh\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol\":{\"keccak256\":\"0xbf15f2a72d59bbf0ed32b2a24fc4a68d45ffaa60dd2b2c1cc555d03ec1cd2f0a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7289884a2a8939295c4f61aeb7754bd3ce49e9d09188a1eddb762342589f36be\",\"dweb:/ipfs/QmaHYH51wieAyxBDASyHyfYSeu6UJNV7adD3AceeZXCgcZ\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol\":{\"keccak256\":\"0x2183977c7a3cf5aa8d2f56d2167bf59515e34a8e4ebd2402efa85b612631955f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://61766578f8d1bef7f51912a5327e8d4e95e3d9adb509e9486b4e2c8cf179f5e6\",\"dweb:/ipfs/QmXJRK4JKMrJkdn7BFVueoNRixsu26shnX3Dxeb5T9JKK4\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol\":{\"keccak256\":\"0xed4a31155c30a764366aba2244e42406269e59618088f93c02f1b4c9fec9e53c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bd3d50110c9120d942f7713e1cfced848ba7721ea336b2d9c4a87a6eb2a82ca9\",\"dweb:/ipfs/QmTYFeDcAyA2JpfoL1LsGLgj4TeRJxNV1rM27vdcaZSwpF\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol\":{\"keccak256\":\"0xe3f63c53706f21ad68ebeff69321682ffa83bb0552db7e4453dff9772724f657\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://64e385f8c3fbe9e485d0b1b0f90f9621bf50fe02ee7cb95a44828a255db3581f\",\"dweb:/ipfs/QmNesw9cspw1fDDumDy1BSrCeGVij1BAfAVXpfajKHGUcn\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":{\"keccak256\":\"0x9a093cbac4e37ed4ee5e27495dae08754bbfec81f7c0ceb57a5a7ac4f362208f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ddd9e5de1c555f0d1232e148fe18574e6adaa348e792844d9011bbd39bf908f\",\"dweb:/ipfs/QmSgZNwPNqCrQC4kJNdwH3iQNasbTfw2cbTtAtNVcpqnYc\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol\":{\"keccak256\":\"0xf462d86a85221f424c5a40f3c0d4a699c72a61b31ed07091ffb0e0b28b3cd137\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3d92b79f4527b3d7812395c41e5d0786309a121b99af3bff5cd7663f7255d335\",\"dweb:/ipfs/QmYkQANWtKsJNHKeD6PrtUFeC3D6uWAxhXjB97eBHwqtzK\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol\":{\"keccak256\":\"0xc9c3fc946350fd72083a9d5b1327ff923533ef37b054bc7b6007562b20b0faaf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fc140417457139fb240427629673bfaf970c5d4568ad1cfe582764c6e4855bbb\",\"dweb:/ipfs/Qmd7ESYe5kyM6NYiSzeFE74f1YGGPXzpdVd5qnYg2AvgH8\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol\":{\"keccak256\":\"0x0aebcc897b4de833e87e46a11e5a70d2b6e1d2fd99ebdf9e32e6421924f18b15\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a1098dace4f0664b0e3f5c3b6ce535ad2aba52e68fb6d1ea94b09debc06ed33c\",\"dweb:/ipfs/QmRbiq7M3Y8utAXaPWmVooGmoYF27N5dKVn6QYTaDFwqdP\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50612bdb806100206000396000f3fe608060405234801561001057600080fd5b50600436106103a45760003560e01c80638ff5e742116101e9578063c6b73cf91161010f578063ed0aa428116100ad578063f3ae6c5f1161007c578063f3ae6c5f1461066e578063f67ed44814610681578063f98bea1514610694578063ffa64225146106a7576103a4565b8063ed0aa4281461062d578063ee27c68914610640578063ee5150b314610648578063f2fde38b1461065b576103a4565b8063d689107c116100e9578063d689107c1461060d578063dd58b41c14610615578063eab5d20e1461061d578063ec2fd46d14610625576103a4565b8063c6b73cf9146105f5578063d47eaa37146105fd578063d4b9704614610605576103a4565b8063ab44a7a311610187578063c0ffa17811610156578063c0ffa178146105ca578063c3a2a665146105d2578063c59203af146105e5578063c5bbffe8146105ed576103a4565b8063ab44a7a31461059f578063ac1fbc98146105a7578063b2094fd3146105af578063c0a5f6ff146105b7576103a4565b80639b020fba116101c35780639b020fba14610574578063a3161a561461057c578063a598aca714610584578063aa06ce9b1461058c576103a4565b80638ff5e74214610546578063947cf92b1461054e57806395faa5f614610561576103a4565b80633960f142116102ce578063648a4fac1161026c578063796da7af1161023b578063796da7af1461051b5780637aed942d146105235780637c9b8e89146105365780638456db151461053e576103a4565b8063648a4fac146104e357806368be20ad146104eb5780636ec6a58d1461050b57806373a2ab7c14610513576103a4565b80634de4527e116102a85780634de4527e146104b85780634e71e0c8146104c057806354fd4d50146104c85780635f179f64146104d0576103a4565b80633960f142146104a05780634322ec83146104a85780634a248d2a146104b0576103a4565b806317be952e1161034657806327bed8ee1161031557806327bed8ee1461045f5780632aa82c651461047257806336a53bbb1461047a578063387b0c111461048d576103a4565b806317be952e146104255780631e34b9cc1461043a5780631f3c156e1461044d578063245c968514610457576103a4565b80630e6518e9116103825780630e6518e9146103ed578063108db744146103f557806316048bc4146104085780631769ddaa1461041d576103a4565b806304512dc4146103a95780630c9f7bd0146103d25780630cd1667d146103e5575b600080fd5b6103bc6103b736600461257d565b6106bd565b6040516103c99190612b3e565b60405180910390f35b6103bc6103e03660046125e2565b61084e565b6103bc61092d565b6103bc6109b0565b6103bc610403366004612598565b6109b6565b610410610bab565b6040516103c9919061264b565b6103bc610bba565b61042d610bc0565b6040516103c991906126cf565b6103bc61044836600461257d565b610bc9565b610455610d23565b005b6103bc610fe6565b6103bc61046d3660046125e2565b610fec565b6103bc610ffe565b6103bc61048836600461257d565b611043565b61045561049b3660046125e2565b611092565b6104106110f2565b610410611101565b610410611110565b6103bc61111f565b610455611125565b6103bc6111b3565b6103bc6104de366004612598565b6111b8565b6104556112fd565b6104fe6104f936600461257d565b611417565b6040516103c9919061269c565b6104fe61142c565b61041061143c565b6103bc61144b565b6103bc61053136600461257d565b611490565b6103bc611511565b610410611517565b6104fe611526565b6103bc61055c366004612598565b611534565b6103bc61056f36600461257d565b6116ee565b6103bc611729565b6104fe61172f565b6104fe611738565b6103bc61059a366004612598565b611748565b6103bc61186f565b610410611875565b6103bc611884565b6103bc6105c53660046125e2565b61188a565b6103bc611896565b6104556105e0366004612598565b61189c565b6103bc611a72565b6104fe611a7d565b6103bc611a8d565b6103bc611a93565b610410611a9e565b610410611aad565b6104fe611abc565b6103bc611acc565b6103bc611ad2565b61045561063b3660046125e2565b611ad8565b6103bc611b28565b6103bc6106563660046125e2565b611c19565b61045561066936600461257d565b611cb8565b6103bc61067c3660046125e2565b611d63565b6103bc61068f36600461257d565b611d6f565b6103bc6106a23660046125e2565b611da0565b6106af611dac565b6040516103c9929190612b57565b600154600090600160a01b900460ff16156106f35760405162461bcd60e51b81526004016106ea906127d3565b60405180910390fd5b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff161561072f5760405162461bcd60e51b81526004016106ea906129d2565b600061073a33611043565b9050600061074733611d6f565b905060006107548361084e565b9050828111156107765760405162461bcd60e51b81526004016106ea906129aa565b601054610789908463ffffffff611e7016565b6010556107963383611e98565b6107af856107aa858463ffffffff611e7016565b611f00565b6107b881611f37565b846001600160a01b0316336001600160a01b0316600080516020612b66833981519152600086866040516107ee939291906126b7565b60405180910390a3336001600160a01b0316600080516020612b868339815191526000836040516108209291906126a7565b60405180910390a2610838838263ffffffff611e7016565b6001805460ff60a01b1916905595945050505050565b60006012548211156108725760405162461bcd60e51b81526004016106ea906126e3565b6002600e5460ff16600281111561088557fe5b14156109245760006108a4600f54601154611e7090919063ffffffff16565b905060006108b061144b565b905060006108be8383611f8b565b905060006108d1601254600d5484611fb5565b905060006108f66108ed88601254611e7090919063ffffffff16565b600d5485611fb5565b905061091861090b828963ffffffff61205816565b839063ffffffff611e7016565b95505050505050610928565b5060005b919050565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa91906125fa565b90505b90565b60165481565b600154600090600160a01b900460ff16156109e35760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff1615610a1f5760405162461bcd60e51b81526004016106ea906129d2565b6000610a29611dac565b9150506000610a36610ffe565b905060008111610a585760405162461bcd60e51b81526004016106ea906127f6565b6000610a7a83610a6e878563ffffffff61208416565b9063ffffffff6120be16565b9050610a8533611d6f565b811115610aa45760405162461bcd60e51b81526004016106ea906128af565b6000610aaf8661084e565b9050858110610ad05760405162461bcd60e51b81526004016106ea906129aa565b601054610ae3908763ffffffff611e7016565b601055610af03383611e98565b610b04876107aa888463ffffffff611e7016565b610b0d81611f37565b6001600160a01b03871633600080516020612b668339815191526000610b398a8663ffffffff611e7016565b86604051610b49939291906126b7565b60405180910390a3336001600160a01b0316600080516020612b86833981519152600083604051610b7b9291906126a7565b60405180910390a2610b93868263ffffffff611e7016565b6001805460ff60a01b19169055979650505050505050565b6000546001600160a01b031681565b60055481565b600e5460ff1681565b600154600090600160a01b900460ff1615610bf65760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff1615610c325760405162461bcd60e51b81526004016106ea906129d2565b6000610c3d336116ee565b90506000610c4a33611490565b90506000610c5783611c19565b905082811115610c795760405162461bcd60e51b81526004016106ea906129aa565b600f54610c8c908463ffffffff611e7016565b600f55610c9933836120eb565b610cb285610cad858463ffffffff611e7016565b61211d565b610cbb81612154565b846001600160a01b0316336001600160a01b0316600080516020612b6683398151915260018686604051610cf1939291906126b7565b60405180910390a3336001600160a01b0316600080516020612b868339815191526001836040516108209291906126a7565b600154600160a01b900460ff1615610d4d5760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff16610d885760405162461bcd60e51b81526004016106ea90612b15565b3360009081526017602052604090205460ff1615610db85760405162461bcd60e51b81526004016106ea90612aec565b336000818152601760205260408120805460ff1916600117905590610ddc90611d6f565b90506000610de933611490565b905060008215610e2057610e1d610dfe610ffe565b601054610e11908663ffffffff61208416565b9063ffffffff61219d16565b90505b60008215610e4957610e46610e3361092d565b600f54610e11908663ffffffff61208416565b90505b601054610e5c908363ffffffff611e7016565b601055600f54610e72908263ffffffff611e7016565b600f81905550610e94610e8784601554611f8b565b839063ffffffff61205816565b9150610eb2610ea585601654611f8b565b829063ffffffff61205816565b9050610ebe338261211d565b610ec83383611f00565b601354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90610efa903390879060040161265f565b600060405180830381600087803b158015610f1457600080fd5b505af1158015610f28573d6000803e3d6000fd5b5050601454604051632770a7eb60e21b81526001600160a01b039091169250639dc29fac9150610f5e903390889060040161265f565b600060405180830381600087803b158015610f7857600080fd5b505af1158015610f8c573d6000803e3d6000fd5b50505050336001600160a01b03167fbe5f7fe66d16c6a87bb5b8b08a96634fe4f1c2bac9e5e413efe41a782d4d0c438284604051610fcb929190612b57565b60405180910390a2505050506001805460ff60a01b19169055565b60105481565b6000610ff83383611748565b92915050565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561097257600080fd5b60008061104e610ffe565b9050600061105a611dac565b9150508161106d57600092505050610928565b61108a82610e118361107e88611d6f565b9063ffffffff61208416565b949350505050565b600154600160a01b900460ff16156110bc5760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790556110d933826121c7565b6110e281611f37565b506001805460ff60a01b19169055565b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b0316331461114f5760405162461bcd60e51b81526004016106ea9061271a565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b600154600090600160a01b900460ff16156111e55760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790819055600160b81b900460ff166112205760405162461bcd60e51b81526004016106ea9061279c565b600061122a611dac565b9150506000611237610ffe565b905083816112565761124f858463ffffffff61205816565b9050611273565b82156112735761127083610e11878563ffffffff61208416565b90505b61127d33866121c7565b611287868261222c565b60105461129a908663ffffffff61205816565b6010556040516001600160a01b0387169033907f18081cde2fa64894914e1080b98cca17bb6d1acf633e57f6e26ebdb945ad830b906112df906000908a9087906126b7565b60405180910390a36001805460ff60a01b1916905595945050505050565b6000546001600160a01b031633146113275760405162461bcd60e51b81526004016106ea906129f7565b600154600160b01b900460ff16156113515760405162461bcd60e51b81526004016106ea906129d2565b6001805462ffffff60b81b1960ff60b01b19909116600160b01b17169055600061137961092d565b90506000611385610ffe565b905060105460125411156113c15760006113ac601054601254611e7090919063ffffffff16565b90506113b8818461225e565b601555506113c8565b6012546010555b600f5460115411156114025760006113ed600f54601154611e7090919063ffffffff16565b90506113f9818361225e565b60165550611409565b601154600f555b5050600e805460ff19169055565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561097257600080fd5b6013546040516370a0823160e01b81526000916001600160a01b0316906370a08231906114c190859060040161264b565b60206040518083038186803b1580156114d957600080fd5b505afa1580156114ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff891906125fa565b60125481565b6001546001600160a01b031681565b600354610100900460ff1681565b600154600090600160a01b900460ff16156115615760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff161561159d5760405162461bcd60e51b81526004016106ea906129d2565b60006115a7611dac565b50905060006115b461092d565b9050600081116115d65760405162461bcd60e51b81526004016106ea90612741565b60006115ec83610a6e878563ffffffff61208416565b90506115f733611490565b8111156116165760405162461bcd60e51b81526004016106ea90612a87565b600061162186611c19565b9050858111156116435760405162461bcd60e51b81526004016106ea906129aa565b600f54611656908763ffffffff611e7016565b600f5561166333836120eb565b61167787610cad888463ffffffff611e7016565b61168081612154565b6001600160a01b03871633600080516020612b6683398151915260016116ac8a8663ffffffff611e7016565b866040516116bc939291906126b7565b60405180910390a3336001600160a01b0316600080516020612b86833981519152600183604051610b7b9291906126a7565b6000806116f961092d565b90506000611705611dac565b5090508161171857600092505050610928565b61108a82610e118361107e88611490565b60045481565b60035460ff1681565b600154600160c01b900460ff1681565b600154600090600160a01b900460ff16156117755760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790819055600160c01b900460ff166117b05760405162461bcd60e51b81526004016106ea90612765565b60006117ba611dac565b50905060006117c761092d565b905083816117e6576117df858463ffffffff61205816565b9050611803565b82156118035761180083610e11878563ffffffff61208416565b90505b61180d338661227c565b61181786826122e1565b600f5461182a908663ffffffff61205816565b600f556040516001600160a01b0387169033907f18081cde2fa64894914e1080b98cca17bb6d1acf633e57f6e26ebdb945ad830b906112df906001908a9087906126b7565b600b5481565b6014546001600160a01b031681565b600f5481565b6000610ff833836109b6565b600c5481565b6000546001600160a01b031633146118c65760405162461bcd60e51b81526004016106ea906129f7565b6008546001600160a01b038381169116141561198d576011546118ef908263ffffffff61205816565b6008546040516370a0823160e01b81526001600160a01b03909116906370a082319061191f90309060040161264b565b60206040518083038186803b15801561193757600080fd5b505afa15801561194b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196f91906125fa565b101561198d5760405162461bcd60e51b81526004016106ea9061294c565b6009546001600160a01b0383811691161415611a54576012546119b6908263ffffffff61205816565b6009546040516370a0823160e01b81526001600160a01b03909116906370a08231906119e690309060040161264b565b60206040518083038186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3691906125fa565b1015611a545760405162461bcd60e51b81526004016106ea906126e3565b611a6e6001600160a01b038316338363ffffffff61231316565b5050565b60006109aa336106bd565b600154600160b81b900460ff1681565b60155481565b60006109aa33610bc9565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b60115481565b600d5481565b600154600160a01b900460ff1615611b025760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b179055611b1f338261227c565b6110e281612154565b6000806000611b35611dac565b90925090506002600e5460ff166002811115611b4d57fe5b1415611bcf576000611b79611b71601254610e11858661208490919063ffffffff16565b60125461225e565b9050611bb2611b8a600d5483611f8b565b600d54611ba690670de0b6b3a76400009063ffffffff611e7016565b9063ffffffff61205816565b9050611bc5611bbf61144b565b8261225e565b93505050506109ad565b6000611bf5611bed601154610e11868761208490919063ffffffff16565b60115461225e565b9050611c06611b8a600d5483611f8b565b9050611bc5611c1361144b565b82611f8b565b6000601154821115611c3d5760405162461bcd60e51b81526004016106ea9061294c565b6001600e5460ff166002811115611c5057fe5b1415610924576000611c6f601054601254611e7090919063ffffffff16565b90506000611c7b61144b565b90506000611c89838361225e565b90506000611c9c601154600d5484611fb5565b905060006108f66108ed88601154611e7090919063ffffffff16565b6000546001600160a01b03163314611ce25760405162461bcd60e51b81526004016106ea906129f7565b6001600160a01b038116611d085760405162461bcd60e51b81526004016106ea90612983565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ff833836111b8565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a08231906114c190859060040161264b565b6000610ff83383611534565b601254601154600091829182600e5460ff166002811115611dc957fe5b1415611de057600f54601054935093505050611e6c565b6002600e5460ff166002811115611df357fe5b1415611e25576000611e0361236e565b600f54909150611e19848363ffffffff61205816565b94509450505050611e6c565b6001600e5460ff166002811115611e3857fe5b1415611e69576000611e486123d5565b9050611e5a828263ffffffff61205816565b60105494509450505050611e6c565b50505b9091565b600082821115611e925760405162461bcd60e51b81526004016106ea90612929565b50900390565b601454604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90611eca908590859060040161265f565b600060405180830381600087803b158015611ee457600080fd5b505af1158015611ef8573d6000803e3d6000fd5b505050505050565b600954611f1d906001600160a01b0316838363ffffffff61231316565b601254611f30908263ffffffff611e7016565b6012555050565b601054611f4a908263ffffffff61205816565b6010556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e90611f80908390600090612b47565b60405180910390a150565b6000670de0b6b3a7640000611fa6848463ffffffff61208416565b81611fad57fe5b049392505050565b600080611fd0611fca600461107e8787611f8b565b86612433565b9050611ff6611ff1670de0b6b3a764000061107e848263ffffffff61205816565b612451565b9050600061202b61201583670de0b6b3a764000063ffffffff611e7016565b61202687600263ffffffff61208416565b612433565b905061204e86612049670de0b6b3a76400008463ffffffff61205816565b611f8b565b9695505050505050565b60008282018381101561207d5760405162461bcd60e51b81526004016106ea90612a1a565b9392505050565b60008261209357506000610ff8565b828202828482816120a057fe5b041461207d5760405162461bcd60e51b81526004016106ea90612ac9565b6000806120cb848461219d565b9050828102840380156120e357506001019050610ff8565b509050610ff8565b601354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90611eca908590859060040161265f565b60085461213a906001600160a01b0316838363ffffffff61231316565b60115461214d908263ffffffff611e7016565b6011555050565b600f54612167908263ffffffff61205816565b600f556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e90611f80908390600190612b47565b60008082116121be5760405162461bcd60e51b81526004016106ea90612887565b818381611fad57fe5b6005546012546121dd908363ffffffff61205816565b11156121fb5760405162461bcd60e51b81526004016106ea9061281b565b600954612219906001600160a01b031683308463ffffffff61248816565b601254611f30908263ffffffff61205816565b6014546040516340c10f1960e01b81526001600160a01b03909116906340c10f1990611eca908590859060040161265f565b600061207d82610e1185670de0b6b3a764000063ffffffff61208416565b600454601154612292908363ffffffff61205816565b11156122b05760405162461bcd60e51b81526004016106ea906128f2565b6008546122ce906001600160a01b031683308463ffffffff61248816565b60115461214d908263ffffffff61205816565b6013546040516340c10f1960e01b81526001600160a01b03909116906340c10f1990611eca908590859060040161265f565b6123698363a9059cbb60e01b848460405160240161233292919061265f565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526124af565b505050565b600080612388600f54601154611e7090919063ffffffff16565b9050600061239461144b565b905060006123a28383611f8b565b905060006123b5601254600d5484611fb5565b90506123cc60125482611e7090919063ffffffff16565b94505050505090565b6000806123ef601054601254611e7090919063ffffffff16565b905060006123fb61144b565b90506000612409838361225e565b9050600061241c601154600d5484611fb5565b90506123cc60115482611e7090919063ffffffff16565b600061207d82610a6e85670de0b6b3a764000063ffffffff61208416565b80600160028204015b818110156124825780915060028182858161247157fe5b04018161247a57fe5b04905061245a565b50919050565b6124a9846323b872dd60e01b85858560405160240161233293929190612678565b50505050565b60006060836001600160a01b0316836040516124cb9190612612565b6000604051808303816000865af19150503d8060008114612508576040519150601f19603f3d011682016040523d82523d6000602084013e61250d565b606091505b50915091508161252f5760405162461bcd60e51b81526004016106ea90612852565b8051156124a9578080602001905181019061254a91906125c2565b6124a95760405162461bcd60e51b81526004016106ea90612a3d565b80356001600160a01b0381168114610ff857600080fd5b60006020828403121561258e578081fd5b61207d8383612566565b600080604083850312156125aa578081fd5b6125b48484612566565b946020939093013593505050565b6000602082840312156125d3578081fd5b8151801515811461207d578182fd5b6000602082840312156125f3578081fd5b5035919050565b60006020828403121561260b578081fd5b5051919050565b60008251815b818110156126325760208186018101518583015201612618565b818111156126405782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b9115158252602082015260400190565b92151583526020830191909152604082015260600190565b60208101600383106126dd57fe5b91905290565b6020808252601d908201527f444f444f5f51554f54455f42414c414e43455f4e4f545f454e4f554748000000604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600a908201526904e4f5f424153455f4c560b41b604082015260600190565b60208082526018908201527f4445504f5349545f424153455f4e4f545f414c4c4f5745440000000000000000604082015260600190565b60208082526019908201527f4445504f5349545f51554f54455f4e4f545f414c4c4f57454400000000000000604082015260600190565b60208082526009908201526814915153951490539560ba1b604082015260600190565b6020808252600b908201526a04e4f5f51554f54455f4c560ac1b604082015260600190565b6020808252601c908201527f51554f54455f42414c414e43455f4c494d49545f455843454544454400000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526023908201527f4c505f51554f54455f4341504954414c5f42414c414e43455f4e4f545f454e4f6040820152620aa8e960eb1b606082015260800190565b6020808252601b908201527f424153455f42414c414e43455f4c494d49545f45584345454445440000000000604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252601c908201527f444f444f5f424153455f42414c414e43455f4e4f545f454e4f55474800000000604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600e908201526d1411539053151657d15610d1515160921b604082015260600190565b6020808252600b908201526a1113d113d7d0d313d4d15160aa1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526022908201527f4c505f424153455f4341504954414c5f42414c414e43455f4e4f545f454e4f5560408201526108e960f31b606082015260800190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b6020808252600f908201526e1053149150511657d0d31052535151608a1b604082015260600190565b6020808252600f908201526e1113d113d7d393d517d0d313d4d151608a1b604082015260600190565b90815260200190565b9182521515602082015260400190565b91825260208201526040019056fee89c586bd81ee35a18f7eac22a732b56e589a2821497cce12a0208828540a36d581f351e2bdb9fa9021bb2a24def989f06ac236f8a92aac14bcbc618ddf3826aa2646970667358221220f817095e7822ba6073f1c4d1397cd91906e8e24ff2aa07bd7a3d88e5a48f19e964736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106103a45760003560e01c80638ff5e742116101e9578063c6b73cf91161010f578063ed0aa428116100ad578063f3ae6c5f1161007c578063f3ae6c5f1461066e578063f67ed44814610681578063f98bea1514610694578063ffa64225146106a7576103a4565b8063ed0aa4281461062d578063ee27c68914610640578063ee5150b314610648578063f2fde38b1461065b576103a4565b8063d689107c116100e9578063d689107c1461060d578063dd58b41c14610615578063eab5d20e1461061d578063ec2fd46d14610625576103a4565b8063c6b73cf9146105f5578063d47eaa37146105fd578063d4b9704614610605576103a4565b8063ab44a7a311610187578063c0ffa17811610156578063c0ffa178146105ca578063c3a2a665146105d2578063c59203af146105e5578063c5bbffe8146105ed576103a4565b8063ab44a7a31461059f578063ac1fbc98146105a7578063b2094fd3146105af578063c0a5f6ff146105b7576103a4565b80639b020fba116101c35780639b020fba14610574578063a3161a561461057c578063a598aca714610584578063aa06ce9b1461058c576103a4565b80638ff5e74214610546578063947cf92b1461054e57806395faa5f614610561576103a4565b80633960f142116102ce578063648a4fac1161026c578063796da7af1161023b578063796da7af1461051b5780637aed942d146105235780637c9b8e89146105365780638456db151461053e576103a4565b8063648a4fac146104e357806368be20ad146104eb5780636ec6a58d1461050b57806373a2ab7c14610513576103a4565b80634de4527e116102a85780634de4527e146104b85780634e71e0c8146104c057806354fd4d50146104c85780635f179f64146104d0576103a4565b80633960f142146104a05780634322ec83146104a85780634a248d2a146104b0576103a4565b806317be952e1161034657806327bed8ee1161031557806327bed8ee1461045f5780632aa82c651461047257806336a53bbb1461047a578063387b0c111461048d576103a4565b806317be952e146104255780631e34b9cc1461043a5780631f3c156e1461044d578063245c968514610457576103a4565b80630e6518e9116103825780630e6518e9146103ed578063108db744146103f557806316048bc4146104085780631769ddaa1461041d576103a4565b806304512dc4146103a95780630c9f7bd0146103d25780630cd1667d146103e5575b600080fd5b6103bc6103b736600461257d565b6106bd565b6040516103c99190612b3e565b60405180910390f35b6103bc6103e03660046125e2565b61084e565b6103bc61092d565b6103bc6109b0565b6103bc610403366004612598565b6109b6565b610410610bab565b6040516103c9919061264b565b6103bc610bba565b61042d610bc0565b6040516103c991906126cf565b6103bc61044836600461257d565b610bc9565b610455610d23565b005b6103bc610fe6565b6103bc61046d3660046125e2565b610fec565b6103bc610ffe565b6103bc61048836600461257d565b611043565b61045561049b3660046125e2565b611092565b6104106110f2565b610410611101565b610410611110565b6103bc61111f565b610455611125565b6103bc6111b3565b6103bc6104de366004612598565b6111b8565b6104556112fd565b6104fe6104f936600461257d565b611417565b6040516103c9919061269c565b6104fe61142c565b61041061143c565b6103bc61144b565b6103bc61053136600461257d565b611490565b6103bc611511565b610410611517565b6104fe611526565b6103bc61055c366004612598565b611534565b6103bc61056f36600461257d565b6116ee565b6103bc611729565b6104fe61172f565b6104fe611738565b6103bc61059a366004612598565b611748565b6103bc61186f565b610410611875565b6103bc611884565b6103bc6105c53660046125e2565b61188a565b6103bc611896565b6104556105e0366004612598565b61189c565b6103bc611a72565b6104fe611a7d565b6103bc611a8d565b6103bc611a93565b610410611a9e565b610410611aad565b6104fe611abc565b6103bc611acc565b6103bc611ad2565b61045561063b3660046125e2565b611ad8565b6103bc611b28565b6103bc6106563660046125e2565b611c19565b61045561066936600461257d565b611cb8565b6103bc61067c3660046125e2565b611d63565b6103bc61068f36600461257d565b611d6f565b6103bc6106a23660046125e2565b611da0565b6106af611dac565b6040516103c9929190612b57565b600154600090600160a01b900460ff16156106f35760405162461bcd60e51b81526004016106ea906127d3565b60405180910390fd5b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff161561072f5760405162461bcd60e51b81526004016106ea906129d2565b600061073a33611043565b9050600061074733611d6f565b905060006107548361084e565b9050828111156107765760405162461bcd60e51b81526004016106ea906129aa565b601054610789908463ffffffff611e7016565b6010556107963383611e98565b6107af856107aa858463ffffffff611e7016565b611f00565b6107b881611f37565b846001600160a01b0316336001600160a01b0316600080516020612b66833981519152600086866040516107ee939291906126b7565b60405180910390a3336001600160a01b0316600080516020612b868339815191526000836040516108209291906126a7565b60405180910390a2610838838263ffffffff611e7016565b6001805460ff60a01b1916905595945050505050565b60006012548211156108725760405162461bcd60e51b81526004016106ea906126e3565b6002600e5460ff16600281111561088557fe5b14156109245760006108a4600f54601154611e7090919063ffffffff16565b905060006108b061144b565b905060006108be8383611f8b565b905060006108d1601254600d5484611fb5565b905060006108f66108ed88601254611e7090919063ffffffff16565b600d5485611fb5565b905061091861090b828963ffffffff61205816565b839063ffffffff611e7016565b95505050505050610928565b5060005b919050565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561097257600080fd5b505afa158015610986573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109aa91906125fa565b90505b90565b60165481565b600154600090600160a01b900460ff16156109e35760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff1615610a1f5760405162461bcd60e51b81526004016106ea906129d2565b6000610a29611dac565b9150506000610a36610ffe565b905060008111610a585760405162461bcd60e51b81526004016106ea906127f6565b6000610a7a83610a6e878563ffffffff61208416565b9063ffffffff6120be16565b9050610a8533611d6f565b811115610aa45760405162461bcd60e51b81526004016106ea906128af565b6000610aaf8661084e565b9050858110610ad05760405162461bcd60e51b81526004016106ea906129aa565b601054610ae3908763ffffffff611e7016565b601055610af03383611e98565b610b04876107aa888463ffffffff611e7016565b610b0d81611f37565b6001600160a01b03871633600080516020612b668339815191526000610b398a8663ffffffff611e7016565b86604051610b49939291906126b7565b60405180910390a3336001600160a01b0316600080516020612b86833981519152600083604051610b7b9291906126a7565b60405180910390a2610b93868263ffffffff611e7016565b6001805460ff60a01b19169055979650505050505050565b6000546001600160a01b031681565b60055481565b600e5460ff1681565b600154600090600160a01b900460ff1615610bf65760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff1615610c325760405162461bcd60e51b81526004016106ea906129d2565b6000610c3d336116ee565b90506000610c4a33611490565b90506000610c5783611c19565b905082811115610c795760405162461bcd60e51b81526004016106ea906129aa565b600f54610c8c908463ffffffff611e7016565b600f55610c9933836120eb565b610cb285610cad858463ffffffff611e7016565b61211d565b610cbb81612154565b846001600160a01b0316336001600160a01b0316600080516020612b6683398151915260018686604051610cf1939291906126b7565b60405180910390a3336001600160a01b0316600080516020612b868339815191526001836040516108209291906126a7565b600154600160a01b900460ff1615610d4d5760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff16610d885760405162461bcd60e51b81526004016106ea90612b15565b3360009081526017602052604090205460ff1615610db85760405162461bcd60e51b81526004016106ea90612aec565b336000818152601760205260408120805460ff1916600117905590610ddc90611d6f565b90506000610de933611490565b905060008215610e2057610e1d610dfe610ffe565b601054610e11908663ffffffff61208416565b9063ffffffff61219d16565b90505b60008215610e4957610e46610e3361092d565b600f54610e11908663ffffffff61208416565b90505b601054610e5c908363ffffffff611e7016565b601055600f54610e72908263ffffffff611e7016565b600f81905550610e94610e8784601554611f8b565b839063ffffffff61205816565b9150610eb2610ea585601654611f8b565b829063ffffffff61205816565b9050610ebe338261211d565b610ec83383611f00565b601354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90610efa903390879060040161265f565b600060405180830381600087803b158015610f1457600080fd5b505af1158015610f28573d6000803e3d6000fd5b5050601454604051632770a7eb60e21b81526001600160a01b039091169250639dc29fac9150610f5e903390889060040161265f565b600060405180830381600087803b158015610f7857600080fd5b505af1158015610f8c573d6000803e3d6000fd5b50505050336001600160a01b03167fbe5f7fe66d16c6a87bb5b8b08a96634fe4f1c2bac9e5e413efe41a782d4d0c438284604051610fcb929190612b57565b60405180910390a2505050506001805460ff60a01b19169055565b60105481565b6000610ff83383611748565b92915050565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561097257600080fd5b60008061104e610ffe565b9050600061105a611dac565b9150508161106d57600092505050610928565b61108a82610e118361107e88611d6f565b9063ffffffff61208416565b949350505050565b600154600160a01b900460ff16156110bc5760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790556110d933826121c7565b6110e281611f37565b506001805460ff60a01b19169055565b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b0316331461114f5760405162461bcd60e51b81526004016106ea9061271a565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b600154600090600160a01b900460ff16156111e55760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790819055600160b81b900460ff166112205760405162461bcd60e51b81526004016106ea9061279c565b600061122a611dac565b9150506000611237610ffe565b905083816112565761124f858463ffffffff61205816565b9050611273565b82156112735761127083610e11878563ffffffff61208416565b90505b61127d33866121c7565b611287868261222c565b60105461129a908663ffffffff61205816565b6010556040516001600160a01b0387169033907f18081cde2fa64894914e1080b98cca17bb6d1acf633e57f6e26ebdb945ad830b906112df906000908a9087906126b7565b60405180910390a36001805460ff60a01b1916905595945050505050565b6000546001600160a01b031633146113275760405162461bcd60e51b81526004016106ea906129f7565b600154600160b01b900460ff16156113515760405162461bcd60e51b81526004016106ea906129d2565b6001805462ffffff60b81b1960ff60b01b19909116600160b01b17169055600061137961092d565b90506000611385610ffe565b905060105460125411156113c15760006113ac601054601254611e7090919063ffffffff16565b90506113b8818461225e565b601555506113c8565b6012546010555b600f5460115411156114025760006113ed600f54601154611e7090919063ffffffff16565b90506113f9818361225e565b60165550611409565b601154600f555b5050600e805460ff19169055565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561097257600080fd5b6013546040516370a0823160e01b81526000916001600160a01b0316906370a08231906114c190859060040161264b565b60206040518083038186803b1580156114d957600080fd5b505afa1580156114ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff891906125fa565b60125481565b6001546001600160a01b031681565b600354610100900460ff1681565b600154600090600160a01b900460ff16156115615760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff161561159d5760405162461bcd60e51b81526004016106ea906129d2565b60006115a7611dac565b50905060006115b461092d565b9050600081116115d65760405162461bcd60e51b81526004016106ea90612741565b60006115ec83610a6e878563ffffffff61208416565b90506115f733611490565b8111156116165760405162461bcd60e51b81526004016106ea90612a87565b600061162186611c19565b9050858111156116435760405162461bcd60e51b81526004016106ea906129aa565b600f54611656908763ffffffff611e7016565b600f5561166333836120eb565b61167787610cad888463ffffffff611e7016565b61168081612154565b6001600160a01b03871633600080516020612b6683398151915260016116ac8a8663ffffffff611e7016565b866040516116bc939291906126b7565b60405180910390a3336001600160a01b0316600080516020612b86833981519152600183604051610b7b9291906126a7565b6000806116f961092d565b90506000611705611dac565b5090508161171857600092505050610928565b61108a82610e118361107e88611490565b60045481565b60035460ff1681565b600154600160c01b900460ff1681565b600154600090600160a01b900460ff16156117755760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b1790819055600160c01b900460ff166117b05760405162461bcd60e51b81526004016106ea90612765565b60006117ba611dac565b50905060006117c761092d565b905083816117e6576117df858463ffffffff61205816565b9050611803565b82156118035761180083610e11878563ffffffff61208416565b90505b61180d338661227c565b61181786826122e1565b600f5461182a908663ffffffff61205816565b600f556040516001600160a01b0387169033907f18081cde2fa64894914e1080b98cca17bb6d1acf633e57f6e26ebdb945ad830b906112df906001908a9087906126b7565b600b5481565b6014546001600160a01b031681565b600f5481565b6000610ff833836109b6565b600c5481565b6000546001600160a01b031633146118c65760405162461bcd60e51b81526004016106ea906129f7565b6008546001600160a01b038381169116141561198d576011546118ef908263ffffffff61205816565b6008546040516370a0823160e01b81526001600160a01b03909116906370a082319061191f90309060040161264b565b60206040518083038186803b15801561193757600080fd5b505afa15801561194b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196f91906125fa565b101561198d5760405162461bcd60e51b81526004016106ea9061294c565b6009546001600160a01b0383811691161415611a54576012546119b6908263ffffffff61205816565b6009546040516370a0823160e01b81526001600160a01b03909116906370a08231906119e690309060040161264b565b60206040518083038186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3691906125fa565b1015611a545760405162461bcd60e51b81526004016106ea906126e3565b611a6e6001600160a01b038316338363ffffffff61231316565b5050565b60006109aa336106bd565b600154600160b81b900460ff1681565b60155481565b60006109aa33610bc9565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b60115481565b600d5481565b600154600160a01b900460ff1615611b025760405162461bcd60e51b81526004016106ea906127d3565b6001805460ff60a01b1916600160a01b179055611b1f338261227c565b6110e281612154565b6000806000611b35611dac565b90925090506002600e5460ff166002811115611b4d57fe5b1415611bcf576000611b79611b71601254610e11858661208490919063ffffffff16565b60125461225e565b9050611bb2611b8a600d5483611f8b565b600d54611ba690670de0b6b3a76400009063ffffffff611e7016565b9063ffffffff61205816565b9050611bc5611bbf61144b565b8261225e565b93505050506109ad565b6000611bf5611bed601154610e11868761208490919063ffffffff16565b60115461225e565b9050611c06611b8a600d5483611f8b565b9050611bc5611c1361144b565b82611f8b565b6000601154821115611c3d5760405162461bcd60e51b81526004016106ea9061294c565b6001600e5460ff166002811115611c5057fe5b1415610924576000611c6f601054601254611e7090919063ffffffff16565b90506000611c7b61144b565b90506000611c89838361225e565b90506000611c9c601154600d5484611fb5565b905060006108f66108ed88601154611e7090919063ffffffff16565b6000546001600160a01b03163314611ce25760405162461bcd60e51b81526004016106ea906129f7565b6001600160a01b038116611d085760405162461bcd60e51b81526004016106ea90612983565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000610ff833836111b8565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a08231906114c190859060040161264b565b6000610ff83383611534565b601254601154600091829182600e5460ff166002811115611dc957fe5b1415611de057600f54601054935093505050611e6c565b6002600e5460ff166002811115611df357fe5b1415611e25576000611e0361236e565b600f54909150611e19848363ffffffff61205816565b94509450505050611e6c565b6001600e5460ff166002811115611e3857fe5b1415611e69576000611e486123d5565b9050611e5a828263ffffffff61205816565b60105494509450505050611e6c565b50505b9091565b600082821115611e925760405162461bcd60e51b81526004016106ea90612929565b50900390565b601454604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90611eca908590859060040161265f565b600060405180830381600087803b158015611ee457600080fd5b505af1158015611ef8573d6000803e3d6000fd5b505050505050565b600954611f1d906001600160a01b0316838363ffffffff61231316565b601254611f30908263ffffffff611e7016565b6012555050565b601054611f4a908263ffffffff61205816565b6010556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e90611f80908390600090612b47565b60405180910390a150565b6000670de0b6b3a7640000611fa6848463ffffffff61208416565b81611fad57fe5b049392505050565b600080611fd0611fca600461107e8787611f8b565b86612433565b9050611ff6611ff1670de0b6b3a764000061107e848263ffffffff61205816565b612451565b9050600061202b61201583670de0b6b3a764000063ffffffff611e7016565b61202687600263ffffffff61208416565b612433565b905061204e86612049670de0b6b3a76400008463ffffffff61205816565b611f8b565b9695505050505050565b60008282018381101561207d5760405162461bcd60e51b81526004016106ea90612a1a565b9392505050565b60008261209357506000610ff8565b828202828482816120a057fe5b041461207d5760405162461bcd60e51b81526004016106ea90612ac9565b6000806120cb848461219d565b9050828102840380156120e357506001019050610ff8565b509050610ff8565b601354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90611eca908590859060040161265f565b60085461213a906001600160a01b0316838363ffffffff61231316565b60115461214d908263ffffffff611e7016565b6011555050565b600f54612167908263ffffffff61205816565b600f556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e90611f80908390600190612b47565b60008082116121be5760405162461bcd60e51b81526004016106ea90612887565b818381611fad57fe5b6005546012546121dd908363ffffffff61205816565b11156121fb5760405162461bcd60e51b81526004016106ea9061281b565b600954612219906001600160a01b031683308463ffffffff61248816565b601254611f30908263ffffffff61205816565b6014546040516340c10f1960e01b81526001600160a01b03909116906340c10f1990611eca908590859060040161265f565b600061207d82610e1185670de0b6b3a764000063ffffffff61208416565b600454601154612292908363ffffffff61205816565b11156122b05760405162461bcd60e51b81526004016106ea906128f2565b6008546122ce906001600160a01b031683308463ffffffff61248816565b60115461214d908263ffffffff61205816565b6013546040516340c10f1960e01b81526001600160a01b03909116906340c10f1990611eca908590859060040161265f565b6123698363a9059cbb60e01b848460405160240161233292919061265f565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526124af565b505050565b600080612388600f54601154611e7090919063ffffffff16565b9050600061239461144b565b905060006123a28383611f8b565b905060006123b5601254600d5484611fb5565b90506123cc60125482611e7090919063ffffffff16565b94505050505090565b6000806123ef601054601254611e7090919063ffffffff16565b905060006123fb61144b565b90506000612409838361225e565b9050600061241c601154600d5484611fb5565b90506123cc60115482611e7090919063ffffffff16565b600061207d82610a6e85670de0b6b3a764000063ffffffff61208416565b80600160028204015b818110156124825780915060028182858161247157fe5b04018161247a57fe5b04905061245a565b50919050565b6124a9846323b872dd60e01b85858560405160240161233293929190612678565b50505050565b60006060836001600160a01b0316836040516124cb9190612612565b6000604051808303816000865af19150503d8060008114612508576040519150601f19603f3d011682016040523d82523d6000602084013e61250d565b606091505b50915091508161252f5760405162461bcd60e51b81526004016106ea90612852565b8051156124a9578080602001905181019061254a91906125c2565b6124a95760405162461bcd60e51b81526004016106ea90612a3d565b80356001600160a01b0381168114610ff857600080fd5b60006020828403121561258e578081fd5b61207d8383612566565b600080604083850312156125aa578081fd5b6125b48484612566565b946020939093013593505050565b6000602082840312156125d3578081fd5b8151801515811461207d578182fd5b6000602082840312156125f3578081fd5b5035919050565b60006020828403121561260b578081fd5b5051919050565b60008251815b818110156126325760208186018101518583015201612618565b818111156126405782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b9115158252602082015260400190565b92151583526020830191909152604082015260600190565b60208101600383106126dd57fe5b91905290565b6020808252601d908201527f444f444f5f51554f54455f42414c414e43455f4e4f545f454e4f554748000000604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600a908201526904e4f5f424153455f4c560b41b604082015260600190565b60208082526018908201527f4445504f5349545f424153455f4e4f545f414c4c4f5745440000000000000000604082015260600190565b60208082526019908201527f4445504f5349545f51554f54455f4e4f545f414c4c4f57454400000000000000604082015260600190565b60208082526009908201526814915153951490539560ba1b604082015260600190565b6020808252600b908201526a04e4f5f51554f54455f4c560ac1b604082015260600190565b6020808252601c908201527f51554f54455f42414c414e43455f4c494d49545f455843454544454400000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526023908201527f4c505f51554f54455f4341504954414c5f42414c414e43455f4e4f545f454e4f6040820152620aa8e960eb1b606082015260800190565b6020808252601b908201527f424153455f42414c414e43455f4c494d49545f45584345454445440000000000604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252601c908201527f444f444f5f424153455f42414c414e43455f4e4f545f454e4f55474800000000604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600e908201526d1411539053151657d15610d1515160921b604082015260600190565b6020808252600b908201526a1113d113d7d0d313d4d15160aa1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526022908201527f4c505f424153455f4341504954414c5f42414c414e43455f4e4f545f454e4f5560408201526108e960f31b606082015260800190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b6020808252600f908201526e1053149150511657d0d31052535151608a1b604082015260600190565b6020808252600f908201526e1113d113d7d393d517d0d313d4d151608a1b604082015260600190565b90815260200190565b9182521515602082015260400190565b91825260208201526040019056fee89c586bd81ee35a18f7eac22a732b56e589a2821497cce12a0208828540a36d581f351e2bdb9fa9021bb2a24def989f06ac236f8a92aac14bcbc618ddf3826aa2646970667358221220f817095e7822ba6073f1c4d1397cd91906e8e24ff2aa07bd7a3d88e5a48f19e964736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "618:11095:24:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "618:11095:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6601:882;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9778:964;;;;;;;;;:::i;2949:133:27:-;;;:::i;2006:43::-;;;:::i;4161:1196:24:-;;;;;;;;;:::i;264:22:37:-;;;:::i;:::-;;;;;;;;1112:36:27;;;:::i;1604:31::-;;;:::i;:::-;;;;;;;;7489:835:24;;;;;;;;;:::i;3873:1392:26:-;;;:::i;:::-;;1688:42:27;;;:::i;1751:121:24:-;;;;;;;;;:::i;3243:135:27:-;;;:::i;9385:387:24:-;;;;;;;;;:::i;2545:161:26:-;;;;;;;;;:::i;1202:27:27:-;;;:::i;1271:::-;;;:::i;1352:::-;;;:::i;912:32::-;;;:::i;963:225:37:-;;;:::i;3433:87:27:-;;;:::i;2418:847:24:-;;;;;;;;;:::i;2808:1006:26:-;;;:::i;2055:41:27:-;;;;;;;;;:::i;:::-;;;;;;;;772:20;;;:::i;1419:23::-;;;:::i;2682:108::-;;;:::i;2796:147::-;;;;;;;;;:::i;1771:30::-;;;:::i;292:26:37:-;;;:::i;1036:29:27:-;;;:::i;5363:1175:24:-;;;;;;;;;:::i;9000:379::-;;;;;;;;;:::i;1071:35:27:-;;;:::i;1002:28::-;;;:::i;839:34::-;;;:::i;3271:831:24:-;;;;;;;;;:::i;1511:28:27:-;;;:::i;1849:36::-;;;:::i;1641:41::-;;;:::i;1878:125:24:-;;;;;;;;;:::i;1545:28:27:-;;;:::i;5324:581:26:-;;;;;;;;;:::i;2251:109:24:-;;;:::i;798:35:27:-;;;:::i;1957:43::-;;;:::i;2138:107:24:-;;;:::i;1385:28:27:-;;;:::i;1808:35::-;;;:::i;879:27::-;;;:::i;1736:29::-;;;:::i;1579:18::-;;;:::i;2381:158:26:-;;;;;;;;;:::i;5504:799:25:-;;;:::i;10748:963:24:-;;;;;;;;;:::i;737:220:37:-;;;;;;;;;:::i;2009:123:24:-;;;;;;;;;:::i;3088:149:27:-;;;;;;;;;:::i;1622:123:24:-;;;;;;;;;:::i;4819:679:25:-;;;:::i;:::-;;;;;;;;;6601:882:24;515:9:39;;6720:7:24;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;1522:8:24;::::1;548:16:39::0;1522:8:24::1;1521:9;1513:33;;;;-1:-1:-1::0;;;1513:33:24::1;;;;;;;;;6743:22:::2;6768:29;6786:10;6768:17;:29::i;:::-;6743:54;;6807:15;6825:36;6850:10;6825:24;:36::i;:::-;6807:54;;6925:15;6943:39;6967:14;6943:23;:39::i;:::-;6925:57;;7011:14;7000:7;:25;;6992:52;;;;-1:-1:-1::0;;;6992:52:24::2;;;;;;;;;7107:27;::::0;:47:::2;::::0;7139:14;7107:47:::2;:31;:47;:::i;:::-;7077:27;:77:::0;7164:38:::2;7182:10;7194:7:::0;7164:17:::2;:38::i;:::-;7212:55;7235:2:::0;7239:27:::2;:14:::0;7258:7;7239:27:::2;:18;:27;:::i;:::-;7212:22;:55::i;:::-;7277:26;7295:7;7277:17;:26::i;:::-;7340:2;-1:-1:-1::0;;;;;7319:56:24::2;7328:10;-1:-1:-1::0;;;;;7319:56:24::2;-1:-1:-1::0;;;;;;;;;;;7344:5:24::2;7351:14;7367:7;7319:56;;;;;;;;;;;;;;;;;7404:10;-1:-1:-1::0;;;;;7390:41:24::2;-1:-1:-1::0;;;;;;;;;;;7416:5:24::2;7423:7;7390:41;;;;;;;;;;;;;;;;7449:27;:14:::0;7468:7;7449:27:::2;:18;:27;:::i;:::-;585:9:39::0;:17;;-1:-1:-1;;;;585:17:39;;;7442:34:24;6601:882;-1:-1:-1;;;;;6601:882:24:o;9778:964::-;9848:15;9893;;9883:6;:25;;9875:67;;;;-1:-1:-1;;;9875:67:24;;;;;;;;;9970:23;9956:10;;;;:37;;;;;;;;;9952:784;;;10009:17;10029:46;10048:26;;10029:14;;:18;;:46;;;;:::i;:::-;10009:66;;10089:13;10105:16;:14;:16::i;:::-;10089:32;;10135:18;10156:33;10172:9;10183:5;10156:15;:33::i;:::-;10135:54;;10203:19;10225:137;10284:15;;10317:3;;10338:10;10225:41;:137::i;:::-;10203:159;;10430:31;10464:149;10523:27;10543:6;10523:15;;:19;;:27;;;;:::i;:::-;10568:3;;10589:10;10464:41;:149::i;:::-;10430:183;-1:-1:-1;10634:52:24;10650:35;10430:183;10678:6;10650:35;:27;:35;:::i;:::-;10634:11;;:52;:15;:52;:::i;:::-;10627:59;;;;;;;;;9952:784;-1:-1:-1;10724:1:24;9952:784;9778:964;;;:::o;2949:133:27:-;3040:20;;3027:48;;;-1:-1:-1;;;3027:48:27;;;;3001:7;;-1:-1:-1;;;;;3040:20:27;;3027:46;;:48;;;;;;;;;;;;;;3040:20;3027:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:55;;2949:133;;:::o;2006:43::-;;;;:::o;4161:1196:24:-;515:9:39;;4293:7:24;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;1522:8:24;::::1;548:16:39::0;1522:8:24::1;1521:9;1513:33;;;;-1:-1:-1::0;;;1513:33:24::1;;;;;;;;;4348:19:::2;4371;:17;:19::i;:::-;4345:45;;;4400:25;4428:22;:20;:22::i;:::-;4400:50;;4488:1;4468:17;:21;4460:45;;;;-1:-1:-1::0;;;4460:45:24::2;;;;;;;;;4516:27;4546:50;4584:11:::0;4546:29:::2;:6:::0;4557:17;4546:29:::2;:10;:29;:::i;:::-;:37:::0;:50:::2;:37;:50;:::i;:::-;4516:80;;4650:36;4675:10;4650:24;:36::i;:::-;4627:19;:59;;4606:141;;;;-1:-1:-1::0;;;4606:141:24::2;;;;;;;;;4811:15;4829:31;4853:6;4829:23;:31::i;:::-;4811:49;;4888:6;4878:7;:16;4870:43;;;;-1:-1:-1::0;;;4870:43:24::2;;;;;;;;;4976:27;::::0;:39:::2;::::0;5008:6;4976:39:::2;:31;:39;:::i;:::-;4946:27;:69:::0;5025:50:::2;5043:10;5055:19:::0;5025:17:::2;:50::i;:::-;5085:47;5108:2:::0;5112:19:::2;:6:::0;5123:7;5112:19:::2;:10;:19;:::i;5085:47::-;5142:26;5160:7;5142:17;:26::i;:::-;-1:-1:-1::0;;;;;5184:73:24;::::2;5193:10;-1:-1:-1::0;;;;;;;;;;;5209:5:24::2;5216:19;:6:::0;5227:7;5216:19:::2;:10;:19;:::i;:::-;5237;5184:73;;;;;;;;;;;;;;;;;5286:10;-1:-1:-1::0;;;;;5272:41:24::2;-1:-1:-1::0;;;;;;;;;;;5298:5:24::2;5305:7;5272:41;;;;;;;;;;;;;;;;5331:19;:6:::0;5342:7;5331:19:::2;:10;:19;:::i;:::-;585:9:39::0;:17;;-1:-1:-1;;;;585:17:39;;;5324:26:24;4161:1196;-1:-1:-1;;;;;;;4161:1196:24:o;264:22:37:-;;;-1:-1:-1;;;;;264:22:37;;:::o;1112:36:27:-;;;;:::o;1604:31::-;;;;;;:::o;7489:835:24:-;515:9:39;;7575:7:24;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;1522:8:24;::::1;548:16:39::0;1522:8:24::1;1521:9;1513:33;;;;-1:-1:-1::0;;;1513:33:24::1;;;;;;;;;7594:22:::2;7619:28;7636:10;7619:16;:28::i;:::-;7594:53;;7657:15;7675:35;7699:10;7675:23;:35::i;:::-;7657:53;;7774:15;7792:38;7815:14;7792:22;:38::i;:::-;7774:56;;7859:14;7848:7;:25;;7840:52;;;;-1:-1:-1::0;;;7840:52:24::2;;;;;;;;;7954:26;::::0;:46:::2;::::0;7985:14;7954:46:::2;:30;:46;:::i;:::-;7925:26;:75:::0;8010:37:::2;8027:10;8039:7:::0;8010:16:::2;:37::i;:::-;8057:54;8079:2:::0;8083:27:::2;:14:::0;8102:7;8083:27:::2;:18;:27;:::i;:::-;8057:21;:54::i;:::-;8121:25;8138:7;8121:16;:25::i;:::-;8183:2;-1:-1:-1::0;;;;;8162:55:24::2;8171:10;-1:-1:-1::0;;;;;8162:55:24::2;-1:-1:-1::0;;;;;;;;;;;8187:4:24::2;8193:14;8209:7;8162:55;;;;;;;;;;;;;;;;;8246:10;-1:-1:-1::0;;;;;8232:40:24::2;-1:-1:-1::0;;;;;;;;;;;8258:4:24::2;8264:7;8232:40;;;;;;;;3873:1392:26::0;515:9:39;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;3940:8:26;::::1;548:16:39::0;3940:8:26::1;3932:36;;;;-1:-1:-1::0;;;3932:36:26::1;;;;;;;;;3997:10;3987:21;::::0;;;:9:::1;:21;::::0;;;;;::::1;;3986:22;3978:50;;;;-1:-1:-1::0;;;3978:50:26::1;;;;;;;;;4048:10;4038:21;::::0;;;:9:::1;:21;::::0;;;;:28;;-1:-1:-1;;4038:28:26::1;4062:4;4038:28;::::0;;:21;4100:36:::1;::::0;:24:::1;:36::i;:::-;4077:59;;4146:19;4168:35;4192:10;4168:23;:35::i;:::-;4146:57:::0;-1:-1:-1;4214:19:26::1;4251:16:::0;;4247:134:::1;;4297:73;4347:22;:20;:22::i;:::-;4297:27;::::0;:45:::1;::::0;4329:12;4297:45:::1;:31;:45;:::i;:::-;:49:::0;:73:::1;:49;:73;:::i;:::-;4283:87;;4247:134;4390:18;4426:15:::0;;4422:129:::1;;4470:70;4518:21;:19;:21::i;:::-;4470:26;::::0;:43:::1;::::0;4501:11;4470:43:::1;:30;:43;:::i;:70::-;4457:83;;4422:129;4591:27;::::0;:44:::1;::::0;4623:11;4591:44:::1;:31;:44;:::i;:::-;4561:27;:74:::0;4674:26:::1;::::0;:42:::1;::::0;4705:10;4674:42:::1;:30;:42;:::i;:::-;4645:26;:71;;;;4741:75;4757:58;4773:11;4786:28;;4757:15;:58::i;:::-;4741:11:::0;;:75:::1;:15;:75;:::i;:::-;4727:89;;4839:75;4854:59;4870:12;4884:28;;4854:15;:59::i;:::-;4839:10:::0;;:75:::1;:14;:75;:::i;:::-;4826:88;;4925:45;4947:10;4959;4925:21;:45::i;:::-;4980:47;5003:10;5015:11;4980:22;:47::i;:::-;5051:20;::::0;5038:64:::1;::::0;-1:-1:-1;;;5038:64:26;;-1:-1:-1;;;;;5051:20:26;;::::1;::::0;5038:39:::1;::::0;:64:::1;::::0;5078:10:::1;::::0;5090:11;;5038:64:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5125:21:26::1;::::0;5112:66:::1;::::0;-1:-1:-1;;;5112:66:26;;-1:-1:-1;;;;;5125:21:26;;::::1;::::0;-1:-1:-1;5112:40:26::1;::::0;-1:-1:-1;5112:66:26::1;::::0;5153:10:::1;::::0;5165:12;;5112:66:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5206:10;-1:-1:-1::0;;;;;5194:48:26::1;;5218:10;5230:11;5194:48;;;;;;;;;;;;;;;;5252:7;;;;585:9:39::0;:17;;-1:-1:-1;;;;585:17:39;;;3873:1392:26:o;1688:42:27:-;;;;:::o;1751:121:24:-;1806:7;1832:33;1846:10;1858:6;1832:13;:33::i;:::-;1825:40;1751:121;-1:-1:-1;;1751:121:24:o;3243:135:27:-;3335:21;;3322:49;;;-1:-1:-1;;;3322:49:27;;;;3296:7;;-1:-1:-1;;;;;3335:21:27;;3322:47;;:49;;;;;;;;;;;;;;3335:21;3322:49;;;;;;;;;;9385:387:24;9445:17;9474:25;9502:22;:20;:22::i;:::-;9474:50;;9537:19;9560;:17;:19::i;:::-;9534:45;-1:-1:-1;;9593:22:24;9589:61;;9638:1;9631:8;;;;;;9589:61;9671:68;9721:17;9671:45;9704:11;9671:28;9696:2;9671:24;:28::i;:::-;:32;:45;:32;:45;:::i;:68::-;9659:80;9385:387;-1:-1:-1;;;;9385:387:24:o;2545:161:26:-;515:9:39;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;2623:41:26::1;2645:10;2657:6:::0;2623:21:::1;:41::i;:::-;2674:25;2692:6;2674:17;:25::i;:::-;-1:-1:-1::0;585:9:39;:17;;-1:-1:-1;;;;585:17:39;;;2545:161:26:o;1202:27:27:-;;;-1:-1:-1;;;;;1202:27:27;;:::o;1271:::-;;;-1:-1:-1;;;;;1271:27:27;;:::o;1352:::-;;;-1:-1:-1;;;;;1352:27:27;;:::o;912:32::-;;;;:::o;963:225:37:-;1030:11;;-1:-1:-1;;;;;1030:11:37;1016:10;:25;1008:51;;;;-1:-1:-1;;;1008:51:37;;;;;;;;;1104:11;;;1095:7;;1074:42;;-1:-1:-1;;;;;1104:11:37;;;;1095:7;;;;1074:42;;;1136:11;;;;1126:21;;-1:-1:-1;;;;;;1126:21:37;;;-1:-1:-1;;;;;1136:11:37;;1126:21;;;;1157:24;;;963:225::o;3433:87:27:-;3501:3;3433:87;:::o;2418:847:24:-;515:9:39;;2555:7:24;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;1278:23:24;::::1;548:16:39::0;1278:23:24::1;1270:61;;;;-1:-1:-1::0;;;1270:61:24::1;;;;;;;;;2581:19:::2;2604;:17;:19::i;:::-;2578:45;;;2633:25;2661:22;:20;:22::i;:::-;2633:50:::0;-1:-1:-1;2711:6:24;2731:22;2727:252:::2;;2837:23;:6:::0;2848:11;2837:23:::2;:10;:23;:::i;:::-;2827:33;;2727:252;;;2881:15:::0;;2877:102:::2;;2922:46;2956:11:::0;2922:29:::2;:6:::0;2933:17;2922:29:::2;:10;:29;:::i;:46::-;2912:56;;2877:102;3011:41;3033:10;3045:6;3011:21;:41::i;:::-;3062:30;3080:2;3084:7;3062:17;:30::i;:::-;3132:27;::::0;:39:::2;::::0;3164:6;3132:39:::2;:31;:39;:::i;:::-;3102:27;:69:::0;3187:47:::2;::::0;-1:-1:-1;;;;;3187:47:24;::::2;::::0;3195:10:::2;::::0;3187:47:::2;::::0;::::2;::::0;3211:5:::2;::::0;3218:6;;3226:7;;3187:47:::2;;;;;;;;;;585:9:39::0;:17;;-1:-1:-1;;;;585:17:39;;;3251:7:24;2418:847;-1:-1:-1;;;;;2418:847:24:o;2808:1006:26:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;2885:4:26::2;2874:15:::0;;-1:-1:-1;;;;;;;;2874:15:26;;::::2;-1:-1:-1::0;;;2874:15:26::2;2980:23:::0;;;2874:15;3040:21:::2;:19;:21::i;:::-;3013:48;;3071:25;3099:22;:20;:22::i;:::-;3071:50;;3154:27;;3136:15;;:45;3132:316;;;3197:18;3218:48;3238:27;;3218:15;;:19;;:48;;;;:::i;:::-;3197:69;;3311:50;3332:10;3344:16;3311:20;:50::i;:::-;3280:28;:81:::0;-1:-1:-1;3132:316:26::2;;;3422:15;::::0;3392:27:::2;:45:::0;3132:316:::2;3479:26;;3462:14;;:43;3458:309;;;3521:17;3541:46;3560:26;;3541:14;;:18;;:46;;;;:::i;:::-;3521:66;;3632:50;3653:9;3664:17;3632:20;:50::i;:::-;3601:28;:81:::0;-1:-1:-1;3458:309:26::2;;;3742:14;::::0;3713:26:::2;:43:::0;3458:309:::2;-1:-1:-1::0;;3777:10:26::2;:30:::0;;-1:-1:-1;;3777:30:26::2;::::0;;2808:1006::o;2055:41:27:-;;;;;;;;;;;;;;;:::o;772:20::-;;;-1:-1:-1;;;772:20:27;;;;;:::o;1419:23::-;;;-1:-1:-1;;;;;1419:23:27;;:::o;2682:108::-;2763:8;;2755:28;;;-1:-1:-1;;;2755:28:27;;;;2729:7;;-1:-1:-1;;;;;2763:8:27;;2755:26;;:28;;;;;;;;;;;;;;2763:8;2755:28;;;;;;;;;;2796:147;2901:20;;2888:48;;-1:-1:-1;;;2888:48:27;;2862:7;;-1:-1:-1;;;;;2901:20:27;;2888:44;;:48;;2933:2;;2888:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1771:30;;;;:::o;292:26:37:-;;;-1:-1:-1;;;;;292:26:37;;:::o;1036:29:27:-;;;;;;;;;:::o;5363:1175:24:-;515:9:39;;5494:7:24;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;1522:8:24;::::1;548:16:39::0;1522:8:24::1;1521:9;1513:33;;;;-1:-1:-1::0;;;1513:33:24::1;;;;;;;;;5547:18:::2;5571:19;:17;:19::i;:::-;5546:44;;;5600:24;5627:21;:19;:21::i;:::-;5600:48;;5685:1;5666:16;:20;5658:43;;;;-1:-1:-1::0;;;5658:43:24::2;;;;;;;;;5712:26;5741:48;5778:10:::0;5741:28:::2;:6:::0;5752:16;5741:28:::2;:10;:28;:::i;:48::-;5712:77;;5842:35;5866:10;5842:23;:35::i;:::-;5820:18;:57;;5799:138;;;;-1:-1:-1::0;;;5799:138:24::2;;;;;;;;;6001:15;6019:30;6042:6;6019:22;:30::i;:::-;6001:48;;6078:6;6067:7;:17;;6059:44;;;;-1:-1:-1::0;;;6059:44:24::2;;;;;;;;;6165:26;::::0;:38:::2;::::0;6196:6;6165:38:::2;:30;:38;:::i;:::-;6136:26;:67:::0;6213:48:::2;6230:10;6242:18:::0;6213:16:::2;:48::i;:::-;6271:46;6293:2:::0;6297:19:::2;:6:::0;6308:7;6297:19:::2;:10;:19;:::i;6271:46::-;6327:25;6344:7;6327:16;:25::i;:::-;-1:-1:-1::0;;;;;6368:71:24;::::2;6377:10;-1:-1:-1::0;;;;;;;;;;;6393:4:24::2;6399:19;:6:::0;6410:7;6399:19:::2;:10;:19;:::i;:::-;6420:18;6368:71;;;;;;;;;;;;;;;;;6468:10;-1:-1:-1::0;;;;;6454:40:24::2;-1:-1:-1::0;;;;;;;;;;;6480:4:24::2;6486:7;6454:40;;;;;;;;9000:379:::0;9059:17;9088:24;9115:21;:19;:21::i;:::-;9088:48;;9147:18;9171:19;:17;:19::i;:::-;-1:-1:-1;9146:44:24;-1:-1:-1;9204:21:24;9200:60;;9248:1;9241:8;;;;;;9200:60;9281:65;9329:16;9281:43;9313:10;9281:27;9305:2;9281:23;:27::i;1071:35:27:-;;;;:::o;1002:28::-;;;;;;:::o;839:34::-;;;-1:-1:-1;;;839:34:27;;;;;:::o;3271:831:24:-;515:9:39;;3406:7:24;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;1403:22:24;::::1;548:16:39::0;1403:22:24::1;1395:59;;;;-1:-1:-1::0;;;1395:59:24::1;;;;;;;;;3430:18:::2;3454:19;:17;:19::i;:::-;3429:44;;;3483:24;3510:21;:19;:21::i;:::-;3483:48:::0;-1:-1:-1;3559:6:24;3579:21;3575:246:::2;;3683:22;:6:::0;3694:10;3683:22:::2;:10;:22;:::i;:::-;3673:32;;3575:246;;;3726:14:::0;;3722:99:::2;;3766:44;3799:10:::0;3766:28:::2;:6:::0;3777:16;3766:28:::2;:10;:28;:::i;:44::-;3756:54;;3722:99;3853:40;3874:10;3886:6;3853:20;:40::i;:::-;3903:29;3920:2;3924:7;3903:16;:29::i;:::-;3971:26;::::0;:38:::2;::::0;4002:6;3971:38:::2;:30;:38;:::i;:::-;3942:26;:67:::0;4025:46:::2;::::0;-1:-1:-1;;;;;4025:46:24;::::2;::::0;4033:10:::2;::::0;4025:46:::2;::::0;::::2;::::0;4049:4:::2;::::0;4055:6;;4063:7;;4025:46:::2;;1511:28:27::0;;;;:::o;1849:36::-;;;-1:-1:-1;;;;;1849:36:27;;:::o;1641:41::-;;;;:::o;1878:125:24:-;1935:7;1961:35;1977:10;1989:6;1961:15;:35::i;1545:28:27:-;;;;:::o;5324:581:26:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;5415:12:26::1;::::0;-1:-1:-1;;;;;5406:21:26;;::::1;5415:12:::0;::::1;5406:21;5402:214;;;5517:14;::::0;:26:::1;::::0;5536:6;5517:26:::1;:18;:26;:::i;:::-;5475:12;::::0;5468:45:::1;::::0;-1:-1:-1;;;5468:45:26;;-1:-1:-1;;;;;5475:12:26;;::::1;::::0;5468:30:::1;::::0;:45:::1;::::0;5507:4:::1;::::0;5468:45:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:75;;5443:162;;;;-1:-1:-1::0;;;5443:162:26::1;;;;;;;;;5638:13;::::0;-1:-1:-1;;;;;5629:22:26;;::::1;5638:13:::0;::::1;5629:22;5625:218;;;5742:15;::::0;:27:::1;::::0;5762:6;5742:27:::1;:19;:27;:::i;:::-;5699:13;::::0;5692:46:::1;::::0;-1:-1:-1;;;5692:46:26;;-1:-1:-1;;;;;5699:13:26;;::::1;::::0;5692:31:::1;::::0;:46:::1;::::0;5732:4:::1;::::0;5692:46:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;;5667:165;;;;-1:-1:-1::0;;;5667:165:26::1;;;;;;;;;5852:46;-1:-1:-1::0;;;;;5852:26:26;::::1;5879:10;5891:6:::0;5852:46:::1;:26;:46;:::i;:::-;5324:581:::0;;:::o;2251:109:24:-;2297:7;2323:30;2342:10;2323:18;:30::i;798:35:27:-;;;-1:-1:-1;;;798:35:27;;;;;:::o;1957:43::-;;;;:::o;2138:107:24:-;2183:7;2209:29;2227:10;2209:17;:29::i;1385:28:27:-;;;-1:-1:-1;;;;;1385:28:27;;:::o;1808:35::-;;;-1:-1:-1;;;;;1808:35:27;;:::o;879:27::-;;;-1:-1:-1;;;879:27:27;;;;;:::o;1736:29::-;;;;:::o;1579:18::-;;;;:::o;2381:158:26:-;515:9:39;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;2458:40:26::1;2479:10;2491:6:::0;2458:20:::1;:40::i;:::-;2508:24;2525:6;2508:16;:24::i;5504:799:25:-:0;5548:16;5577:18;5597:19;5620;:17;:19::i;:::-;5576:63;;-1:-1:-1;5576:63:25;-1:-1:-1;5667:23:25;5653:10;;;;:37;;;;;;;;;5649:648;;;5706:9;5718:134;5756:49;5789:15;;5756:28;5772:11;5756;:15;;:28;;;;:::i;:49::-;5823:15;;5718:20;:134::i;:::-;5706:146;;5870:53;5899:23;5915:3;;5920:1;5899:15;:23::i;:::-;5890:3;;5870:24;;379:6:36;;5870:24:25;:19;:24;:::i;:::-;:28;:53;:28;:53;:::i;:::-;5866:57;;5944:41;5965:16;:14;:16::i;:::-;5983:1;5944:20;:41::i;:::-;5937:48;;;;;;;5649:648;6016:9;6028:130;6066:46;6097:14;;6066:26;6081:10;6066;:14;;:26;;;;:::i;:46::-;6130:14;;6028:20;:130::i;:::-;6016:142;;6176:53;6205:23;6221:3;;6226:1;6205:15;:23::i;6176:53::-;6172:57;;6250:36;6266:16;:14;:16::i;:::-;6284:1;6250:15;:36::i;10748:963:24:-;10817:15;10862:14;;10852:6;:24;;10844:65;;;;-1:-1:-1;;;10844:65:24;;;;;;;;;10937:23;10923:10;;;;:37;;;;;;;;;10919:786;;;10976:18;10997:48;11017:27;;10997:15;;:19;;:48;;;;:::i;:::-;10976:69;;11059:13;11075:16;:14;:16::i;:::-;11059:32;;11105:18;11126:39;11147:10;11159:5;11126:20;:39::i;:::-;11105:60;;11179:18;11200:136;11259:14;;11291:3;;11312:10;11200:41;:136::i;:::-;11179:157;;11403:30;11436:148;11495:26;11514:6;11495:14;;:18;;:26;;;;:::i;737:220:37:-;648:7;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;-1:-1:-1;;;;;819:22:37;::::1;811:48;;;;-1:-1:-1::0;;;811:48:37::1;;;;;;;;;900:7;::::0;;874:44:::1;::::0;-1:-1:-1;;;;;874:44:37;;::::1;::::0;900:7;::::1;::::0;874:44:::1;::::0;::::1;928:11;:22:::0;;-1:-1:-1;;;;;;928:22:37::1;-1:-1:-1::0;;;;;928:22:37;;;::::1;::::0;;;::::1;::::0;;737:220::o;2009:123:24:-;2065:7;2091:34;2106:10;2118:6;2091:14;:34::i;3088:149:27:-;3194:21;;3181:49;;-1:-1:-1;;;3181:49:27;;3155:7;;-1:-1:-1;;;;;3194:21:27;;3181:45;;:49;;3227:2;;3181:49;;;;1622:123:24;1678:7;1704:34;1719:10;1731:6;1704:14;:34::i;4819:679:25:-;4932:15;;4969:14;;4869:18;;;;;4997:10;;;;:31;;;;;;;;;4993:499;;;5052:26;;5080:27;;5044:64;;;;;;;;4993:499;5143:23;5129:10;;;;:37;;;;;;;;;5125:367;;;5182:21;5206:18;:16;:18::i;:::-;5246:26;;5182:42;;-1:-1:-1;5274:20:25;:1;5182:42;5274:20;:5;:20;:::i;:::-;5238:57;;;;;;;;;5125:367;5330:23;5316:10;;;;:37;;;;;;;;;5312:180;;;5369:20;5392:18;:16;:18::i;:::-;5369:41;-1:-1:-1;5432:19:25;:1;5369:41;5432:19;:5;:19;:::i;:::-;5453:27;;5424:57;;;;;;;;;5312:180;4819:679;;;;;:::o;934:134:41:-;992:7;1024:1;1019;:6;;1011:28;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;8806:137:24:-;8895:21;;8882:54;;-1:-1:-1;;;8882:54:24;;-1:-1:-1;;;;;8895:21:24;;;;8882:40;;:54;;8923:4;;8929:6;;8882:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8806:137;;:::o;1763:187:26:-;1849:13;;1842:46;;-1:-1:-1;;;;;1849:13:26;1877:2;1881:6;1842:46;:34;:46;:::i;:::-;1916:15;;:27;;1936:6;1916:27;:19;:27;:::i;:::-;1898:15;:45;-1:-1:-1;;1763:187:26:o;2201:174::-;2293:27;;:39;;2325:6;2293:39;:31;:39;:::i;:::-;2263:27;:69;2347:21;;;;;;2354:6;;2362:5;;2347:21;;;;;;;;;;2201:174;:::o;392:115:36:-;455:7;379:6;481:13;:6;492:1;481:13;:10;:13;:::i;:::-;:19;;;;;;;392:115;-1:-1:-1;;;392:115:36:o;3310:569:35:-;3448:10;3504:12;3519:62;3539:37;3574:1;3539:30;3555:1;3558:10;3539:15;:30::i;:37::-;3578:2;3519:19;:62::i;:::-;3504:77;-1:-1:-1;3598:53:35;:46;379:6:36;3598:25:35;3504:77;379:6:36;3598:25:35;:8;:25;:::i;:46::-;:51;:53::i;:::-;3591:60;-1:-1:-1;3661:15:35;3679:56;3699:25;3591:60;379:6:36;3699:25:35;:8;:25;:::i;:::-;3726:8;:1;3732;3726:8;:5;:8;:::i;:::-;3679:19;:56::i;:::-;3661:74;-1:-1:-1;3823:49:35;3839:2;3843:28;379:6:36;3661:74:35;3843:28;:19;:28;:::i;:::-;3823:15;:49::i;:::-;3816:56;3310:569;-1:-1:-1;;;;;;3310:569:35:o;1074:157:41:-;1132:7;1163:5;;;1186:6;;;;1178:28;;;;-1:-1:-1;;;1178:28:41;;;;;;;;;1223:1;1074:157;-1:-1:-1;;;1074:157:41:o;281:217::-;339:7;362:6;358:45;;-1:-1:-1;391:1:41;384:8;;358:45;425:5;;;429:1;425;:5;:1;448:5;;;;;:10;440:32;;;;-1:-1:-1;;;440:32:41;;;;;;;;648:280;710:7;729:16;748:9;752:1;755;748:3;:9::i;:::-;729:28;-1:-1:-1;791:12:41;;;787:16;;817:13;;813:109;;-1:-1:-1;864:1:41;853:12;;-1:-1:-1;846:19:41;;813:109;-1:-1:-1;903:8:41;-1:-1:-1;896:15:41;;8665:135:24;8753:20;;8740:53;;-1:-1:-1;;;8740:53:24;;-1:-1:-1;;;;;8753:20:24;;;;8740:39;;:53;;8780:4;;8786:6;;8740:53;;;;1574:183:26;1659:12;;1652:45;;-1:-1:-1;;;;;1659:12:26;1686:2;1690:6;1652:45;:33;:45;:::i;:::-;1724:14;;:26;;1743:6;1724:26;:18;:26;:::i;:::-;1707:14;:43;-1:-1:-1;;1574:183:26:o;2025:170::-;2115:26;;:38;;2146:6;2115:38;:30;:38;:::i;:::-;2086:26;:67;2168:20;;;;;;2175:6;;2183:4;;2168:20;;504:138:41;562:7;593:1;589;:5;581:32;;;;-1:-1:-1;;;581:32:41;;;;;;;;;634:1;630;:5;;;;1222:346:26;1354:21;;1323:15;;:27;;1343:6;1323:27;:19;:27;:::i;:::-;:52;;1302:127;;;;-1:-1:-1;;;1302:127:26;;;;;;;;;1446:13;;1439:67;;-1:-1:-1;;;;;1446:13:26;1478:4;1492;1499:6;1439:67;:38;:67;:::i;:::-;1534:15;;:27;;1554:6;1534:27;:19;:27;:::i;8522:137:24:-;8611:21;;8598:54;;-1:-1:-1;;;8598:54:24;;-1:-1:-1;;;;;8611:21:24;;;;8598:40;;:54;;8639:4;;8645:6;;8598:54;;;;645:123:36;713:7;739:22;759:1;739:15;:6;379;739:15;:10;:15;:::i;911:305:26:-;1028:20;;998:14;;:26;;1017:6;998:26;:18;:26;:::i;:::-;:50;;990:90;;;;-1:-1:-1;;;990:90:26;;;;;;;;;1097:12;;1090:66;;-1:-1:-1;;;;;1097:12:26;1128:4;1142;1149:6;1090:66;:37;:66;:::i;:::-;1183:14;;:26;;1202:6;1183:26;:18;:26;:::i;8381:135:24:-;8469:20;;8456:53;;-1:-1:-1;;;8456:53:24;;-1:-1:-1;;;;;8469:20:24;;;;8456:39;;:53;;8496:4;;8502:6;;8456:53;;;;804:205:40;916:86;936:5;966:23;;;991:2;995:5;943:58;;;;;;;;;;;;;;-1:-1:-1;;943:58:40;;;;;;;;;;;;;;-1:-1:-1;;;;;943:58:40;-1:-1:-1;;;;;;943:58:40;;;;;;;;;;916:19;:86::i;:::-;804:205;;;:::o;2736:578:25:-;2787:21;2927:17;2947:46;2966:26;;2947:14;;:18;;:46;;;;:::i;:::-;2927:66;;3003:13;3019:16;:14;:16::i;:::-;3003:32;;3045:18;3066:33;3082:9;3093:5;3066:15;:33::i;:::-;3045:54;;3109:22;3134:121;3189:15;;3218:3;;3235:10;3134:41;:121::i;:::-;3109:146;;3272:35;3291:15;;3272:14;:18;;:35;;;;:::i;:::-;3265:42;;;;;;2736:578;:::o;4180:582::-;4231:20;4370:18;4391:48;4411:27;;4391:15;;:19;;:48;;;;:::i;:::-;4370:69;;4449:13;4465:16;:14;:16::i;:::-;4449:32;;4491:18;4512:39;4533:10;4545:5;4512:20;:39::i;:::-;4491:60;;4561:21;4585:120;4640:14;;4668:3;;4685:10;4585:41;:120::i;:::-;4561:144;;4722:33;4740:14;;4722:13;:17;;:33;;;;:::i;774:126:36:-;841:7;867:26;891:1;867:15;:6;379;867:15;:10;:15;:::i;1237:198:41:-;1318:1;1326;1322;1318:5;;:9;1352:77;1363:1;1359;:5;1352:77;;;1384:1;1380:5;;1417:1;1412;1408;1404;:5;;;;;;:9;1403:15;;;;;;1399:19;;1352:77;;;1237:198;;;;:::o;1015:275:40:-;1153:130;1186:5;1228:27;;;1257:4;1263:2;1267:5;1205:68;;;;;;;;;;;1153:130;1015:275;;;;:::o;2335:1027::-;2984:12;2998:23;3033:5;-1:-1:-1;;;;;3025:19:40;3045:4;3025:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2983:67;;;;3068:7;3060:52;;;;-1:-1:-1;;;3060:52:40;;;;;;;;;3127:17;;:21;3123:233;;3279:10;3268:30;;;;;;;;;;;;;;3260:85;;;;-1:-1:-1;;;3260:85:40;;;;;;;;5:130:-1;72:20;;-1:-1;;;;;25745:54;;26855:35;;26845:2;;26904:1;;26894:12;555:241;;659:2;647:9;638:7;634:23;630:32;627:2;;;-1:-1;;665:12;627:2;727:53;772:7;748:22;727:53;;803:366;;;924:2;912:9;903:7;899:23;895:32;892:2;;;-1:-1;;930:12;892:2;992:53;1037:7;1013:22;992:53;;;982:63;1082:2;1121:22;;;;344:20;;-1:-1;;;886:283;1176:257;;1288:2;1276:9;1267:7;1263:23;1259:32;1256:2;;;-1:-1;;1294:12;1256:2;223:6;217:13;27001:5;25518:13;25511:21;26979:5;26976:32;26966:2;;-1:-1;;27012:12;1440:241;;1544:2;1532:9;1523:7;1519:23;1515:32;1512:2;;;-1:-1;;1550:12;1512:2;-1:-1;344:20;;1506:175;-1:-1;1506:175;1688:263;;1803:2;1791:9;1782:7;1778:23;1774:32;1771:2;;;-1:-1;;1809:12;1771:2;-1:-1;492:13;;1765:186;-1:-1;1765:186;10963:271;;2498:5;24988:12;-1:-1;26481:101;26495:6;26492:1;26489:13;26481:101;;;2642:4;26562:11;;;;;26556:18;26543:11;;;26536:39;26510:10;26481:101;;;26597:6;26594:1;26591:13;26588:2;;;-1:-1;26653:6;26648:3;26644:16;26637:27;26588:2;-1:-1;2673:16;;;;;11097:137;-1:-1;;11097:137;11241:222;-1:-1;;;;;25745:54;;;;2178:37;;11368:2;11353:18;;11339:124;11470:349;-1:-1;;;;;25745:54;;;;2037:58;;11805:2;11790:18;;10914:37;11633:2;11618:18;;11604:215;11826:444;-1:-1;;;;;25745:54;;;2178:37;;25745:54;;;;12173:2;12158:18;;2178:37;12256:2;12241:18;;10914:37;;;;12009:2;11994:18;;11980:290;12617:210;25518:13;;25511:21;2292:34;;12738:2;12723:18;;12709:118;12834:321;25518:13;;25511:21;2292:34;;13141:2;13126:18;;10914:37;12983:2;12968:18;;12954:201;13162:432;25518:13;;25511:21;2292:34;;13497:2;13482:18;;10914:37;;;;13580:2;13565:18;;10914:37;13339:2;13324:18;;13310:284;13601:244;13739:2;13724:18;;26767:1;26757:12;;26747:2;;26773:9;26747:2;2783:61;;;13710:135;;13852:416;14052:2;14066:47;;;3081:2;14037:18;;;25286:19;3117:31;25326:14;;;3097:52;3168:12;;;14023:245;14275:416;14475:2;14489:47;;;3419:2;14460:18;;;25286:19;-1:-1;;;25326:14;;;3435:36;3490:12;;;14446:245;14698:416;14898:2;14912:47;;;3741:2;14883:18;;;25286:19;-1:-1;;;25326:14;;;3757:33;3809:12;;;14869:245;15121:416;15321:2;15335:47;;;4060:2;15306:18;;;25286:19;4096:26;25326:14;;;4076:47;4142:12;;;15292:245;15544:416;15744:2;15758:47;;;4393:2;15729:18;;;25286:19;4429:27;25326:14;;;4409:48;4476:12;;;15715:245;15967:416;16167:2;16181:47;;;4727:1;16152:18;;;25286:19;-1:-1;;;25326:14;;;4742:32;4793:12;;;16138:245;16390:416;16590:2;16604:47;;;5044:2;16575:18;;;25286:19;-1:-1;;;25326:14;;;5060:34;5113:12;;;16561:245;16813:416;17013:2;17027:47;;;5364:2;16998:18;;;25286:19;5400:30;25326:14;;;5380:51;5450:12;;;16984:245;17236:416;17436:2;17450:47;;;17421:18;;;25286:19;5737:34;25326:14;;;5717:55;5791:12;;;17407:245;17659:416;17859:2;17873:47;;;6042:2;17844:18;;;25286:19;-1:-1;;;25326:14;;;6058:37;6114:12;;;17830:245;18082:416;18282:2;18296:47;;;6365:2;18267:18;;;25286:19;6401:34;25326:14;;;6381:55;-1:-1;;;6456:12;;;6449:27;6495:12;;;18253:245;18505:416;18705:2;18719:47;;;6746:2;18690:18;;;25286:19;6782:29;25326:14;;;6762:50;6831:12;;;18676:245;18928:416;19128:2;19142:47;;;7082:1;19113:18;;;25286:19;-1:-1;;;25326:14;;;7097:32;7148:12;;;19099:245;19351:416;19551:2;19565:47;;;7399:2;19536:18;;;25286:19;7435:30;25326:14;;;7415:51;7485:12;;;19522:245;19774:416;19974:2;19988:47;;;7736:2;19959:18;;;25286:19;-1:-1;;;25326:14;;;7752:36;7807:12;;;19945:245;20197:416;20397:2;20411:47;;;8058:2;20382:18;;;25286:19;-1:-1;;;25326:14;;;8074:37;8130:12;;;20368:245;20620:416;20820:2;20834:47;;;8381:2;20805:18;;;25286:19;-1:-1;;;25326:14;;;8397:34;8450:12;;;20791:245;21043:416;21243:2;21257:47;;;8701:1;21228:18;;;25286:19;-1:-1;;;25326:14;;;8716:32;8767:12;;;21214:245;21466:416;21666:2;21680:47;;;9018:1;21651:18;;;25286:19;-1:-1;;;25326:14;;;9033:32;9084:12;;;21637:245;21889:416;22089:2;22103:47;;;9335:2;22074:18;;;25286:19;9371:34;25326:14;;;9351:55;-1:-1;;;9426:12;;;9419:34;9472:12;;;22060:245;22312:416;22512:2;22526:47;;;9723:2;22497:18;;;25286:19;9759:34;25326:14;;;9739:55;-1:-1;;;9814:12;;;9807:26;9852:12;;;22483:245;22735:416;22935:2;22949:47;;;10103:1;22920:18;;;25286:19;-1:-1;;;25326:14;;;10118:32;10169:12;;;22906:245;23158:416;23358:2;23372:47;;;10420:2;23343:18;;;25286:19;-1:-1;;;25326:14;;;10436:38;10493:12;;;23329:245;23581:416;23781:2;23795:47;;;10744:2;23766:18;;;25286:19;-1:-1;;;25326:14;;;10760:38;10817:12;;;23752:245;24004:222;10914:37;;;24131:2;24116:18;;24102:124;24233:321;10914:37;;;25518:13;25511:21;24540:2;24525:18;;2292:34;24382:2;24367:18;;24353:201;24561:333;10914:37;;;24880:2;24865:18;;10914:37;24716:2;24701:18;;24687:207", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {SafeMath} from \"../lib/SafeMath.sol\";\nimport {DecimalMath} from \"../lib/DecimalMath.sol\";\nimport {DODOMath} from \"../lib/DODOMath.sol\";\nimport {Types} from \"../lib/Types.sol\";\nimport {IDODOLpToken} from \"../intf/IDODOLpToken.sol\";\nimport {Storage} from \"./Storage.sol\";\nimport {Settlement} from \"./Settlement.sol\";\nimport {Pricing} from \"./Pricing.sol\";\n\n\n/**\n * @title LiquidityProvider\n * @author DODO Breeder\n *\n * @notice Functions for liquidity provider operations\n */\ncontract LiquidityProvider is Storage, Pricing, Settlement {\n using SafeMath for uint256;\n\n // ============ Events ============\n\n event Deposit(\n address indexed payer,\n address indexed receiver,\n bool isBaseToken,\n uint256 amount,\n uint256 lpTokenAmount\n );\n\n event Withdraw(\n address indexed payer,\n address indexed receiver,\n bool isBaseToken,\n uint256 amount,\n uint256 lpTokenAmount\n );\n\n event ChargePenalty(address indexed payer, bool isBaseToken, uint256 amount);\n\n // ============ Modifiers ============\n\n modifier depositQuoteAllowed() {\n require(_DEPOSIT_QUOTE_ALLOWED_, \"DEPOSIT_QUOTE_NOT_ALLOWED\");\n _;\n }\n\n modifier depositBaseAllowed() {\n require(_DEPOSIT_BASE_ALLOWED_, \"DEPOSIT_BASE_NOT_ALLOWED\");\n _;\n }\n\n modifier dodoNotClosed() {\n require(!_CLOSED_, \"DODO_CLOSED\");\n _;\n }\n\n // ============ Routine Functions ============\n\n function withdrawBase(uint256 amount) external returns (uint256) {\n return withdrawBaseTo(msg.sender, amount);\n }\n\n function depositBase(uint256 amount) external returns (uint256) {\n return depositBaseTo(msg.sender, amount);\n }\n\n function withdrawQuote(uint256 amount) external returns (uint256) {\n return withdrawQuoteTo(msg.sender, amount);\n }\n\n function depositQuote(uint256 amount) external returns (uint256) {\n return depositQuoteTo(msg.sender, amount);\n }\n\n function withdrawAllBase() external returns (uint256) {\n return withdrawAllBaseTo(msg.sender);\n }\n\n function withdrawAllQuote() external returns (uint256) {\n return withdrawAllQuoteTo(msg.sender);\n }\n\n // ============ Deposit Functions ============\n\n function depositQuoteTo(address to, uint256 amount)\n public\n preventReentrant\n depositQuoteAllowed\n returns (uint256)\n {\n (, uint256 quoteTarget) = getExpectedTarget();\n uint256 totalQuoteCapital = getTotalQuoteCapital();\n uint256 capital = amount;\n if (totalQuoteCapital == 0) {\n // give remaining quote token to lp as a gift\n capital = amount.add(quoteTarget);\n } else if (quoteTarget > 0) {\n capital = amount.mul(totalQuoteCapital).div(quoteTarget);\n }\n\n // settlement\n _quoteTokenTransferIn(msg.sender, amount);\n _mintQuoteCapital(to, capital);\n _TARGET_QUOTE_TOKEN_AMOUNT_ = _TARGET_QUOTE_TOKEN_AMOUNT_.add(amount);\n\n emit Deposit(msg.sender, to, false, amount, capital);\n return capital;\n }\n\n function depositBaseTo(address to, uint256 amount)\n public\n preventReentrant\n depositBaseAllowed\n returns (uint256)\n {\n (uint256 baseTarget, ) = getExpectedTarget();\n uint256 totalBaseCapital = getTotalBaseCapital();\n uint256 capital = amount;\n if (totalBaseCapital == 0) {\n // give remaining base token to lp as a gift\n capital = amount.add(baseTarget);\n } else if (baseTarget > 0) {\n capital = amount.mul(totalBaseCapital).div(baseTarget);\n }\n\n // settlement\n _baseTokenTransferIn(msg.sender, amount);\n _mintBaseCapital(to, capital);\n _TARGET_BASE_TOKEN_AMOUNT_ = _TARGET_BASE_TOKEN_AMOUNT_.add(amount);\n\n emit Deposit(msg.sender, to, true, amount, capital);\n return capital;\n }\n\n // ============ Withdraw Functions ============\n\n function withdrawQuoteTo(address to, uint256 amount)\n public\n preventReentrant\n dodoNotClosed\n returns (uint256)\n {\n // calculate capital\n (, uint256 quoteTarget) = getExpectedTarget();\n uint256 totalQuoteCapital = getTotalQuoteCapital();\n require(totalQuoteCapital > 0, \"NO_QUOTE_LP\");\n\n uint256 requireQuoteCapital = amount.mul(totalQuoteCapital).divCeil(quoteTarget);\n require(\n requireQuoteCapital <= getQuoteCapitalBalanceOf(msg.sender),\n \"LP_QUOTE_CAPITAL_BALANCE_NOT_ENOUGH\"\n );\n\n // handle penalty, penalty may exceed amount\n uint256 penalty = getWithdrawQuotePenalty(amount);\n require(penalty < amount, \"PENALTY_EXCEED\");\n\n // settlement\n _TARGET_QUOTE_TOKEN_AMOUNT_ = _TARGET_QUOTE_TOKEN_AMOUNT_.sub(amount);\n _burnQuoteCapital(msg.sender, requireQuoteCapital);\n _quoteTokenTransferOut(to, amount.sub(penalty));\n _donateQuoteToken(penalty);\n\n emit Withdraw(msg.sender, to, false, amount.sub(penalty), requireQuoteCapital);\n emit ChargePenalty(msg.sender, false, penalty);\n\n return amount.sub(penalty);\n }\n\n function withdrawBaseTo(address to, uint256 amount)\n public\n preventReentrant\n dodoNotClosed\n returns (uint256)\n {\n // calculate capital\n (uint256 baseTarget, ) = getExpectedTarget();\n uint256 totalBaseCapital = getTotalBaseCapital();\n require(totalBaseCapital > 0, \"NO_BASE_LP\");\n\n uint256 requireBaseCapital = amount.mul(totalBaseCapital).divCeil(baseTarget);\n require(\n requireBaseCapital <= getBaseCapitalBalanceOf(msg.sender),\n \"LP_BASE_CAPITAL_BALANCE_NOT_ENOUGH\"\n );\n\n // handle penalty, penalty may exceed amount\n uint256 penalty = getWithdrawBasePenalty(amount);\n require(penalty <= amount, \"PENALTY_EXCEED\");\n\n // settlement\n _TARGET_BASE_TOKEN_AMOUNT_ = _TARGET_BASE_TOKEN_AMOUNT_.sub(amount);\n _burnBaseCapital(msg.sender, requireBaseCapital);\n _baseTokenTransferOut(to, amount.sub(penalty));\n _donateBaseToken(penalty);\n\n emit Withdraw(msg.sender, to, true, amount.sub(penalty), requireBaseCapital);\n emit ChargePenalty(msg.sender, true, penalty);\n\n return amount.sub(penalty);\n }\n\n // ============ Withdraw all Functions ============\n\n function withdrawAllQuoteTo(address to)\n public\n preventReentrant\n dodoNotClosed\n returns (uint256)\n {\n uint256 withdrawAmount = getLpQuoteBalance(msg.sender);\n uint256 capital = getQuoteCapitalBalanceOf(msg.sender);\n\n // handle penalty, penalty may exceed amount\n uint256 penalty = getWithdrawQuotePenalty(withdrawAmount);\n require(penalty <= withdrawAmount, \"PENALTY_EXCEED\");\n\n // settlement\n _TARGET_QUOTE_TOKEN_AMOUNT_ = _TARGET_QUOTE_TOKEN_AMOUNT_.sub(withdrawAmount);\n _burnQuoteCapital(msg.sender, capital);\n _quoteTokenTransferOut(to, withdrawAmount.sub(penalty));\n _donateQuoteToken(penalty);\n\n emit Withdraw(msg.sender, to, false, withdrawAmount, capital);\n emit ChargePenalty(msg.sender, false, penalty);\n\n return withdrawAmount.sub(penalty);\n }\n\n function withdrawAllBaseTo(address to) public preventReentrant dodoNotClosed returns (uint256) {\n uint256 withdrawAmount = getLpBaseBalance(msg.sender);\n uint256 capital = getBaseCapitalBalanceOf(msg.sender);\n\n // handle penalty, penalty may exceed amount\n uint256 penalty = getWithdrawBasePenalty(withdrawAmount);\n require(penalty <= withdrawAmount, \"PENALTY_EXCEED\");\n\n // settlement\n _TARGET_BASE_TOKEN_AMOUNT_ = _TARGET_BASE_TOKEN_AMOUNT_.sub(withdrawAmount);\n _burnBaseCapital(msg.sender, capital);\n _baseTokenTransferOut(to, withdrawAmount.sub(penalty));\n _donateBaseToken(penalty);\n\n emit Withdraw(msg.sender, to, true, withdrawAmount, capital);\n emit ChargePenalty(msg.sender, true, penalty);\n\n return withdrawAmount.sub(penalty);\n }\n\n // ============ Helper Functions ============\n\n function _mintBaseCapital(address user, uint256 amount) internal {\n IDODOLpToken(_BASE_CAPITAL_TOKEN_).mint(user, amount);\n }\n\n function _mintQuoteCapital(address user, uint256 amount) internal {\n IDODOLpToken(_QUOTE_CAPITAL_TOKEN_).mint(user, amount);\n }\n\n function _burnBaseCapital(address user, uint256 amount) internal {\n IDODOLpToken(_BASE_CAPITAL_TOKEN_).burn(user, amount);\n }\n\n function _burnQuoteCapital(address user, uint256 amount) internal {\n IDODOLpToken(_QUOTE_CAPITAL_TOKEN_).burn(user, amount);\n }\n\n // ============ Getter Functions ============\n\n function getLpBaseBalance(address lp) public view returns (uint256 lpBalance) {\n uint256 totalBaseCapital = getTotalBaseCapital();\n (uint256 baseTarget, ) = getExpectedTarget();\n if (totalBaseCapital == 0) {\n return 0;\n }\n lpBalance = getBaseCapitalBalanceOf(lp).mul(baseTarget).div(totalBaseCapital);\n return lpBalance;\n }\n\n function getLpQuoteBalance(address lp) public view returns (uint256 lpBalance) {\n uint256 totalQuoteCapital = getTotalQuoteCapital();\n (, uint256 quoteTarget) = getExpectedTarget();\n if (totalQuoteCapital == 0) {\n return 0;\n }\n lpBalance = getQuoteCapitalBalanceOf(lp).mul(quoteTarget).div(totalQuoteCapital);\n return lpBalance;\n }\n\n function getWithdrawQuotePenalty(uint256 amount) public view returns (uint256 penalty) {\n require(amount <= _QUOTE_BALANCE_, \"DODO_QUOTE_BALANCE_NOT_ENOUGH\");\n if (_R_STATUS_ == Types.RStatus.BELOW_ONE) {\n uint256 spareBase = _BASE_BALANCE_.sub(_TARGET_BASE_TOKEN_AMOUNT_);\n uint256 price = getOraclePrice();\n uint256 fairAmount = DecimalMath.mul(spareBase, price);\n uint256 targetQuote = DODOMath._SolveQuadraticFunctionForTarget(\n _QUOTE_BALANCE_,\n _K_,\n fairAmount\n );\n // if amount = _QUOTE_BALANCE_, div error\n uint256 targetQuoteWithWithdraw = DODOMath._SolveQuadraticFunctionForTarget(\n _QUOTE_BALANCE_.sub(amount),\n _K_,\n fairAmount\n );\n return targetQuote.sub(targetQuoteWithWithdraw.add(amount));\n } else {\n return 0;\n }\n }\n\n function getWithdrawBasePenalty(uint256 amount) public view returns (uint256 penalty) {\n require(amount <= _BASE_BALANCE_, \"DODO_BASE_BALANCE_NOT_ENOUGH\");\n if (_R_STATUS_ == Types.RStatus.ABOVE_ONE) {\n uint256 spareQuote = _QUOTE_BALANCE_.sub(_TARGET_QUOTE_TOKEN_AMOUNT_);\n uint256 price = getOraclePrice();\n uint256 fairAmount = DecimalMath.divFloor(spareQuote, price);\n uint256 targetBase = DODOMath._SolveQuadraticFunctionForTarget(\n _BASE_BALANCE_,\n _K_,\n fairAmount\n );\n // if amount = _BASE_BALANCE_, div error\n uint256 targetBaseWithWithdraw = DODOMath._SolveQuadraticFunctionForTarget(\n _BASE_BALANCE_.sub(amount),\n _K_,\n fairAmount\n );\n return targetBase.sub(targetBaseWithWithdraw.add(amount));\n } else {\n return 0;\n }\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/LiquidityProvider.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/LiquidityProvider.sol", + "exportedSymbols": { + "LiquidityProvider": [ + 8369 + ] + }, + "id": 8370, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7349, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:24" + }, + { + "id": 7350, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:24" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 7352, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 11624, + "src": "136:45:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7351, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 7354, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 11079, + "src": "182:51:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7353, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "190:11:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol", + "file": "../lib/DODOMath.sol", + "id": 7356, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 10993, + "src": "234:45:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7355, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "242:8:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "file": "../lib/Types.sol", + "id": 7358, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 11632, + "src": "280:39:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7357, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "288:5:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol", + "file": "../intf/IDODOLpToken.sol", + "id": 7360, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 10537, + "src": "320:54:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7359, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "328:12:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "file": "./Storage.sol", + "id": 7362, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 9614, + "src": "375:38:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7361, + "name": "Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "383:7:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Settlement.sol", + "file": "./Settlement.sol", + "id": 7364, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 9397, + "src": "414:44:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7363, + "name": "Settlement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "422:10:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Pricing.sol", + "file": "./Pricing.sol", + "id": 7366, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 8854, + "src": "459:38:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7365, + "name": "Pricing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "467:7:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7368, + "name": "Storage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9613, + "src": "648:7:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Storage_$9613", + "typeString": "contract Storage" + } + }, + "id": 7369, + "nodeType": "InheritanceSpecifier", + "src": "648:7:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7370, + "name": "Pricing", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 8853, + "src": "657:7:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pricing_$8853", + "typeString": "contract Pricing" + } + }, + "id": 7371, + "nodeType": "InheritanceSpecifier", + "src": "657:7:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7372, + "name": "Settlement", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9396, + "src": "666:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + }, + "id": 7373, + "nodeType": "InheritanceSpecifier", + "src": "666:10:24" + } + ], + "contractDependencies": [ + 8853, + 9396, + 9613, + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 7367, + "nodeType": "StructuredDocumentation", + "src": "500:117:24", + "text": " @title LiquidityProvider\n @author DODO Breeder\n @notice Functions for liquidity provider operations" + }, + "fullyImplemented": true, + "id": 8369, + "linearizedBaseContracts": [ + 8369, + 9396, + 8853, + 9613, + 11296, + 11166 + ], + "name": "LiquidityProvider", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 7376, + "libraryName": { + "contractScope": null, + "id": 7374, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "689:8:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "683:27:24", + "typeName": { + "id": 7375, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "702:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 7388, + "name": "Deposit", + "nodeType": "EventDefinition", + "parameters": { + "id": 7387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7378, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7388, + "src": "780:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7377, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "780:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7380, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7388, + "src": "811:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7379, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "811:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7382, + "indexed": false, + "mutability": "mutable", + "name": "isBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7388, + "src": "845:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7381, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "845:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7384, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7388, + "src": "871:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "871:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7386, + "indexed": false, + "mutability": "mutable", + "name": "lpTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7388, + "src": "895:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "895:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "770:152:24" + }, + "src": "757:166:24" + }, + { + "anonymous": false, + "documentation": null, + "id": 7400, + "name": "Withdraw", + "nodeType": "EventDefinition", + "parameters": { + "id": 7399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7390, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7400, + "src": "953:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "953:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7392, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7400, + "src": "984:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7391, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "984:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7394, + "indexed": false, + "mutability": "mutable", + "name": "isBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7400, + "src": "1018:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7393, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1018:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7396, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7400, + "src": "1044:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7395, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1044:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7398, + "indexed": false, + "mutability": "mutable", + "name": "lpTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7400, + "src": "1068:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1068:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "943:152:24" + }, + "src": "929:167:24" + }, + { + "anonymous": false, + "documentation": null, + "id": 7408, + "name": "ChargePenalty", + "nodeType": "EventDefinition", + "parameters": { + "id": 7407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7402, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7408, + "src": "1122:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1122:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7404, + "indexed": false, + "mutability": "mutable", + "name": "isBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7408, + "src": "1145:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7403, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1145:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7406, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7408, + "src": "1163:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7405, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1163:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1121:57:24" + }, + "src": "1102:77:24" + }, + { + "body": { + "id": 7416, + "nodeType": "Block", + "src": "1260:89:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7411, + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9427, + "src": "1278:23:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4445504f5349545f51554f54455f4e4f545f414c4c4f574544", + "id": 7412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1303:27:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f8ca46e1665f66396f293f9a520e0b7eba90c16ed34c9b5d30b4532a06b94ae", + "typeString": "literal_string \"DEPOSIT_QUOTE_NOT_ALLOWED\"" + }, + "value": "DEPOSIT_QUOTE_NOT_ALLOWED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f8ca46e1665f66396f293f9a520e0b7eba90c16ed34c9b5d30b4532a06b94ae", + "typeString": "literal_string \"DEPOSIT_QUOTE_NOT_ALLOWED\"" + } + ], + "id": 7410, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1270:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1270:61:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7414, + "nodeType": "ExpressionStatement", + "src": "1270:61:24" + }, + { + "id": 7415, + "nodeType": "PlaceholderStatement", + "src": "1341:1:24" + } + ] + }, + "documentation": null, + "id": 7417, + "name": "depositQuoteAllowed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 7409, + "nodeType": "ParameterList", + "parameters": [], + "src": "1257:2:24" + }, + "src": "1229:120:24", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7425, + "nodeType": "Block", + "src": "1385:87:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7420, + "name": "_DEPOSIT_BASE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9429, + "src": "1403:22:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4445504f5349545f424153455f4e4f545f414c4c4f574544", + "id": 7421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1427:26:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2e520f2f988e5e849fb2744d0cdabd1103964b7b504d67387f2f6654882bc899", + "typeString": "literal_string \"DEPOSIT_BASE_NOT_ALLOWED\"" + }, + "value": "DEPOSIT_BASE_NOT_ALLOWED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2e520f2f988e5e849fb2744d0cdabd1103964b7b504d67387f2f6654882bc899", + "typeString": "literal_string \"DEPOSIT_BASE_NOT_ALLOWED\"" + } + ], + "id": 7419, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1395:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1395:59:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7423, + "nodeType": "ExpressionStatement", + "src": "1395:59:24" + }, + { + "id": 7424, + "nodeType": "PlaceholderStatement", + "src": "1464:1:24" + } + ] + }, + "documentation": null, + "id": 7426, + "name": "depositBaseAllowed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 7418, + "nodeType": "ParameterList", + "parameters": [], + "src": "1382:2:24" + }, + "src": "1355:117:24", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7435, + "nodeType": "Block", + "src": "1503:61:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1521:9:24", + "subExpression": { + "argumentTypes": null, + "id": 7429, + "name": "_CLOSED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9425, + "src": "1522:8:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f434c4f534544", + "id": 7431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1532:13:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b376000e0a4ab5aa456645b38033c091a45a656f290df894531d9e6e6accb956", + "typeString": "literal_string \"DODO_CLOSED\"" + }, + "value": "DODO_CLOSED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b376000e0a4ab5aa456645b38033c091a45a656f290df894531d9e6e6accb956", + "typeString": "literal_string \"DODO_CLOSED\"" + } + ], + "id": 7428, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1513:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1513:33:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7433, + "nodeType": "ExpressionStatement", + "src": "1513:33:24" + }, + { + "id": 7434, + "nodeType": "PlaceholderStatement", + "src": "1556:1:24" + } + ] + }, + "documentation": null, + "id": 7436, + "name": "dodoNotClosed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 7427, + "nodeType": "ParameterList", + "parameters": [], + "src": "1500:2:24" + }, + "src": "1478:86:24", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7449, + "nodeType": "Block", + "src": "1687:58:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7444, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1719:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1719:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7446, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7438, + "src": "1731:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7443, + "name": "withdrawBaseTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7908, + "src": "1704:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) returns (uint256)" + } + }, + "id": 7447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1704:34:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7442, + "id": 7448, + "nodeType": "Return", + "src": "1697:41:24" + } + ] + }, + "documentation": null, + "functionSelector": "f98bea15", + "id": 7450, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7438, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7450, + "src": "1644:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1644:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1643:16:24" + }, + "returnParameters": { + "id": 7442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7441, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7450, + "src": "1678:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1678:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1677:9:24" + }, + "scope": 8369, + "src": "1622:123:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7463, + "nodeType": "Block", + "src": "1815:57:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7458, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1846:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1846:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7460, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7452, + "src": "1858:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7457, + "name": "depositBaseTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7682, + "src": "1832:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) returns (uint256)" + } + }, + "id": 7461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1832:33:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7456, + "id": 7462, + "nodeType": "Return", + "src": "1825:40:24" + } + ] + }, + "documentation": null, + "functionSelector": "27bed8ee", + "id": 7464, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "depositBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7452, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7464, + "src": "1772:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1772:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1771:16:24" + }, + "returnParameters": { + "id": 7456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7455, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7464, + "src": "1806:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1806:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1805:9:24" + }, + "scope": 8369, + "src": "1751:121:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7477, + "nodeType": "Block", + "src": "1944:59:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7472, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1977:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1977:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7474, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7466, + "src": "1989:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7471, + "name": "withdrawQuoteTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7795, + "src": "1961:15:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) returns (uint256)" + } + }, + "id": 7475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1961:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7470, + "id": 7476, + "nodeType": "Return", + "src": "1954:42:24" + } + ] + }, + "documentation": null, + "functionSelector": "c0a5f6ff", + "id": 7478, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7466, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7478, + "src": "1901:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7465, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1901:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1900:16:24" + }, + "returnParameters": { + "id": 7470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7469, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7478, + "src": "1935:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7468, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1935:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1934:9:24" + }, + "scope": 8369, + "src": "1878:125:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7491, + "nodeType": "Block", + "src": "2074:58:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7486, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2106:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2106:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7488, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7480, + "src": "2118:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7485, + "name": "depositQuoteTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7598, + "src": "2091:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) returns (uint256)" + } + }, + "id": 7489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2091:34:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7484, + "id": 7490, + "nodeType": "Return", + "src": "2084:41:24" + } + ] + }, + "documentation": null, + "functionSelector": "f3ae6c5f", + "id": 7492, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "depositQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7480, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7492, + "src": "2031:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7479, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2031:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2030:16:24" + }, + "returnParameters": { + "id": 7484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7483, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7492, + "src": "2065:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7482, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2065:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2064:9:24" + }, + "scope": 8369, + "src": "2009:123:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7502, + "nodeType": "Block", + "src": "2192:53:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7498, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2227:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2227:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7497, + "name": "withdrawAllBaseTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8078, + "src": "2209:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 7500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2209:29:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7496, + "id": 7501, + "nodeType": "Return", + "src": "2202:36:24" + } + ] + }, + "documentation": null, + "functionSelector": "d47eaa37", + "id": 7503, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawAllBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7493, + "nodeType": "ParameterList", + "parameters": [], + "src": "2162:2:24" + }, + "returnParameters": { + "id": 7496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7503, + "src": "2183:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2183:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2182:9:24" + }, + "scope": 8369, + "src": "2138:107:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7513, + "nodeType": "Block", + "src": "2306:54:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7509, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2342:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2342:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7508, + "name": "withdrawAllQuoteTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7993, + "src": "2323:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 7511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2323:30:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7507, + "id": 7512, + "nodeType": "Return", + "src": "2316:37:24" + } + ] + }, + "documentation": null, + "functionSelector": "c59203af", + "id": 7514, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawAllQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7504, + "nodeType": "ParameterList", + "parameters": [], + "src": "2276:2:24" + }, + "returnParameters": { + "id": 7507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7506, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7514, + "src": "2297:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2297:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2296:9:24" + }, + "scope": 8369, + "src": "2251:109:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7597, + "nodeType": "Block", + "src": "2568:697:24", + "statements": [ + { + "assignments": [ + null, + 7528 + ], + "declarations": [ + null, + { + "constant": false, + "id": 7528, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7597, + "src": "2581:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2581:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7531, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7529, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "2604:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 7530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2604:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2578:45:24" + }, + { + "assignments": [ + 7533 + ], + "declarations": [ + { + "constant": false, + "id": 7533, + "mutability": "mutable", + "name": "totalQuoteCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7597, + "src": "2633:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2633:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7536, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7534, + "name": "getTotalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9604, + "src": "2661:20:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 7535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2661:22:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2633:50:24" + }, + { + "assignments": [ + 7538 + ], + "declarations": [ + { + "constant": false, + "id": 7538, + "mutability": "mutable", + "name": "capital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7597, + "src": "2693:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2693:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7540, + "initialValue": { + "argumentTypes": null, + "id": 7539, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7518, + "src": "2711:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2693:24:24" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7541, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7533, + "src": "2731:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2752:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2731:22:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7552, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7528, + "src": "2881:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2895:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2881:15:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7566, + "nodeType": "IfStatement", + "src": "2877:102:24", + "trueBody": { + "id": 7565, + "nodeType": "Block", + "src": "2898:81:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7555, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7538, + "src": "2912:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7561, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7528, + "src": "2956:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7558, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7533, + "src": "2933:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7556, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7518, + "src": "2922:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "2922:10:24", + "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": 7559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2922:29:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "2922:33:24", + "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": 7562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2922:46:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2912:56:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7564, + "nodeType": "ExpressionStatement", + "src": "2912:56:24" + } + ] + } + }, + "id": 7567, + "nodeType": "IfStatement", + "src": "2727:252:24", + "trueBody": { + "id": 7551, + "nodeType": "Block", + "src": "2755:116:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7544, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7538, + "src": "2827:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7547, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7528, + "src": "2848:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7545, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7518, + "src": "2837:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2837:10:24", + "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": 7548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2837:23:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2827:33:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7550, + "nodeType": "ExpressionStatement", + "src": "2827:33:24" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7569, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3033:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3033:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7571, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7518, + "src": "3045:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7568, + "name": "_quoteTokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8967, + "src": "3011:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3011:41:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7573, + "nodeType": "ExpressionStatement", + "src": "3011:41:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7575, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7516, + "src": "3080:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7576, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7538, + "src": "3084:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7574, + "name": "_mintQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8110, + "src": "3062:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3062:30:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7578, + "nodeType": "ExpressionStatement", + "src": "3062:30:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7579, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "3102:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7582, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7518, + "src": "3164:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7580, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "3132:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3132:31:24", + "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": 7583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3132:39:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3102:69:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7585, + "nodeType": "ExpressionStatement", + "src": "3102:69:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7587, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3195:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3195:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7589, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7516, + "src": "3207:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3211:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 7591, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7518, + "src": "3218:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7592, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7538, + "src": "3226:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7586, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7388, + "src": "3187:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256)" + } + }, + "id": 7593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3187:47:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7594, + "nodeType": "EmitStatement", + "src": "3182:52:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7595, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7538, + "src": "3251:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7526, + "id": 7596, + "nodeType": "Return", + "src": "3244:14:24" + } + ] + }, + "documentation": null, + "functionSelector": "5f179f64", + "id": 7598, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7521, + "modifierName": { + "argumentTypes": null, + "id": 7520, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "2493:16:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2493:16:24" + }, + { + "arguments": null, + "id": 7523, + "modifierName": { + "argumentTypes": null, + "id": 7522, + "name": "depositQuoteAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7417, + "src": "2518:19:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2518:19:24" + } + ], + "name": "depositQuoteTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7516, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7598, + "src": "2442:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2442:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7518, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7598, + "src": "2454:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7517, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2454:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2441:28:24" + }, + "returnParameters": { + "id": 7526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7525, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7598, + "src": "2555:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7524, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2555:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2554:9:24" + }, + "scope": 8369, + "src": "2418:847:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7681, + "nodeType": "Block", + "src": "3419:683:24", + "statements": [ + { + "assignments": [ + 7612, + null + ], + "declarations": [ + { + "constant": false, + "id": 7612, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7681, + "src": "3430:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3430:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 7615, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7613, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "3454:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 7614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3454:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3429:44:24" + }, + { + "assignments": [ + 7617 + ], + "declarations": [ + { + "constant": false, + "id": 7617, + "mutability": "mutable", + "name": "totalBaseCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7681, + "src": "3483:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3483:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7620, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7618, + "name": "getTotalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "3510:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 7619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3510:21:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3483:48:24" + }, + { + "assignments": [ + 7622 + ], + "declarations": [ + { + "constant": false, + "id": 7622, + "mutability": "mutable", + "name": "capital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7681, + "src": "3541:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3541:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7624, + "initialValue": { + "argumentTypes": null, + "id": 7623, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "3559:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3541:24:24" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7625, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7617, + "src": "3579:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3599:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3579:21:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7636, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7612, + "src": "3726:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3739:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3726:14:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7650, + "nodeType": "IfStatement", + "src": "3722:99:24", + "trueBody": { + "id": 7649, + "nodeType": "Block", + "src": "3742:79:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7639, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7622, + "src": "3756:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7645, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7612, + "src": "3799:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7642, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7617, + "src": "3777:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7640, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "3766:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3766:10:24", + "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": 7643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3766:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "3766:32:24", + "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": 7646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3766:44:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3756:54:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7648, + "nodeType": "ExpressionStatement", + "src": "3756:54:24" + } + ] + } + }, + "id": 7651, + "nodeType": "IfStatement", + "src": "3575:246:24", + "trueBody": { + "id": 7635, + "nodeType": "Block", + "src": "3602:114:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7628, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7622, + "src": "3673:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7631, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7612, + "src": "3694:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7629, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "3683:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3683:10:24", + "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": 7632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3683:22:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3673:32:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7634, + "nodeType": "ExpressionStatement", + "src": "3673:32:24" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7653, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3874:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3874:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7655, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "3886:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7652, + "name": "_baseTokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8930, + "src": "3853:20:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3853:40:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7657, + "nodeType": "ExpressionStatement", + "src": "3853:40:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7659, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7600, + "src": "3920:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7660, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7622, + "src": "3924:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7658, + "name": "_mintBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8094, + "src": "3903:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3903:29:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7662, + "nodeType": "ExpressionStatement", + "src": "3903:29:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7663, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "3942:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7666, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "4002:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7664, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "3971:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3971:30:24", + "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": 7667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3971:38:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3942:67:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7669, + "nodeType": "ExpressionStatement", + "src": "3942:67:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7671, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4033:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4033:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7673, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7600, + "src": "4045:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4049:4:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 7675, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "4055:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7676, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7622, + "src": "4063:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7670, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7388, + "src": "4025:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256)" + } + }, + "id": 7677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4025:46:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7678, + "nodeType": "EmitStatement", + "src": "4020:51:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7679, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7622, + "src": "4088:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7610, + "id": 7680, + "nodeType": "Return", + "src": "4081:14:24" + } + ] + }, + "documentation": null, + "functionSelector": "aa06ce9b", + "id": 7682, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7605, + "modifierName": { + "argumentTypes": null, + "id": 7604, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "3345:16:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3345:16:24" + }, + { + "arguments": null, + "id": 7607, + "modifierName": { + "argumentTypes": null, + "id": 7606, + "name": "depositBaseAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7426, + "src": "3370:18:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3370:18:24" + } + ], + "name": "depositBaseTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7600, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7682, + "src": "3294:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3294:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7602, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7682, + "src": "3306:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7601, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3306:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3293:28:24" + }, + "returnParameters": { + "id": 7610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7609, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7682, + "src": "3406:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3406:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3405:9:24" + }, + "scope": 8369, + "src": "3271:831:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7794, + "nodeType": "Block", + "src": "4306:1051:24", + "statements": [ + { + "assignments": [ + null, + 7696 + ], + "declarations": [ + null, + { + "constant": false, + "id": 7696, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7794, + "src": "4348:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7695, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4348:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7699, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7697, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "4371:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 7698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4371:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4345:45:24" + }, + { + "assignments": [ + 7701 + ], + "declarations": [ + { + "constant": false, + "id": 7701, + "mutability": "mutable", + "name": "totalQuoteCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7794, + "src": "4400:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4400:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7704, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7702, + "name": "getTotalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9604, + "src": "4428:20:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 7703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4428:22:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4400:50:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7706, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7701, + "src": "4468:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4488:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4468:21:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f5f51554f54455f4c50", + "id": 7709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4491:13:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45201781226c6ef295dd5fc256e793e26359d1272043d931959202cf3772a527", + "typeString": "literal_string \"NO_QUOTE_LP\"" + }, + "value": "NO_QUOTE_LP" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45201781226c6ef295dd5fc256e793e26359d1272043d931959202cf3772a527", + "typeString": "literal_string \"NO_QUOTE_LP\"" + } + ], + "id": 7705, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4460:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4460:45:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7711, + "nodeType": "ExpressionStatement", + "src": "4460:45:24" + }, + { + "assignments": [ + 7713 + ], + "declarations": [ + { + "constant": false, + "id": 7713, + "mutability": "mutable", + "name": "requireQuoteCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7794, + "src": "4516:27:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7712, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4516:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7721, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7719, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7696, + "src": "4584:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7716, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7701, + "src": "4557:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7714, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "4546:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "4546:10:24", + "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": 7717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4546:29:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11536, + "src": "4546:37:24", + "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": 7720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4546:50:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4516:80:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7723, + "name": "requireQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7713, + "src": "4627:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7725, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4675:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4675:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7724, + "name": "getQuoteCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9592, + "src": "4650:24:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 7727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4650:36:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4627:59:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4c505f51554f54455f4341504954414c5f42414c414e43455f4e4f545f454e4f554748", + "id": 7729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4700:37:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5bad2f07e59b1b4b8d72ecf482313290c21067f6dbad6059e0d3f71b7d3bcc8a", + "typeString": "literal_string \"LP_QUOTE_CAPITAL_BALANCE_NOT_ENOUGH\"" + }, + "value": "LP_QUOTE_CAPITAL_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5bad2f07e59b1b4b8d72ecf482313290c21067f6dbad6059e0d3f71b7d3bcc8a", + "typeString": "literal_string \"LP_QUOTE_CAPITAL_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 7722, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4606:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4606:141:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7731, + "nodeType": "ExpressionStatement", + "src": "4606:141:24" + }, + { + "assignments": [ + 7733 + ], + "declarations": [ + { + "constant": false, + "id": 7733, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7794, + "src": "4811:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4811:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7737, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7735, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "4853:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7734, + "name": "getWithdrawQuotePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8294, + "src": "4829:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 7736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4829:31:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4811:49:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7739, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "4878:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 7740, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "4888:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4878:16:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "50454e414c54595f455843454544", + "id": 7742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4896:16:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + }, + "value": "PENALTY_EXCEED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + } + ], + "id": 7738, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4870:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4870:43:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7744, + "nodeType": "ExpressionStatement", + "src": "4870:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7745, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4946:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7748, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "5008:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7746, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4976:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4976:31:24", + "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": 7749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4976:39:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4946:69:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7751, + "nodeType": "ExpressionStatement", + "src": "4946:69:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7753, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5043:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5043:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7755, + "name": "requireQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7713, + "src": "5055:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7752, + "name": "_burnQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8142, + "src": "5025:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5025:50:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7757, + "nodeType": "ExpressionStatement", + "src": "5025:50:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7759, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7684, + "src": "5108:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7762, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "5123:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7760, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "5112:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5112:10:24", + "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": 7763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5112:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7758, + "name": "_quoteTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9013, + "src": "5085:22:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5085:47:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7765, + "nodeType": "ExpressionStatement", + "src": "5085:47:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7767, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "5160:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7766, + "name": "_donateQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9049, + "src": "5142:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 7768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5142:26:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7769, + "nodeType": "ExpressionStatement", + "src": "5142:26:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7771, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5193:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5193:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7773, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7684, + "src": "5205:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5209:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7777, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "5227:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7775, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "5216:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5216:10:24", + "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": 7778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5216:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7779, + "name": "requireQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7713, + "src": "5237:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7770, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7400, + "src": "5184:8:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256)" + } + }, + "id": 7780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5184:73:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7781, + "nodeType": "EmitStatement", + "src": "5179:78:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7783, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5286:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5286:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5298:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 7786, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "5305:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7782, + "name": "ChargePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7408, + "src": "5272:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,bool,uint256)" + } + }, + "id": 7787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5272:41:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7788, + "nodeType": "EmitStatement", + "src": "5267:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7791, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "5342:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7789, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "5331:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5331:10:24", + "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": 7792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5331:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7694, + "id": 7793, + "nodeType": "Return", + "src": "5324:26:24" + } + ] + }, + "documentation": null, + "functionSelector": "108db744", + "id": 7795, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7689, + "modifierName": { + "argumentTypes": null, + "id": 7688, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "4237:16:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4237:16:24" + }, + { + "arguments": null, + "id": 7691, + "modifierName": { + "argumentTypes": null, + "id": 7690, + "name": "dodoNotClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7436, + "src": "4262:13:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4262:13:24" + } + ], + "name": "withdrawQuoteTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7684, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7795, + "src": "4186:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7683, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4186:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7686, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7795, + "src": "4198:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4198:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4185:28:24" + }, + "returnParameters": { + "id": 7694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7795, + "src": "4293:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4293:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4292:9:24" + }, + "scope": 8369, + "src": "4161:1196:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7907, + "nodeType": "Block", + "src": "5507:1031:24", + "statements": [ + { + "assignments": [ + 7809, + null + ], + "declarations": [ + { + "constant": false, + "id": 7809, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7907, + "src": "5547:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7808, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5547:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 7812, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7810, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "5571:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 7811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5571:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5546:44:24" + }, + { + "assignments": [ + 7814 + ], + "declarations": [ + { + "constant": false, + "id": 7814, + "mutability": "mutable", + "name": "totalBaseCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7907, + "src": "5600:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7813, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5600:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7817, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7815, + "name": "getTotalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "5627:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 7816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5627:21:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5600:48:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7819, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7814, + "src": "5666:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5685:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5666:20:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f5f424153455f4c50", + "id": 7822, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5688:12:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2055d54795f762d6673f3bc8faaa342b115cddd4a9aa8ace9a8727200addf048", + "typeString": "literal_string \"NO_BASE_LP\"" + }, + "value": "NO_BASE_LP" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2055d54795f762d6673f3bc8faaa342b115cddd4a9aa8ace9a8727200addf048", + "typeString": "literal_string \"NO_BASE_LP\"" + } + ], + "id": 7818, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5658:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5658:43:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7824, + "nodeType": "ExpressionStatement", + "src": "5658:43:24" + }, + { + "assignments": [ + 7826 + ], + "declarations": [ + { + "constant": false, + "id": 7826, + "mutability": "mutable", + "name": "requireBaseCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7907, + "src": "5712:26:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5712:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7834, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7832, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7809, + "src": "5778:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7829, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7814, + "src": "5752:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7827, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "5741:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5741:10:24", + "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": 7830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5741:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11536, + "src": "5741:36:24", + "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": 7833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5741:48:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5712:77:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7836, + "name": "requireBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7826, + "src": "5820:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7838, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5866:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5866:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7837, + "name": "getBaseCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9565, + "src": "5842:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 7840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5842:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5820:57:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4c505f424153455f4341504954414c5f42414c414e43455f4e4f545f454e4f554748", + "id": 7842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5891:36:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e164233d6cf78234887d09e5e50c550b2c28ca6ae5f0aec3a8a1a3855da5f380", + "typeString": "literal_string \"LP_BASE_CAPITAL_BALANCE_NOT_ENOUGH\"" + }, + "value": "LP_BASE_CAPITAL_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e164233d6cf78234887d09e5e50c550b2c28ca6ae5f0aec3a8a1a3855da5f380", + "typeString": "literal_string \"LP_BASE_CAPITAL_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 7835, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5799:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5799:138:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7844, + "nodeType": "ExpressionStatement", + "src": "5799:138:24" + }, + { + "assignments": [ + 7846 + ], + "declarations": [ + { + "constant": false, + "id": 7846, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7907, + "src": "6001:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6001:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7850, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7848, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "6042:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7847, + "name": "getWithdrawBasePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8368, + "src": "6019:22:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 7849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6019:30:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6001:48:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7852, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7846, + "src": "6067:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7853, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "6078:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6067:17:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "50454e414c54595f455843454544", + "id": 7855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6086:16:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + }, + "value": "PENALTY_EXCEED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + } + ], + "id": 7851, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6059:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6059:44:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7857, + "nodeType": "ExpressionStatement", + "src": "6059:44:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7858, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "6136:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7861, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "6196:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7859, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "6165:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6165:30:24", + "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": 7862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6165:38:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6136:67:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7864, + "nodeType": "ExpressionStatement", + "src": "6136:67:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7866, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6230:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6230:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7868, + "name": "requireBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7826, + "src": "6242:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7865, + "name": "_burnBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8126, + "src": "6213:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6213:48:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7870, + "nodeType": "ExpressionStatement", + "src": "6213:48:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7872, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7797, + "src": "6293:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7875, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7846, + "src": "6308:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7873, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "6297:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6297:10:24", + "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": 7876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6297:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7871, + "name": "_baseTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8990, + "src": "6271:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6271:46:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7878, + "nodeType": "ExpressionStatement", + "src": "6271:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7880, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7846, + "src": "6344:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7879, + "name": "_donateBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9031, + "src": "6327:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 7881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6327:25:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7882, + "nodeType": "ExpressionStatement", + "src": "6327:25:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7884, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6377:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6377:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7886, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7797, + "src": "6389:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6393:4:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7890, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7846, + "src": "6410:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7888, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "6399:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6399:10:24", + "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": 7891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6399:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7892, + "name": "requireBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7826, + "src": "6420:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7883, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7400, + "src": "6368:8:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256)" + } + }, + "id": 7893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6368:71:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7894, + "nodeType": "EmitStatement", + "src": "6363:76:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7896, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6468:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6468:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6480:4:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 7899, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7846, + "src": "6486:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7895, + "name": "ChargePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7408, + "src": "6454:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,bool,uint256)" + } + }, + "id": 7900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6454:40:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7901, + "nodeType": "EmitStatement", + "src": "6449:45:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7904, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7846, + "src": "6523:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7902, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "6512:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6512:10:24", + "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": 7905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6512:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7807, + "id": 7906, + "nodeType": "Return", + "src": "6505:26:24" + } + ] + }, + "documentation": null, + "functionSelector": "947cf92b", + "id": 7908, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7802, + "modifierName": { + "argumentTypes": null, + "id": 7801, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "5438:16:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5438:16:24" + }, + { + "arguments": null, + "id": 7804, + "modifierName": { + "argumentTypes": null, + "id": 7803, + "name": "dodoNotClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7436, + "src": "5463:13:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5463:13:24" + } + ], + "name": "withdrawBaseTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7797, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7908, + "src": "5387:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5387:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7799, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7908, + "src": "5399:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7798, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5399:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5386:28:24" + }, + "returnParameters": { + "id": 7807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7806, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7908, + "src": "5494:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5494:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5493:9:24" + }, + "scope": 8369, + "src": "5363:1175:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7992, + "nodeType": "Block", + "src": "6733:750:24", + "statements": [ + { + "assignments": [ + 7920 + ], + "declarations": [ + { + "constant": false, + "id": 7920, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7992, + "src": "6743:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6743:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7925, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7922, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6786:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6786:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7921, + "name": "getLpQuoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8220, + "src": "6768:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 7924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6768:29:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6743:54:24" + }, + { + "assignments": [ + 7927 + ], + "declarations": [ + { + "constant": false, + "id": 7927, + "mutability": "mutable", + "name": "capital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7992, + "src": "6807:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6807:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7932, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7929, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6850:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6850:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7928, + "name": "getQuoteCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9592, + "src": "6825:24:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 7931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6825:36:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6807:54:24" + }, + { + "assignments": [ + 7934 + ], + "declarations": [ + { + "constant": false, + "id": 7934, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7992, + "src": "6925:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6925:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7938, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7936, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7920, + "src": "6967:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7935, + "name": "getWithdrawQuotePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8294, + "src": "6943:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 7937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6943:39:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6925:57:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7940, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7934, + "src": "7000:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7941, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7920, + "src": "7011:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:25:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "50454e414c54595f455843454544", + "id": 7943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7027:16:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + }, + "value": "PENALTY_EXCEED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + } + ], + "id": 7939, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6992:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6992:52:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7945, + "nodeType": "ExpressionStatement", + "src": "6992:52:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7946, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "7077:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7949, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7920, + "src": "7139:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7947, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "7107:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "7107:31:24", + "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": 7950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7107:47:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7077:77:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7952, + "nodeType": "ExpressionStatement", + "src": "7077:77:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7954, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7182:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7182:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7956, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7927, + "src": "7194:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7953, + "name": "_burnQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8142, + "src": "7164:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7164:38:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7958, + "nodeType": "ExpressionStatement", + "src": "7164:38:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7960, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7910, + "src": "7235:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7963, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7934, + "src": "7258:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7961, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7920, + "src": "7239:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "7239:18:24", + "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": 7964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7239:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7959, + "name": "_quoteTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9013, + "src": "7212:22:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7212:55:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7966, + "nodeType": "ExpressionStatement", + "src": "7212:55:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7968, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7934, + "src": "7295:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7967, + "name": "_donateQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9049, + "src": "7277:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 7969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7277:26:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7970, + "nodeType": "ExpressionStatement", + "src": "7277:26:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7972, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7328:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7328:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7974, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7910, + "src": "7340:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7344:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 7976, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7920, + "src": "7351:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7977, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7927, + "src": "7367:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7971, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7400, + "src": "7319:8:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256)" + } + }, + "id": 7978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7319:56:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7979, + "nodeType": "EmitStatement", + "src": "7314:61:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7981, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7404:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7404:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7416:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 7984, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7934, + "src": "7423:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7980, + "name": "ChargePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7408, + "src": "7390:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,bool,uint256)" + } + }, + "id": 7985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7390:41:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7986, + "nodeType": "EmitStatement", + "src": "7385:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7989, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7934, + "src": "7468:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7987, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7920, + "src": "7449:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "7449:18:24", + "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": 7990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7449:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7918, + "id": 7991, + "nodeType": "Return", + "src": "7442:34:24" + } + ] + }, + "documentation": null, + "functionSelector": "04512dc4", + "id": 7993, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7913, + "modifierName": { + "argumentTypes": null, + "id": 7912, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "6664:16:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6664:16:24" + }, + { + "arguments": null, + "id": 7915, + "modifierName": { + "argumentTypes": null, + "id": 7914, + "name": "dodoNotClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7436, + "src": "6689:13:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6689:13:24" + } + ], + "name": "withdrawAllQuoteTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7911, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7910, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7993, + "src": "6629:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7909, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6629:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6628:12:24" + }, + "returnParameters": { + "id": 7918, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7993, + "src": "6720:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7916, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6720:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6719:9:24" + }, + "scope": 8369, + "src": "6601:882:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8077, + "nodeType": "Block", + "src": "7584:740:24", + "statements": [ + { + "assignments": [ + 8005 + ], + "declarations": [ + { + "constant": false, + "id": 8005, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8077, + "src": "7594:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8004, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7594:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8007, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7636:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7636:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 8006, + "name": "getLpBaseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8181, + "src": "7619:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 8009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7619:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7594:53:24" + }, + { + "assignments": [ + 8012 + ], + "declarations": [ + { + "constant": false, + "id": 8012, + "mutability": "mutable", + "name": "capital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8077, + "src": "7657:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7657:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8017, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8014, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7699:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7699:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 8013, + "name": "getBaseCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9565, + "src": "7675:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 8016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7675:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7657:53:24" + }, + { + "assignments": [ + 8019 + ], + "declarations": [ + { + "constant": false, + "id": 8019, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8077, + "src": "7774:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7774:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8023, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8021, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "7815:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8020, + "name": "getWithdrawBasePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8368, + "src": "7792:22:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 8022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7792:38:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7774:56:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8025, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8019, + "src": "7848:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8026, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "7859:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7848:25:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "50454e414c54595f455843454544", + "id": 8028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:16:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + }, + "value": "PENALTY_EXCEED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + } + ], + "id": 8024, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7840:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7840:52:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8030, + "nodeType": "ExpressionStatement", + "src": "7840:52:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 8036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8031, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "7925:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8034, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "7985:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8032, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "7954:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "7954:30:24", + "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": 8035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7954:46:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7925:75:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8037, + "nodeType": "ExpressionStatement", + "src": "7925:75:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8039, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8027:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8027:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8041, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8012, + "src": "8039:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8038, + "name": "_burnBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8126, + "src": "8010:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 8042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8010:37:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8043, + "nodeType": "ExpressionStatement", + "src": "8010:37:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8045, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7995, + "src": "8079:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8048, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8019, + "src": "8102:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8046, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "8083:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "8083:18:24", + "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": 8049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8083:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8044, + "name": "_baseTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8990, + "src": "8057:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 8050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8057:54:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8051, + "nodeType": "ExpressionStatement", + "src": "8057:54:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8053, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8019, + "src": "8138:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8052, + "name": "_donateBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9031, + "src": "8121:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 8054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8121:25:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8055, + "nodeType": "ExpressionStatement", + "src": "8121:25:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8057, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8171:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8171:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7995, + "src": "8183:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8187:4:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 8061, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "8193:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8062, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8012, + "src": "8209:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8056, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7400, + "src": "8162:8:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256)" + } + }, + "id": 8063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8162:55:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8064, + "nodeType": "EmitStatement", + "src": "8157:60:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8066, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8246:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8246:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8258:4:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 8069, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8019, + "src": "8264:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8065, + "name": "ChargePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7408, + "src": "8232:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,bool,uint256)" + } + }, + "id": 8070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8232:40:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8071, + "nodeType": "EmitStatement", + "src": "8227:45:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8074, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8019, + "src": "8309:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8072, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "8290:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "8290:18:24", + "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": 8075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8290:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8003, + "id": 8076, + "nodeType": "Return", + "src": "8283:34:24" + } + ] + }, + "documentation": null, + "functionSelector": "1e34b9cc", + "id": 8078, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7998, + "modifierName": { + "argumentTypes": null, + "id": 7997, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "7535:16:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7535:16:24" + }, + { + "arguments": null, + "id": 8000, + "modifierName": { + "argumentTypes": null, + "id": 7999, + "name": "dodoNotClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7436, + "src": "7552:13:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7552:13:24" + } + ], + "name": "withdrawAllBaseTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7996, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7995, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8078, + "src": "7516:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7994, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7516:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7515:12:24" + }, + "returnParameters": { + "id": 8003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8002, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8078, + "src": "7575:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7575:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7574:9:24" + }, + "scope": 8369, + "src": "7489:835:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8093, + "nodeType": "Block", + "src": "8446:70:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8089, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8080, + "src": "8496:4:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8090, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8082, + "src": "8502:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8086, + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9469, + "src": "8469:20:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8085, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "8456:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 8087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8456:34:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 8088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 10516, + "src": "8456:39:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 8091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8456:53:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8092, + "nodeType": "ExpressionStatement", + "src": "8456:53:24" + } + ] + }, + "documentation": null, + "id": 8094, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintBaseCapital", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8080, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8094, + "src": "8407:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8407:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8082, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8094, + "src": "8421:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8421:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8406:30:24" + }, + "returnParameters": { + "id": 8084, + "nodeType": "ParameterList", + "parameters": [], + "src": "8446:0:24" + }, + "scope": 8369, + "src": "8381:135:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8109, + "nodeType": "Block", + "src": "8588:71:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8105, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8096, + "src": "8639:4:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8106, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8098, + "src": "8645:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8102, + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9471, + "src": "8611:21:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8101, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "8598:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 8103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8598:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 8104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 10516, + "src": "8598:40:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 8107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8598:54:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8108, + "nodeType": "ExpressionStatement", + "src": "8598:54:24" + } + ] + }, + "documentation": null, + "id": 8110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintQuoteCapital", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8099, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8096, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8110, + "src": "8549:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8095, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8549:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8098, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8110, + "src": "8563:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8097, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8563:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8548:30:24" + }, + "returnParameters": { + "id": 8100, + "nodeType": "ParameterList", + "parameters": [], + "src": "8588:0:24" + }, + "scope": 8369, + "src": "8522:137:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8125, + "nodeType": "Block", + "src": "8730:70:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8121, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8112, + "src": "8780:4:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8122, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8114, + "src": "8786:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8118, + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9469, + "src": "8753:20:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8117, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "8740:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 8119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:34:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 8120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 10523, + "src": "8740:39:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 8123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:53:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8124, + "nodeType": "ExpressionStatement", + "src": "8740:53:24" + } + ] + }, + "documentation": null, + "id": 8126, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burnBaseCapital", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8112, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8126, + "src": "8691:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8691:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8114, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8126, + "src": "8705:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8705:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8690:30:24" + }, + "returnParameters": { + "id": 8116, + "nodeType": "ParameterList", + "parameters": [], + "src": "8730:0:24" + }, + "scope": 8369, + "src": "8665:135:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8141, + "nodeType": "Block", + "src": "8872:71:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8137, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8128, + "src": "8923:4:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8138, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "8929:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8134, + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9471, + "src": "8895:21:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8133, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "8882:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 8135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8882:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 8136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 10523, + "src": "8882:40:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 8139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8882:54:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8140, + "nodeType": "ExpressionStatement", + "src": "8882:54:24" + } + ] + }, + "documentation": null, + "id": 8142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burnQuoteCapital", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8128, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8142, + "src": "8833:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8833:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8130, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8142, + "src": "8847:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8847:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8832:30:24" + }, + "returnParameters": { + "id": 8132, + "nodeType": "ParameterList", + "parameters": [], + "src": "8872:0:24" + }, + "scope": 8369, + "src": "8806:137:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8180, + "nodeType": "Block", + "src": "9078:301:24", + "statements": [ + { + "assignments": [ + 8150 + ], + "declarations": [ + { + "constant": false, + "id": 8150, + "mutability": "mutable", + "name": "totalBaseCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8180, + "src": "9088:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8149, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9088:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8153, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8151, + "name": "getTotalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "9115:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9115:21:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9088:48:24" + }, + { + "assignments": [ + 8155, + null + ], + "declarations": [ + { + "constant": false, + "id": 8155, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8180, + "src": "9147:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9147:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 8158, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8156, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "9171:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 8157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9171:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9146:44:24" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8159, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8150, + "src": "9204:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9224:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9204:21:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8165, + "nodeType": "IfStatement", + "src": "9200:60:24", + "trueBody": { + "id": 8164, + "nodeType": "Block", + "src": "9227:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9248:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 8148, + "id": 8163, + "nodeType": "Return", + "src": "9241:8:24" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 8176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8166, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8147, + "src": "9269:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8174, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8150, + "src": "9329:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8171, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8155, + "src": "9313:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8168, + "name": "lp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8144, + "src": "9305:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8167, + "name": "getBaseCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9565, + "src": "9281:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 8169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9281:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "9281:31:24", + "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": 8172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9281:43:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "9281:47:24", + "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": 8175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9281:65:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9269:77:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8177, + "nodeType": "ExpressionStatement", + "src": "9269:77:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 8178, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8147, + "src": "9363:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8148, + "id": 8179, + "nodeType": "Return", + "src": "9356:16:24" + } + ] + }, + "documentation": null, + "functionSelector": "95faa5f6", + "id": 8181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getLpBaseBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8144, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8181, + "src": "9026:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8143, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9026:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9025:12:24" + }, + "returnParameters": { + "id": 8148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8147, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8181, + "src": "9059:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9059:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9058:19:24" + }, + "scope": 8369, + "src": "9000:379:24", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8219, + "nodeType": "Block", + "src": "9464:308:24", + "statements": [ + { + "assignments": [ + 8189 + ], + "declarations": [ + { + "constant": false, + "id": 8189, + "mutability": "mutable", + "name": "totalQuoteCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8219, + "src": "9474:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9474:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8192, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8190, + "name": "getTotalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9604, + "src": "9502:20:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9502:22:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9474:50:24" + }, + { + "assignments": [ + null, + 8194 + ], + "declarations": [ + null, + { + "constant": false, + "id": 8194, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8219, + "src": "9537:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9537:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8197, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8195, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "9560:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 8196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9560:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9534:45:24" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8198, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8189, + "src": "9593:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9614:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9593:22:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8204, + "nodeType": "IfStatement", + "src": "9589:61:24", + "trueBody": { + "id": 8203, + "nodeType": "Block", + "src": "9617:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9638:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 8187, + "id": 8202, + "nodeType": "Return", + "src": "9631:8:24" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 8215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8205, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8186, + "src": "9659:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8213, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8189, + "src": "9721:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8210, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8194, + "src": "9704:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8207, + "name": "lp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8183, + "src": "9696:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8206, + "name": "getQuoteCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9592, + "src": "9671:24:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 8208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9671:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "9671:32:24", + "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": 8211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9671:45:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "9671:49:24", + "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": 8214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9671:68:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9659:80:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8216, + "nodeType": "ExpressionStatement", + "src": "9659:80:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 8217, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8186, + "src": "9756:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8187, + "id": 8218, + "nodeType": "Return", + "src": "9749:16:24" + } + ] + }, + "documentation": null, + "functionSelector": "36a53bbb", + "id": 8220, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getLpQuoteBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8183, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8220, + "src": "9412:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9412:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9411:12:24" + }, + "returnParameters": { + "id": 8187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8186, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8220, + "src": "9445:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8185, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9444:19:24" + }, + "scope": 8369, + "src": "9385:387:24", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8293, + "nodeType": "Block", + "src": "9865:877:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8228, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8222, + "src": "9883:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8229, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "9893:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9883:25:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f51554f54455f42414c414e43455f4e4f545f454e4f554748", + "id": 8231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9910:31:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_01a080c50343e863e17230c1a9c9900101809eaf44c06794af82120907bb21f5", + "typeString": "literal_string \"DODO_QUOTE_BALANCE_NOT_ENOUGH\"" + }, + "value": "DODO_QUOTE_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_01a080c50343e863e17230c1a9c9900101809eaf44c06794af82120907bb21f5", + "typeString": "literal_string \"DODO_QUOTE_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 8227, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9875:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9875:67:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8233, + "nodeType": "ExpressionStatement", + "src": "9875:67:24" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 8238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8234, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "9956:10:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8235, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "9970:5:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 8236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "9970:13:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 8237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9970:23:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "9956:37:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8291, + "nodeType": "Block", + "src": "10703:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10724:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 8226, + "id": 8290, + "nodeType": "Return", + "src": "10717:8:24" + } + ] + }, + "id": 8292, + "nodeType": "IfStatement", + "src": "9952:784:24", + "trueBody": { + "id": 8288, + "nodeType": "Block", + "src": "9995:702:24", + "statements": [ + { + "assignments": [ + 8240 + ], + "declarations": [ + { + "constant": false, + "id": 8240, + "mutability": "mutable", + "name": "spareBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8288, + "src": "10009:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10009:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8245, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8243, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "10048:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8241, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "10029:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "10029:18:24", + "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": 8244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10029:46:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10009:66:24" + }, + { + "assignments": [ + 8247 + ], + "declarations": [ + { + "constant": false, + "id": 8247, + "mutability": "mutable", + "name": "price", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8288, + "src": "10089:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8246, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10089:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8250, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8248, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "10105:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10105:16:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10089:32:24" + }, + { + "assignments": [ + 8252 + ], + "declarations": [ + { + "constant": false, + "id": 8252, + "mutability": "mutable", + "name": "fairAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8288, + "src": "10135:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10135:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8258, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8255, + "name": "spareBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8240, + "src": "10172:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8256, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8247, + "src": "10183:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8253, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "10156:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "10156:15:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10156:33:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10135:54:24" + }, + { + "assignments": [ + 8260 + ], + "declarations": [ + { + "constant": false, + "id": 8260, + "mutability": "mutable", + "name": "targetQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8288, + "src": "10203:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8259, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10203:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8267, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8263, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "10284:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8264, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "10317:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8265, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8252, + "src": "10338:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8261, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "10225:8:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10991, + "src": "10225:41:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10225:137:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10203:159:24" + }, + { + "assignments": [ + 8269 + ], + "declarations": [ + { + "constant": false, + "id": 8269, + "mutability": "mutable", + "name": "targetQuoteWithWithdraw", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8288, + "src": "10430:31:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10430:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8279, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8274, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8222, + "src": "10543:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8272, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "10523:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "10523:19:24", + "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": 8275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10523:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8276, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "10568:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8277, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8252, + "src": "10589:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8270, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "10464:8:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10991, + "src": "10464:41:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10464:149:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10430:183:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8284, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8222, + "src": "10678:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8282, + "name": "targetQuoteWithWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8269, + "src": "10650:23:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "10650:27:24", + "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": 8285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10650:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8280, + "name": "targetQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8260, + "src": "10634:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "10634:15:24", + "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": 8286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10634:52:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8226, + "id": 8287, + "nodeType": "Return", + "src": "10627:59:24" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "0c9f7bd0", + "id": 8294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getWithdrawQuotePenalty", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8222, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8294, + "src": "9811:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9811:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9810:16:24" + }, + "returnParameters": { + "id": 8226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8225, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8294, + "src": "9848:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8224, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9848:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9847:17:24" + }, + "scope": 8369, + "src": "9778:964:24", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8367, + "nodeType": "Block", + "src": "10834:877:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8302, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8296, + "src": "10852:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8303, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "10862:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10852:24:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f424153455f42414c414e43455f4e4f545f454e4f554748", + "id": 8305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10878:30:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + }, + "value": "DODO_BASE_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 8301, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10844:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10844:65:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8307, + "nodeType": "ExpressionStatement", + "src": "10844:65:24" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 8312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8308, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "10923:10:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8309, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "10937:5:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 8310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "10937:13:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 8311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10937:23:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "10923:37:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8365, + "nodeType": "Block", + "src": "11672:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11693:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 8300, + "id": 8364, + "nodeType": "Return", + "src": "11686:8:24" + } + ] + }, + "id": 8366, + "nodeType": "IfStatement", + "src": "10919:786:24", + "trueBody": { + "id": 8362, + "nodeType": "Block", + "src": "10962:704:24", + "statements": [ + { + "assignments": [ + 8314 + ], + "declarations": [ + { + "constant": false, + "id": 8314, + "mutability": "mutable", + "name": "spareQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8362, + "src": "10976:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8313, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10976:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8317, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "11017:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8315, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "10997:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "10997:19:24", + "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": 8318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10997:48:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10976:69:24" + }, + { + "assignments": [ + 8321 + ], + "declarations": [ + { + "constant": false, + "id": 8321, + "mutability": "mutable", + "name": "price", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8362, + "src": "11059:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8320, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11059:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8324, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8322, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "11075:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11075:16:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11059:32:24" + }, + { + "assignments": [ + 8326 + ], + "declarations": [ + { + "constant": false, + "id": 8326, + "mutability": "mutable", + "name": "fairAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8362, + "src": "11105:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8325, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11105:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8332, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8329, + "name": "spareQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8314, + "src": "11147:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8330, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8321, + "src": "11159:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8327, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "11126:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "11126:20:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11126:39:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11105:60:24" + }, + { + "assignments": [ + 8334 + ], + "declarations": [ + { + "constant": false, + "id": 8334, + "mutability": "mutable", + "name": "targetBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8362, + "src": "11179:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11179:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8341, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8337, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "11259:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8338, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "11291:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8339, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8326, + "src": "11312:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8335, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "11200:8:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10991, + "src": "11200:41:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11200:136:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11179:157:24" + }, + { + "assignments": [ + 8343 + ], + "declarations": [ + { + "constant": false, + "id": 8343, + "mutability": "mutable", + "name": "targetBaseWithWithdraw", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8362, + "src": "11403:30:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8342, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11403:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8353, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8348, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8296, + "src": "11514:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8346, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "11495:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "11495:18:24", + "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": 8349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11495:26:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8350, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "11539:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8351, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8326, + "src": "11560:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8344, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "11436:8:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10991, + "src": "11436:41:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11436:148:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11403:181:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8358, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8296, + "src": "11647:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8356, + "name": "targetBaseWithWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8343, + "src": "11620:22:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "11620:26:24", + "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": 8359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11620:34:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8354, + "name": "targetBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8334, + "src": "11605:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "11605:14:24", + "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": 8360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11605:50:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8300, + "id": 8361, + "nodeType": "Return", + "src": "11598:57:24" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "ee5150b3", + "id": 8368, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getWithdrawBasePenalty", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8296, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8368, + "src": "10780:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8295, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10780:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10779:16:24" + }, + "returnParameters": { + "id": 8300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8299, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8368, + "src": "10817:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8298, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10817:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10816:17:24" + }, + "scope": 8369, + "src": "10748:963:24", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 8370, + "src": "618:11095:24" + } + ], + "src": "78:11636:24" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/LiquidityProvider.sol", + "exportedSymbols": { + "LiquidityProvider": [ + 8369 + ] + }, + "id": 8370, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7349, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:24" + }, + { + "id": 7350, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:24" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 7352, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 11624, + "src": "136:45:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7351, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 7354, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 11079, + "src": "182:51:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7353, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "190:11:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol", + "file": "../lib/DODOMath.sol", + "id": 7356, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 10993, + "src": "234:45:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7355, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "242:8:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "file": "../lib/Types.sol", + "id": 7358, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 11632, + "src": "280:39:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7357, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "288:5:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol", + "file": "../intf/IDODOLpToken.sol", + "id": 7360, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 10537, + "src": "320:54:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7359, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "328:12:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "file": "./Storage.sol", + "id": 7362, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 9614, + "src": "375:38:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7361, + "name": "Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "383:7:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Settlement.sol", + "file": "./Settlement.sol", + "id": 7364, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 9397, + "src": "414:44:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7363, + "name": "Settlement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "422:10:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Pricing.sol", + "file": "./Pricing.sol", + "id": 7366, + "nodeType": "ImportDirective", + "scope": 8370, + "sourceUnit": 8854, + "src": "459:38:24", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 7365, + "name": "Pricing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "467:7:24", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7368, + "name": "Storage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9613, + "src": "648:7:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Storage_$9613", + "typeString": "contract Storage" + } + }, + "id": 7369, + "nodeType": "InheritanceSpecifier", + "src": "648:7:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7370, + "name": "Pricing", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 8853, + "src": "657:7:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pricing_$8853", + "typeString": "contract Pricing" + } + }, + "id": 7371, + "nodeType": "InheritanceSpecifier", + "src": "657:7:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7372, + "name": "Settlement", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9396, + "src": "666:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + }, + "id": 7373, + "nodeType": "InheritanceSpecifier", + "src": "666:10:24" + } + ], + "contractDependencies": [ + 8853, + 9396, + 9613, + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 7367, + "nodeType": "StructuredDocumentation", + "src": "500:117:24", + "text": " @title LiquidityProvider\n @author DODO Breeder\n @notice Functions for liquidity provider operations" + }, + "fullyImplemented": true, + "id": 8369, + "linearizedBaseContracts": [ + 8369, + 9396, + 8853, + 9613, + 11296, + 11166 + ], + "name": "LiquidityProvider", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 7376, + "libraryName": { + "contractScope": null, + "id": 7374, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "689:8:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "683:27:24", + "typeName": { + "id": 7375, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "702:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 7388, + "name": "Deposit", + "nodeType": "EventDefinition", + "parameters": { + "id": 7387, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7378, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7388, + "src": "780:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7377, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "780:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7380, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7388, + "src": "811:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7379, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "811:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7382, + "indexed": false, + "mutability": "mutable", + "name": "isBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7388, + "src": "845:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7381, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "845:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7384, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7388, + "src": "871:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "871:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7386, + "indexed": false, + "mutability": "mutable", + "name": "lpTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7388, + "src": "895:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "895:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "770:152:24" + }, + "src": "757:166:24" + }, + { + "anonymous": false, + "documentation": null, + "id": 7400, + "name": "Withdraw", + "nodeType": "EventDefinition", + "parameters": { + "id": 7399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7390, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7400, + "src": "953:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "953:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7392, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7400, + "src": "984:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7391, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "984:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7394, + "indexed": false, + "mutability": "mutable", + "name": "isBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7400, + "src": "1018:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7393, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1018:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7396, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7400, + "src": "1044:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7395, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1044:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7398, + "indexed": false, + "mutability": "mutable", + "name": "lpTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7400, + "src": "1068:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1068:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "943:152:24" + }, + "src": "929:167:24" + }, + { + "anonymous": false, + "documentation": null, + "id": 7408, + "name": "ChargePenalty", + "nodeType": "EventDefinition", + "parameters": { + "id": 7407, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7402, + "indexed": true, + "mutability": "mutable", + "name": "payer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7408, + "src": "1122:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1122:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7404, + "indexed": false, + "mutability": "mutable", + "name": "isBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7408, + "src": "1145:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7403, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1145:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7406, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7408, + "src": "1163:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7405, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1163:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1121:57:24" + }, + "src": "1102:77:24" + }, + { + "body": { + "id": 7416, + "nodeType": "Block", + "src": "1260:89:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7411, + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9427, + "src": "1278:23:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4445504f5349545f51554f54455f4e4f545f414c4c4f574544", + "id": 7412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1303:27:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f8ca46e1665f66396f293f9a520e0b7eba90c16ed34c9b5d30b4532a06b94ae", + "typeString": "literal_string \"DEPOSIT_QUOTE_NOT_ALLOWED\"" + }, + "value": "DEPOSIT_QUOTE_NOT_ALLOWED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f8ca46e1665f66396f293f9a520e0b7eba90c16ed34c9b5d30b4532a06b94ae", + "typeString": "literal_string \"DEPOSIT_QUOTE_NOT_ALLOWED\"" + } + ], + "id": 7410, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1270:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1270:61:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7414, + "nodeType": "ExpressionStatement", + "src": "1270:61:24" + }, + { + "id": 7415, + "nodeType": "PlaceholderStatement", + "src": "1341:1:24" + } + ] + }, + "documentation": null, + "id": 7417, + "name": "depositQuoteAllowed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 7409, + "nodeType": "ParameterList", + "parameters": [], + "src": "1257:2:24" + }, + "src": "1229:120:24", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7425, + "nodeType": "Block", + "src": "1385:87:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7420, + "name": "_DEPOSIT_BASE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9429, + "src": "1403:22:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4445504f5349545f424153455f4e4f545f414c4c4f574544", + "id": 7421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1427:26:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2e520f2f988e5e849fb2744d0cdabd1103964b7b504d67387f2f6654882bc899", + "typeString": "literal_string \"DEPOSIT_BASE_NOT_ALLOWED\"" + }, + "value": "DEPOSIT_BASE_NOT_ALLOWED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2e520f2f988e5e849fb2744d0cdabd1103964b7b504d67387f2f6654882bc899", + "typeString": "literal_string \"DEPOSIT_BASE_NOT_ALLOWED\"" + } + ], + "id": 7419, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1395:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1395:59:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7423, + "nodeType": "ExpressionStatement", + "src": "1395:59:24" + }, + { + "id": 7424, + "nodeType": "PlaceholderStatement", + "src": "1464:1:24" + } + ] + }, + "documentation": null, + "id": 7426, + "name": "depositBaseAllowed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 7418, + "nodeType": "ParameterList", + "parameters": [], + "src": "1382:2:24" + }, + "src": "1355:117:24", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7435, + "nodeType": "Block", + "src": "1503:61:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1521:9:24", + "subExpression": { + "argumentTypes": null, + "id": 7429, + "name": "_CLOSED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9425, + "src": "1522:8:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f434c4f534544", + "id": 7431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1532:13:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b376000e0a4ab5aa456645b38033c091a45a656f290df894531d9e6e6accb956", + "typeString": "literal_string \"DODO_CLOSED\"" + }, + "value": "DODO_CLOSED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b376000e0a4ab5aa456645b38033c091a45a656f290df894531d9e6e6accb956", + "typeString": "literal_string \"DODO_CLOSED\"" + } + ], + "id": 7428, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1513:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1513:33:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7433, + "nodeType": "ExpressionStatement", + "src": "1513:33:24" + }, + { + "id": 7434, + "nodeType": "PlaceholderStatement", + "src": "1556:1:24" + } + ] + }, + "documentation": null, + "id": 7436, + "name": "dodoNotClosed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 7427, + "nodeType": "ParameterList", + "parameters": [], + "src": "1500:2:24" + }, + "src": "1478:86:24", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7449, + "nodeType": "Block", + "src": "1687:58:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7444, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1719:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1719:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7446, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7438, + "src": "1731:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7443, + "name": "withdrawBaseTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7908, + "src": "1704:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) returns (uint256)" + } + }, + "id": 7447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1704:34:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7442, + "id": 7448, + "nodeType": "Return", + "src": "1697:41:24" + } + ] + }, + "documentation": null, + "functionSelector": "f98bea15", + "id": 7450, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7438, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7450, + "src": "1644:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1644:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1643:16:24" + }, + "returnParameters": { + "id": 7442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7441, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7450, + "src": "1678:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1678:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1677:9:24" + }, + "scope": 8369, + "src": "1622:123:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7463, + "nodeType": "Block", + "src": "1815:57:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7458, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1846:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1846:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7460, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7452, + "src": "1858:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7457, + "name": "depositBaseTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7682, + "src": "1832:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) returns (uint256)" + } + }, + "id": 7461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1832:33:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7456, + "id": 7462, + "nodeType": "Return", + "src": "1825:40:24" + } + ] + }, + "documentation": null, + "functionSelector": "27bed8ee", + "id": 7464, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "depositBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7453, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7452, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7464, + "src": "1772:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1772:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1771:16:24" + }, + "returnParameters": { + "id": 7456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7455, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7464, + "src": "1806:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1806:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1805:9:24" + }, + "scope": 8369, + "src": "1751:121:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7477, + "nodeType": "Block", + "src": "1944:59:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7472, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1977:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1977:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7474, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7466, + "src": "1989:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7471, + "name": "withdrawQuoteTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7795, + "src": "1961:15:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) returns (uint256)" + } + }, + "id": 7475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1961:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7470, + "id": 7476, + "nodeType": "Return", + "src": "1954:42:24" + } + ] + }, + "documentation": null, + "functionSelector": "c0a5f6ff", + "id": 7478, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7466, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7478, + "src": "1901:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7465, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1901:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1900:16:24" + }, + "returnParameters": { + "id": 7470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7469, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7478, + "src": "1935:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7468, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1935:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1934:9:24" + }, + "scope": 8369, + "src": "1878:125:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7491, + "nodeType": "Block", + "src": "2074:58:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7486, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2106:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2106:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7488, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7480, + "src": "2118:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7485, + "name": "depositQuoteTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7598, + "src": "2091:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) returns (uint256)" + } + }, + "id": 7489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2091:34:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7484, + "id": 7490, + "nodeType": "Return", + "src": "2084:41:24" + } + ] + }, + "documentation": null, + "functionSelector": "f3ae6c5f", + "id": 7492, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "depositQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7480, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7492, + "src": "2031:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7479, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2031:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2030:16:24" + }, + "returnParameters": { + "id": 7484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7483, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7492, + "src": "2065:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7482, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2065:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2064:9:24" + }, + "scope": 8369, + "src": "2009:123:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7502, + "nodeType": "Block", + "src": "2192:53:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7498, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2227:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2227:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7497, + "name": "withdrawAllBaseTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8078, + "src": "2209:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 7500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2209:29:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7496, + "id": 7501, + "nodeType": "Return", + "src": "2202:36:24" + } + ] + }, + "documentation": null, + "functionSelector": "d47eaa37", + "id": 7503, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawAllBase", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7493, + "nodeType": "ParameterList", + "parameters": [], + "src": "2162:2:24" + }, + "returnParameters": { + "id": 7496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7503, + "src": "2183:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2183:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2182:9:24" + }, + "scope": 8369, + "src": "2138:107:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7513, + "nodeType": "Block", + "src": "2306:54:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7509, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2342:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2342:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7508, + "name": "withdrawAllQuoteTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7993, + "src": "2323:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 7511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2323:30:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7507, + "id": 7512, + "nodeType": "Return", + "src": "2316:37:24" + } + ] + }, + "documentation": null, + "functionSelector": "c59203af", + "id": 7514, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawAllQuote", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7504, + "nodeType": "ParameterList", + "parameters": [], + "src": "2276:2:24" + }, + "returnParameters": { + "id": 7507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7506, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7514, + "src": "2297:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2297:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2296:9:24" + }, + "scope": 8369, + "src": "2251:109:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 7597, + "nodeType": "Block", + "src": "2568:697:24", + "statements": [ + { + "assignments": [ + null, + 7528 + ], + "declarations": [ + null, + { + "constant": false, + "id": 7528, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7597, + "src": "2581:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2581:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7531, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7529, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "2604:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 7530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2604:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2578:45:24" + }, + { + "assignments": [ + 7533 + ], + "declarations": [ + { + "constant": false, + "id": 7533, + "mutability": "mutable", + "name": "totalQuoteCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7597, + "src": "2633:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2633:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7536, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7534, + "name": "getTotalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9604, + "src": "2661:20:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 7535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2661:22:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2633:50:24" + }, + { + "assignments": [ + 7538 + ], + "declarations": [ + { + "constant": false, + "id": 7538, + "mutability": "mutable", + "name": "capital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7597, + "src": "2693:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2693:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7540, + "initialValue": { + "argumentTypes": null, + "id": 7539, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7518, + "src": "2711:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2693:24:24" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7541, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7533, + "src": "2731:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2752:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2731:22:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7552, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7528, + "src": "2881:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2895:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2881:15:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7566, + "nodeType": "IfStatement", + "src": "2877:102:24", + "trueBody": { + "id": 7565, + "nodeType": "Block", + "src": "2898:81:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7555, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7538, + "src": "2912:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7561, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7528, + "src": "2956:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7558, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7533, + "src": "2933:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7556, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7518, + "src": "2922:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "2922:10:24", + "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": 7559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2922:29:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "2922:33:24", + "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": 7562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2922:46:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2912:56:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7564, + "nodeType": "ExpressionStatement", + "src": "2912:56:24" + } + ] + } + }, + "id": 7567, + "nodeType": "IfStatement", + "src": "2727:252:24", + "trueBody": { + "id": 7551, + "nodeType": "Block", + "src": "2755:116:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7544, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7538, + "src": "2827:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7547, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7528, + "src": "2848:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7545, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7518, + "src": "2837:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2837:10:24", + "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": 7548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2837:23:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2827:33:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7550, + "nodeType": "ExpressionStatement", + "src": "2827:33:24" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7569, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3033:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3033:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7571, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7518, + "src": "3045:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7568, + "name": "_quoteTokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8967, + "src": "3011:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3011:41:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7573, + "nodeType": "ExpressionStatement", + "src": "3011:41:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7575, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7516, + "src": "3080:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7576, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7538, + "src": "3084:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7574, + "name": "_mintQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8110, + "src": "3062:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3062:30:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7578, + "nodeType": "ExpressionStatement", + "src": "3062:30:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7579, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "3102:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7582, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7518, + "src": "3164:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7580, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "3132:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3132:31:24", + "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": 7583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3132:39:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3102:69:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7585, + "nodeType": "ExpressionStatement", + "src": "3102:69:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7587, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3195:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3195:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7589, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7516, + "src": "3207:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3211:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 7591, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7518, + "src": "3218:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7592, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7538, + "src": "3226:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7586, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7388, + "src": "3187:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256)" + } + }, + "id": 7593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3187:47:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7594, + "nodeType": "EmitStatement", + "src": "3182:52:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7595, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7538, + "src": "3251:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7526, + "id": 7596, + "nodeType": "Return", + "src": "3244:14:24" + } + ] + }, + "documentation": null, + "functionSelector": "5f179f64", + "id": 7598, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7521, + "modifierName": { + "argumentTypes": null, + "id": 7520, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "2493:16:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2493:16:24" + }, + { + "arguments": null, + "id": 7523, + "modifierName": { + "argumentTypes": null, + "id": 7522, + "name": "depositQuoteAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7417, + "src": "2518:19:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2518:19:24" + } + ], + "name": "depositQuoteTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7516, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7598, + "src": "2442:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7515, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2442:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7518, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7598, + "src": "2454:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7517, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2454:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2441:28:24" + }, + "returnParameters": { + "id": 7526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7525, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7598, + "src": "2555:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7524, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2555:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2554:9:24" + }, + "scope": 8369, + "src": "2418:847:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7681, + "nodeType": "Block", + "src": "3419:683:24", + "statements": [ + { + "assignments": [ + 7612, + null + ], + "declarations": [ + { + "constant": false, + "id": 7612, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7681, + "src": "3430:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3430:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 7615, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7613, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "3454:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 7614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3454:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3429:44:24" + }, + { + "assignments": [ + 7617 + ], + "declarations": [ + { + "constant": false, + "id": 7617, + "mutability": "mutable", + "name": "totalBaseCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7681, + "src": "3483:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3483:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7620, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7618, + "name": "getTotalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "3510:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 7619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3510:21:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3483:48:24" + }, + { + "assignments": [ + 7622 + ], + "declarations": [ + { + "constant": false, + "id": 7622, + "mutability": "mutable", + "name": "capital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7681, + "src": "3541:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3541:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7624, + "initialValue": { + "argumentTypes": null, + "id": 7623, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "3559:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3541:24:24" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7625, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7617, + "src": "3579:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3599:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3579:21:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7636, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7612, + "src": "3726:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3739:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3726:14:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7650, + "nodeType": "IfStatement", + "src": "3722:99:24", + "trueBody": { + "id": 7649, + "nodeType": "Block", + "src": "3742:79:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7639, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7622, + "src": "3756:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7645, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7612, + "src": "3799:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7642, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7617, + "src": "3777:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7640, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "3766:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3766:10:24", + "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": 7643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3766:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "3766:32:24", + "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": 7646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3766:44:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3756:54:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7648, + "nodeType": "ExpressionStatement", + "src": "3756:54:24" + } + ] + } + }, + "id": 7651, + "nodeType": "IfStatement", + "src": "3575:246:24", + "trueBody": { + "id": 7635, + "nodeType": "Block", + "src": "3602:114:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7628, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7622, + "src": "3673:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7631, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7612, + "src": "3694:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7629, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "3683:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3683:10:24", + "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": 7632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3683:22:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3673:32:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7634, + "nodeType": "ExpressionStatement", + "src": "3673:32:24" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7653, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3874:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3874:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7655, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "3886:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7652, + "name": "_baseTokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8930, + "src": "3853:20:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3853:40:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7657, + "nodeType": "ExpressionStatement", + "src": "3853:40:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7659, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7600, + "src": "3920:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7660, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7622, + "src": "3924:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7658, + "name": "_mintBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8094, + "src": "3903:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3903:29:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7662, + "nodeType": "ExpressionStatement", + "src": "3903:29:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7663, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "3942:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7666, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "4002:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7664, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "3971:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3971:30:24", + "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": 7667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3971:38:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3942:67:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7669, + "nodeType": "ExpressionStatement", + "src": "3942:67:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7671, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4033:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4033:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7673, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7600, + "src": "4045:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4049:4:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 7675, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7602, + "src": "4055:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7676, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7622, + "src": "4063:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7670, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7388, + "src": "4025:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256)" + } + }, + "id": 7677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4025:46:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7678, + "nodeType": "EmitStatement", + "src": "4020:51:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7679, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7622, + "src": "4088:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7610, + "id": 7680, + "nodeType": "Return", + "src": "4081:14:24" + } + ] + }, + "documentation": null, + "functionSelector": "aa06ce9b", + "id": 7682, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7605, + "modifierName": { + "argumentTypes": null, + "id": 7604, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "3345:16:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3345:16:24" + }, + { + "arguments": null, + "id": 7607, + "modifierName": { + "argumentTypes": null, + "id": 7606, + "name": "depositBaseAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7426, + "src": "3370:18:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3370:18:24" + } + ], + "name": "depositBaseTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7603, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7600, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7682, + "src": "3294:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7599, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3294:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7602, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7682, + "src": "3306:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7601, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3306:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3293:28:24" + }, + "returnParameters": { + "id": 7610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7609, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7682, + "src": "3406:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3406:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3405:9:24" + }, + "scope": 8369, + "src": "3271:831:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7794, + "nodeType": "Block", + "src": "4306:1051:24", + "statements": [ + { + "assignments": [ + null, + 7696 + ], + "declarations": [ + null, + { + "constant": false, + "id": 7696, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7794, + "src": "4348:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7695, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4348:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7699, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7697, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "4371:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 7698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4371:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4345:45:24" + }, + { + "assignments": [ + 7701 + ], + "declarations": [ + { + "constant": false, + "id": 7701, + "mutability": "mutable", + "name": "totalQuoteCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7794, + "src": "4400:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4400:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7704, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7702, + "name": "getTotalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9604, + "src": "4428:20:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 7703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4428:22:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4400:50:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7706, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7701, + "src": "4468:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4488:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4468:21:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f5f51554f54455f4c50", + "id": 7709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4491:13:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45201781226c6ef295dd5fc256e793e26359d1272043d931959202cf3772a527", + "typeString": "literal_string \"NO_QUOTE_LP\"" + }, + "value": "NO_QUOTE_LP" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45201781226c6ef295dd5fc256e793e26359d1272043d931959202cf3772a527", + "typeString": "literal_string \"NO_QUOTE_LP\"" + } + ], + "id": 7705, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4460:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4460:45:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7711, + "nodeType": "ExpressionStatement", + "src": "4460:45:24" + }, + { + "assignments": [ + 7713 + ], + "declarations": [ + { + "constant": false, + "id": 7713, + "mutability": "mutable", + "name": "requireQuoteCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7794, + "src": "4516:27:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7712, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4516:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7721, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7719, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7696, + "src": "4584:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7716, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7701, + "src": "4557:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7714, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "4546:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "4546:10:24", + "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": 7717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4546:29:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11536, + "src": "4546:37:24", + "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": 7720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4546:50:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4516:80:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7723, + "name": "requireQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7713, + "src": "4627:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7725, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4675:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4675:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7724, + "name": "getQuoteCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9592, + "src": "4650:24:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 7727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4650:36:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4627:59:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4c505f51554f54455f4341504954414c5f42414c414e43455f4e4f545f454e4f554748", + "id": 7729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4700:37:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5bad2f07e59b1b4b8d72ecf482313290c21067f6dbad6059e0d3f71b7d3bcc8a", + "typeString": "literal_string \"LP_QUOTE_CAPITAL_BALANCE_NOT_ENOUGH\"" + }, + "value": "LP_QUOTE_CAPITAL_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5bad2f07e59b1b4b8d72ecf482313290c21067f6dbad6059e0d3f71b7d3bcc8a", + "typeString": "literal_string \"LP_QUOTE_CAPITAL_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 7722, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4606:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4606:141:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7731, + "nodeType": "ExpressionStatement", + "src": "4606:141:24" + }, + { + "assignments": [ + 7733 + ], + "declarations": [ + { + "constant": false, + "id": 7733, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7794, + "src": "4811:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4811:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7737, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7735, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "4853:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7734, + "name": "getWithdrawQuotePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8294, + "src": "4829:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 7736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4829:31:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4811:49:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7739, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "4878:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 7740, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "4888:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4878:16:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "50454e414c54595f455843454544", + "id": 7742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4896:16:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + }, + "value": "PENALTY_EXCEED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + } + ], + "id": 7738, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4870:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4870:43:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7744, + "nodeType": "ExpressionStatement", + "src": "4870:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7745, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4946:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7748, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "5008:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7746, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4976:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4976:31:24", + "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": 7749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4976:39:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4946:69:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7751, + "nodeType": "ExpressionStatement", + "src": "4946:69:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7753, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5043:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5043:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7755, + "name": "requireQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7713, + "src": "5055:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7752, + "name": "_burnQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8142, + "src": "5025:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5025:50:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7757, + "nodeType": "ExpressionStatement", + "src": "5025:50:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7759, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7684, + "src": "5108:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7762, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "5123:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7760, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "5112:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5112:10:24", + "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": 7763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5112:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7758, + "name": "_quoteTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9013, + "src": "5085:22:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5085:47:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7765, + "nodeType": "ExpressionStatement", + "src": "5085:47:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7767, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "5160:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7766, + "name": "_donateQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9049, + "src": "5142:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 7768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5142:26:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7769, + "nodeType": "ExpressionStatement", + "src": "5142:26:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7771, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5193:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5193:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7773, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7684, + "src": "5205:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5209:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7777, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "5227:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7775, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "5216:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5216:10:24", + "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": 7778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5216:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7779, + "name": "requireQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7713, + "src": "5237:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7770, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7400, + "src": "5184:8:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256)" + } + }, + "id": 7780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5184:73:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7781, + "nodeType": "EmitStatement", + "src": "5179:78:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7783, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5286:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5286:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5298:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 7786, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "5305:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7782, + "name": "ChargePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7408, + "src": "5272:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,bool,uint256)" + } + }, + "id": 7787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5272:41:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7788, + "nodeType": "EmitStatement", + "src": "5267:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7791, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7733, + "src": "5342:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7789, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7686, + "src": "5331:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5331:10:24", + "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": 7792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5331:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7694, + "id": 7793, + "nodeType": "Return", + "src": "5324:26:24" + } + ] + }, + "documentation": null, + "functionSelector": "108db744", + "id": 7795, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7689, + "modifierName": { + "argumentTypes": null, + "id": 7688, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "4237:16:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4237:16:24" + }, + { + "arguments": null, + "id": 7691, + "modifierName": { + "argumentTypes": null, + "id": 7690, + "name": "dodoNotClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7436, + "src": "4262:13:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4262:13:24" + } + ], + "name": "withdrawQuoteTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7684, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7795, + "src": "4186:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7683, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4186:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7686, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7795, + "src": "4198:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4198:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4185:28:24" + }, + "returnParameters": { + "id": 7694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7795, + "src": "4293:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4293:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4292:9:24" + }, + "scope": 8369, + "src": "4161:1196:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7907, + "nodeType": "Block", + "src": "5507:1031:24", + "statements": [ + { + "assignments": [ + 7809, + null + ], + "declarations": [ + { + "constant": false, + "id": 7809, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7907, + "src": "5547:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7808, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5547:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 7812, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7810, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "5571:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 7811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5571:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5546:44:24" + }, + { + "assignments": [ + 7814 + ], + "declarations": [ + { + "constant": false, + "id": 7814, + "mutability": "mutable", + "name": "totalBaseCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7907, + "src": "5600:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7813, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5600:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7817, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7815, + "name": "getTotalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "5627:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 7816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5627:21:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5600:48:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7819, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7814, + "src": "5666:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5685:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5666:20:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f5f424153455f4c50", + "id": 7822, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5688:12:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2055d54795f762d6673f3bc8faaa342b115cddd4a9aa8ace9a8727200addf048", + "typeString": "literal_string \"NO_BASE_LP\"" + }, + "value": "NO_BASE_LP" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2055d54795f762d6673f3bc8faaa342b115cddd4a9aa8ace9a8727200addf048", + "typeString": "literal_string \"NO_BASE_LP\"" + } + ], + "id": 7818, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5658:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5658:43:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7824, + "nodeType": "ExpressionStatement", + "src": "5658:43:24" + }, + { + "assignments": [ + 7826 + ], + "declarations": [ + { + "constant": false, + "id": 7826, + "mutability": "mutable", + "name": "requireBaseCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7907, + "src": "5712:26:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7825, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5712:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7834, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7832, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7809, + "src": "5778:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7829, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7814, + "src": "5752:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7827, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "5741:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5741:10:24", + "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": 7830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5741:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11536, + "src": "5741:36:24", + "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": 7833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5741:48:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5712:77:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7836, + "name": "requireBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7826, + "src": "5820:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7838, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5866:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5866:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7837, + "name": "getBaseCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9565, + "src": "5842:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 7840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5842:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5820:57:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4c505f424153455f4341504954414c5f42414c414e43455f4e4f545f454e4f554748", + "id": 7842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5891:36:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e164233d6cf78234887d09e5e50c550b2c28ca6ae5f0aec3a8a1a3855da5f380", + "typeString": "literal_string \"LP_BASE_CAPITAL_BALANCE_NOT_ENOUGH\"" + }, + "value": "LP_BASE_CAPITAL_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e164233d6cf78234887d09e5e50c550b2c28ca6ae5f0aec3a8a1a3855da5f380", + "typeString": "literal_string \"LP_BASE_CAPITAL_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 7835, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5799:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5799:138:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7844, + "nodeType": "ExpressionStatement", + "src": "5799:138:24" + }, + { + "assignments": [ + 7846 + ], + "declarations": [ + { + "constant": false, + "id": 7846, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7907, + "src": "6001:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6001:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7850, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7848, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "6042:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7847, + "name": "getWithdrawBasePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8368, + "src": "6019:22:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 7849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6019:30:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6001:48:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7852, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7846, + "src": "6067:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7853, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "6078:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6067:17:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "50454e414c54595f455843454544", + "id": 7855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6086:16:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + }, + "value": "PENALTY_EXCEED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + } + ], + "id": 7851, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6059:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6059:44:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7857, + "nodeType": "ExpressionStatement", + "src": "6059:44:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7858, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "6136:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7861, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "6196:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7859, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "6165:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6165:30:24", + "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": 7862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6165:38:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6136:67:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7864, + "nodeType": "ExpressionStatement", + "src": "6136:67:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7866, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6230:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6230:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7868, + "name": "requireBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7826, + "src": "6242:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7865, + "name": "_burnBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8126, + "src": "6213:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6213:48:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7870, + "nodeType": "ExpressionStatement", + "src": "6213:48:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7872, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7797, + "src": "6293:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7875, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7846, + "src": "6308:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7873, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "6297:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6297:10:24", + "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": 7876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6297:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7871, + "name": "_baseTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8990, + "src": "6271:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6271:46:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7878, + "nodeType": "ExpressionStatement", + "src": "6271:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7880, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7846, + "src": "6344:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7879, + "name": "_donateBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9031, + "src": "6327:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 7881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6327:25:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7882, + "nodeType": "ExpressionStatement", + "src": "6327:25:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7884, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6377:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6377:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7886, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7797, + "src": "6389:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6393:4:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7890, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7846, + "src": "6410:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7888, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "6399:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6399:10:24", + "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": 7891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6399:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7892, + "name": "requireBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7826, + "src": "6420:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7883, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7400, + "src": "6368:8:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256)" + } + }, + "id": 7893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6368:71:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7894, + "nodeType": "EmitStatement", + "src": "6363:76:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7896, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6468:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6468:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6480:4:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 7899, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7846, + "src": "6486:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7895, + "name": "ChargePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7408, + "src": "6454:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,bool,uint256)" + } + }, + "id": 7900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6454:40:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7901, + "nodeType": "EmitStatement", + "src": "6449:45:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7904, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7846, + "src": "6523:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7902, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7799, + "src": "6512:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6512:10:24", + "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": 7905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6512:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7807, + "id": 7906, + "nodeType": "Return", + "src": "6505:26:24" + } + ] + }, + "documentation": null, + "functionSelector": "947cf92b", + "id": 7908, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7802, + "modifierName": { + "argumentTypes": null, + "id": 7801, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "5438:16:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5438:16:24" + }, + { + "arguments": null, + "id": 7804, + "modifierName": { + "argumentTypes": null, + "id": 7803, + "name": "dodoNotClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7436, + "src": "5463:13:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5463:13:24" + } + ], + "name": "withdrawBaseTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7797, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7908, + "src": "5387:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5387:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7799, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7908, + "src": "5399:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7798, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5399:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5386:28:24" + }, + "returnParameters": { + "id": 7807, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7806, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7908, + "src": "5494:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7805, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5494:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5493:9:24" + }, + "scope": 8369, + "src": "5363:1175:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 7992, + "nodeType": "Block", + "src": "6733:750:24", + "statements": [ + { + "assignments": [ + 7920 + ], + "declarations": [ + { + "constant": false, + "id": 7920, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7992, + "src": "6743:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6743:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7925, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7922, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6786:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6786:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7921, + "name": "getLpQuoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8220, + "src": "6768:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 7924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6768:29:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6743:54:24" + }, + { + "assignments": [ + 7927 + ], + "declarations": [ + { + "constant": false, + "id": 7927, + "mutability": "mutable", + "name": "capital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7992, + "src": "6807:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6807:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7932, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7929, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6850:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6850:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 7928, + "name": "getQuoteCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9592, + "src": "6825:24:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 7931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6825:36:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6807:54:24" + }, + { + "assignments": [ + 7934 + ], + "declarations": [ + { + "constant": false, + "id": 7934, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7992, + "src": "6925:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6925:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7938, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7936, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7920, + "src": "6967:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7935, + "name": "getWithdrawQuotePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8294, + "src": "6943:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 7937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6943:39:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6925:57:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7940, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7934, + "src": "7000:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7941, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7920, + "src": "7011:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:25:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "50454e414c54595f455843454544", + "id": 7943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7027:16:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + }, + "value": "PENALTY_EXCEED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + } + ], + "id": 7939, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6992:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6992:52:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7945, + "nodeType": "ExpressionStatement", + "src": "6992:52:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 7951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7946, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "7077:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7949, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7920, + "src": "7139:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7947, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "7107:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "7107:31:24", + "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": 7950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7107:47:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7077:77:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7952, + "nodeType": "ExpressionStatement", + "src": "7077:77:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7954, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7182:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7182:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7956, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7927, + "src": "7194:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7953, + "name": "_burnQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8142, + "src": "7164:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7164:38:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7958, + "nodeType": "ExpressionStatement", + "src": "7164:38:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7960, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7910, + "src": "7235:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7963, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7934, + "src": "7258:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7961, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7920, + "src": "7239:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "7239:18:24", + "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": 7964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7239:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7959, + "name": "_quoteTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9013, + "src": "7212:22:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 7965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7212:55:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7966, + "nodeType": "ExpressionStatement", + "src": "7212:55:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7968, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7934, + "src": "7295:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7967, + "name": "_donateQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9049, + "src": "7277:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 7969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7277:26:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7970, + "nodeType": "ExpressionStatement", + "src": "7277:26:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7972, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7328:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7328:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7974, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7910, + "src": "7340:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7975, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7344:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 7976, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7920, + "src": "7351:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7977, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7927, + "src": "7367:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7971, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7400, + "src": "7319:8:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256)" + } + }, + "id": 7978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7319:56:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7979, + "nodeType": "EmitStatement", + "src": "7314:61:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7981, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7404:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7404:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7416:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 7984, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7934, + "src": "7423:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7980, + "name": "ChargePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7408, + "src": "7390:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,bool,uint256)" + } + }, + "id": 7985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7390:41:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7986, + "nodeType": "EmitStatement", + "src": "7385:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7989, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7934, + "src": "7468:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7987, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7920, + "src": "7449:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "7449:18:24", + "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": 7990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7449:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7918, + "id": 7991, + "nodeType": "Return", + "src": "7442:34:24" + } + ] + }, + "documentation": null, + "functionSelector": "04512dc4", + "id": 7993, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7913, + "modifierName": { + "argumentTypes": null, + "id": 7912, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "6664:16:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6664:16:24" + }, + { + "arguments": null, + "id": 7915, + "modifierName": { + "argumentTypes": null, + "id": 7914, + "name": "dodoNotClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7436, + "src": "6689:13:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6689:13:24" + } + ], + "name": "withdrawAllQuoteTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7911, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7910, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7993, + "src": "6629:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7909, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6629:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6628:12:24" + }, + "returnParameters": { + "id": 7918, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 7993, + "src": "6720:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7916, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6720:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6719:9:24" + }, + "scope": 8369, + "src": "6601:882:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8077, + "nodeType": "Block", + "src": "7584:740:24", + "statements": [ + { + "assignments": [ + 8005 + ], + "declarations": [ + { + "constant": false, + "id": 8005, + "mutability": "mutable", + "name": "withdrawAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8077, + "src": "7594:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8004, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7594:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8007, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7636:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7636:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 8006, + "name": "getLpBaseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8181, + "src": "7619:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 8009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7619:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7594:53:24" + }, + { + "assignments": [ + 8012 + ], + "declarations": [ + { + "constant": false, + "id": 8012, + "mutability": "mutable", + "name": "capital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8077, + "src": "7657:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7657:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8017, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8014, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7699:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7699:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 8013, + "name": "getBaseCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9565, + "src": "7675:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 8016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7675:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7657:53:24" + }, + { + "assignments": [ + 8019 + ], + "declarations": [ + { + "constant": false, + "id": 8019, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8077, + "src": "7774:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7774:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8023, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8021, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "7815:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8020, + "name": "getWithdrawBasePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8368, + "src": "7792:22:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 8022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7792:38:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7774:56:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8025, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8019, + "src": "7848:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8026, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "7859:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7848:25:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "50454e414c54595f455843454544", + "id": 8028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:16:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + }, + "value": "PENALTY_EXCEED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_af45c887a0c55e74d3b6ab9848241dbf6ed28c9c1025c29eecc72eb9398254c6", + "typeString": "literal_string \"PENALTY_EXCEED\"" + } + ], + "id": 8024, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7840:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7840:52:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8030, + "nodeType": "ExpressionStatement", + "src": "7840:52:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 8036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8031, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "7925:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8034, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "7985:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8032, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "7954:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "7954:30:24", + "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": 8035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7954:46:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7925:75:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8037, + "nodeType": "ExpressionStatement", + "src": "7925:75:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8039, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8027:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8027:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8041, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8012, + "src": "8039:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8038, + "name": "_burnBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8126, + "src": "8010:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 8042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8010:37:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8043, + "nodeType": "ExpressionStatement", + "src": "8010:37:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8045, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7995, + "src": "8079:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8048, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8019, + "src": "8102:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8046, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "8083:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "8083:18:24", + "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": 8049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8083:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8044, + "name": "_baseTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8990, + "src": "8057:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 8050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8057:54:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8051, + "nodeType": "ExpressionStatement", + "src": "8057:54:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8053, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8019, + "src": "8138:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8052, + "name": "_donateBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9031, + "src": "8121:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 8054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8121:25:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8055, + "nodeType": "ExpressionStatement", + "src": "8121:25:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8057, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8171:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8171:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7995, + "src": "8183:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8187:4:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 8061, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "8193:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8062, + "name": "capital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8012, + "src": "8209:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8056, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7400, + "src": "8162:8:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,bool,uint256,uint256)" + } + }, + "id": 8063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8162:55:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8064, + "nodeType": "EmitStatement", + "src": "8157:60:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8066, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8246:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8246:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8258:4:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 8069, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8019, + "src": "8264:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8065, + "name": "ChargePenalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7408, + "src": "8232:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,bool,uint256)" + } + }, + "id": 8070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8232:40:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8071, + "nodeType": "EmitStatement", + "src": "8227:45:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8074, + "name": "penalty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8019, + "src": "8309:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8072, + "name": "withdrawAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8005, + "src": "8290:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "8290:18:24", + "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": 8075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8290:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8003, + "id": 8076, + "nodeType": "Return", + "src": "8283:34:24" + } + ] + }, + "documentation": null, + "functionSelector": "1e34b9cc", + "id": 8078, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7998, + "modifierName": { + "argumentTypes": null, + "id": 7997, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "7535:16:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7535:16:24" + }, + { + "arguments": null, + "id": 8000, + "modifierName": { + "argumentTypes": null, + "id": 7999, + "name": "dodoNotClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7436, + "src": "7552:13:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7552:13:24" + } + ], + "name": "withdrawAllBaseTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 7996, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7995, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8078, + "src": "7516:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7994, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7516:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7515:12:24" + }, + "returnParameters": { + "id": 8003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8002, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8078, + "src": "7575:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7575:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7574:9:24" + }, + "scope": 8369, + "src": "7489:835:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8093, + "nodeType": "Block", + "src": "8446:70:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8089, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8080, + "src": "8496:4:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8090, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8082, + "src": "8502:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8086, + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9469, + "src": "8469:20:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8085, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "8456:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 8087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8456:34:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 8088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 10516, + "src": "8456:39:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 8091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8456:53:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8092, + "nodeType": "ExpressionStatement", + "src": "8456:53:24" + } + ] + }, + "documentation": null, + "id": 8094, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintBaseCapital", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8080, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8094, + "src": "8407:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8407:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8082, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8094, + "src": "8421:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8421:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8406:30:24" + }, + "returnParameters": { + "id": 8084, + "nodeType": "ParameterList", + "parameters": [], + "src": "8446:0:24" + }, + "scope": 8369, + "src": "8381:135:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8109, + "nodeType": "Block", + "src": "8588:71:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8105, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8096, + "src": "8639:4:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8106, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8098, + "src": "8645:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8102, + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9471, + "src": "8611:21:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8101, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "8598:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 8103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8598:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 8104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 10516, + "src": "8598:40:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 8107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8598:54:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8108, + "nodeType": "ExpressionStatement", + "src": "8598:54:24" + } + ] + }, + "documentation": null, + "id": 8110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintQuoteCapital", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8099, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8096, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8110, + "src": "8549:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8095, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8549:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8098, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8110, + "src": "8563:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8097, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8563:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8548:30:24" + }, + "returnParameters": { + "id": 8100, + "nodeType": "ParameterList", + "parameters": [], + "src": "8588:0:24" + }, + "scope": 8369, + "src": "8522:137:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8125, + "nodeType": "Block", + "src": "8730:70:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8121, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8112, + "src": "8780:4:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8122, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8114, + "src": "8786:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8118, + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9469, + "src": "8753:20:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8117, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "8740:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 8119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:34:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 8120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 10523, + "src": "8740:39:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 8123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8740:53:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8124, + "nodeType": "ExpressionStatement", + "src": "8740:53:24" + } + ] + }, + "documentation": null, + "id": 8126, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burnBaseCapital", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8112, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8126, + "src": "8691:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8691:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8114, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8126, + "src": "8705:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8705:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8690:30:24" + }, + "returnParameters": { + "id": 8116, + "nodeType": "ParameterList", + "parameters": [], + "src": "8730:0:24" + }, + "scope": 8369, + "src": "8665:135:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8141, + "nodeType": "Block", + "src": "8872:71:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8137, + "name": "user", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8128, + "src": "8923:4:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8138, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "8929:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8134, + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9471, + "src": "8895:21:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8133, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "8882:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 8135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8882:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 8136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 10523, + "src": "8882:40:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 8139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8882:54:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8140, + "nodeType": "ExpressionStatement", + "src": "8882:54:24" + } + ] + }, + "documentation": null, + "id": 8142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burnQuoteCapital", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8128, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8142, + "src": "8833:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8833:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8130, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8142, + "src": "8847:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8847:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8832:30:24" + }, + "returnParameters": { + "id": 8132, + "nodeType": "ParameterList", + "parameters": [], + "src": "8872:0:24" + }, + "scope": 8369, + "src": "8806:137:24", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8180, + "nodeType": "Block", + "src": "9078:301:24", + "statements": [ + { + "assignments": [ + 8150 + ], + "declarations": [ + { + "constant": false, + "id": 8150, + "mutability": "mutable", + "name": "totalBaseCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8180, + "src": "9088:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8149, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9088:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8153, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8151, + "name": "getTotalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "9115:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9115:21:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9088:48:24" + }, + { + "assignments": [ + 8155, + null + ], + "declarations": [ + { + "constant": false, + "id": 8155, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8180, + "src": "9147:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9147:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 8158, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8156, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "9171:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 8157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9171:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9146:44:24" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8159, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8150, + "src": "9204:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9224:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9204:21:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8165, + "nodeType": "IfStatement", + "src": "9200:60:24", + "trueBody": { + "id": 8164, + "nodeType": "Block", + "src": "9227:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9248:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 8148, + "id": 8163, + "nodeType": "Return", + "src": "9241:8:24" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 8176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8166, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8147, + "src": "9269:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8174, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8150, + "src": "9329:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8171, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8155, + "src": "9313:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8168, + "name": "lp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8144, + "src": "9305:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8167, + "name": "getBaseCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9565, + "src": "9281:23:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 8169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9281:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "9281:31:24", + "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": 8172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9281:43:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "9281:47:24", + "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": 8175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9281:65:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9269:77:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8177, + "nodeType": "ExpressionStatement", + "src": "9269:77:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 8178, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8147, + "src": "9363:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8148, + "id": 8179, + "nodeType": "Return", + "src": "9356:16:24" + } + ] + }, + "documentation": null, + "functionSelector": "95faa5f6", + "id": 8181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getLpBaseBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8144, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8181, + "src": "9026:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8143, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9026:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9025:12:24" + }, + "returnParameters": { + "id": 8148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8147, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8181, + "src": "9059:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9059:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9058:19:24" + }, + "scope": 8369, + "src": "9000:379:24", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8219, + "nodeType": "Block", + "src": "9464:308:24", + "statements": [ + { + "assignments": [ + 8189 + ], + "declarations": [ + { + "constant": false, + "id": 8189, + "mutability": "mutable", + "name": "totalQuoteCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8219, + "src": "9474:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9474:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8192, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8190, + "name": "getTotalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9604, + "src": "9502:20:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9502:22:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9474:50:24" + }, + { + "assignments": [ + null, + 8194 + ], + "declarations": [ + null, + { + "constant": false, + "id": 8194, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8219, + "src": "9537:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9537:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8197, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8195, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "9560:17:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 8196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9560:19:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9534:45:24" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8198, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8189, + "src": "9593:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9614:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9593:22:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8204, + "nodeType": "IfStatement", + "src": "9589:61:24", + "trueBody": { + "id": 8203, + "nodeType": "Block", + "src": "9617:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9638:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 8187, + "id": 8202, + "nodeType": "Return", + "src": "9631:8:24" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 8215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8205, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8186, + "src": "9659:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8213, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8189, + "src": "9721:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8210, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8194, + "src": "9704:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8207, + "name": "lp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8183, + "src": "9696:2:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8206, + "name": "getQuoteCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9592, + "src": "9671:24:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 8208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9671:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "9671:32:24", + "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": 8211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9671:45:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "9671:49:24", + "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": 8214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9671:68:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9659:80:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8216, + "nodeType": "ExpressionStatement", + "src": "9659:80:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 8217, + "name": "lpBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8186, + "src": "9756:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8187, + "id": 8218, + "nodeType": "Return", + "src": "9749:16:24" + } + ] + }, + "documentation": null, + "functionSelector": "36a53bbb", + "id": 8220, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getLpQuoteBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8183, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8220, + "src": "9412:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8182, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9412:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9411:12:24" + }, + "returnParameters": { + "id": 8187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8186, + "mutability": "mutable", + "name": "lpBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8220, + "src": "9445:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8185, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9444:19:24" + }, + "scope": 8369, + "src": "9385:387:24", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8293, + "nodeType": "Block", + "src": "9865:877:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8228, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8222, + "src": "9883:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8229, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "9893:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9883:25:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f51554f54455f42414c414e43455f4e4f545f454e4f554748", + "id": 8231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9910:31:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_01a080c50343e863e17230c1a9c9900101809eaf44c06794af82120907bb21f5", + "typeString": "literal_string \"DODO_QUOTE_BALANCE_NOT_ENOUGH\"" + }, + "value": "DODO_QUOTE_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_01a080c50343e863e17230c1a9c9900101809eaf44c06794af82120907bb21f5", + "typeString": "literal_string \"DODO_QUOTE_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 8227, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9875:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9875:67:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8233, + "nodeType": "ExpressionStatement", + "src": "9875:67:24" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 8238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8234, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "9956:10:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8235, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "9970:5:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 8236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "9970:13:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 8237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9970:23:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "9956:37:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8291, + "nodeType": "Block", + "src": "10703:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10724:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 8226, + "id": 8290, + "nodeType": "Return", + "src": "10717:8:24" + } + ] + }, + "id": 8292, + "nodeType": "IfStatement", + "src": "9952:784:24", + "trueBody": { + "id": 8288, + "nodeType": "Block", + "src": "9995:702:24", + "statements": [ + { + "assignments": [ + 8240 + ], + "declarations": [ + { + "constant": false, + "id": 8240, + "mutability": "mutable", + "name": "spareBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8288, + "src": "10009:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10009:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8245, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8243, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "10048:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8241, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "10029:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "10029:18:24", + "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": 8244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10029:46:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10009:66:24" + }, + { + "assignments": [ + 8247 + ], + "declarations": [ + { + "constant": false, + "id": 8247, + "mutability": "mutable", + "name": "price", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8288, + "src": "10089:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8246, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10089:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8250, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8248, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "10105:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10105:16:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10089:32:24" + }, + { + "assignments": [ + 8252 + ], + "declarations": [ + { + "constant": false, + "id": 8252, + "mutability": "mutable", + "name": "fairAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8288, + "src": "10135:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10135:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8258, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8255, + "name": "spareBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8240, + "src": "10172:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8256, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8247, + "src": "10183:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8253, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "10156:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "10156:15:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10156:33:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10135:54:24" + }, + { + "assignments": [ + 8260 + ], + "declarations": [ + { + "constant": false, + "id": 8260, + "mutability": "mutable", + "name": "targetQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8288, + "src": "10203:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8259, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10203:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8267, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8263, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "10284:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8264, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "10317:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8265, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8252, + "src": "10338:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8261, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "10225:8:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10991, + "src": "10225:41:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10225:137:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10203:159:24" + }, + { + "assignments": [ + 8269 + ], + "declarations": [ + { + "constant": false, + "id": 8269, + "mutability": "mutable", + "name": "targetQuoteWithWithdraw", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8288, + "src": "10430:31:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10430:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8279, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8274, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8222, + "src": "10543:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8272, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "10523:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "10523:19:24", + "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": 8275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10523:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8276, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "10568:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8277, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8252, + "src": "10589:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8270, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "10464:8:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10991, + "src": "10464:41:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10464:149:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10430:183:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8284, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8222, + "src": "10678:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8282, + "name": "targetQuoteWithWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8269, + "src": "10650:23:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "10650:27:24", + "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": 8285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10650:35:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8280, + "name": "targetQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8260, + "src": "10634:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "10634:15:24", + "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": 8286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10634:52:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8226, + "id": 8287, + "nodeType": "Return", + "src": "10627:59:24" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "0c9f7bd0", + "id": 8294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getWithdrawQuotePenalty", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8222, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8294, + "src": "9811:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9811:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9810:16:24" + }, + "returnParameters": { + "id": 8226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8225, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8294, + "src": "9848:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8224, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9848:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9847:17:24" + }, + "scope": 8369, + "src": "9778:964:24", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8367, + "nodeType": "Block", + "src": "10834:877:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8302, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8296, + "src": "10852:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8303, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "10862:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10852:24:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f424153455f42414c414e43455f4e4f545f454e4f554748", + "id": 8305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10878:30:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + }, + "value": "DODO_BASE_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 8301, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10844:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10844:65:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8307, + "nodeType": "ExpressionStatement", + "src": "10844:65:24" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 8312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8308, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "10923:10:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8309, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "10937:5:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 8310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "10937:13:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 8311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10937:23:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "10923:37:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8365, + "nodeType": "Block", + "src": "11672:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11693:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 8300, + "id": 8364, + "nodeType": "Return", + "src": "11686:8:24" + } + ] + }, + "id": 8366, + "nodeType": "IfStatement", + "src": "10919:786:24", + "trueBody": { + "id": 8362, + "nodeType": "Block", + "src": "10962:704:24", + "statements": [ + { + "assignments": [ + 8314 + ], + "declarations": [ + { + "constant": false, + "id": 8314, + "mutability": "mutable", + "name": "spareQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8362, + "src": "10976:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8313, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10976:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8317, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "11017:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8315, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "10997:15:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "10997:19:24", + "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": 8318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10997:48:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10976:69:24" + }, + { + "assignments": [ + 8321 + ], + "declarations": [ + { + "constant": false, + "id": 8321, + "mutability": "mutable", + "name": "price", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8362, + "src": "11059:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8320, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11059:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8324, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8322, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "11075:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11075:16:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11059:32:24" + }, + { + "assignments": [ + 8326 + ], + "declarations": [ + { + "constant": false, + "id": 8326, + "mutability": "mutable", + "name": "fairAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8362, + "src": "11105:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8325, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11105:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8332, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8329, + "name": "spareQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8314, + "src": "11147:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8330, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8321, + "src": "11159:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8327, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "11126:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "11126:20:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11126:39:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11105:60:24" + }, + { + "assignments": [ + 8334 + ], + "declarations": [ + { + "constant": false, + "id": 8334, + "mutability": "mutable", + "name": "targetBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8362, + "src": "11179:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11179:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8341, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8337, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "11259:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8338, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "11291:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8339, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8326, + "src": "11312:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8335, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "11200:8:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10991, + "src": "11200:41:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11200:136:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11179:157:24" + }, + { + "assignments": [ + 8343 + ], + "declarations": [ + { + "constant": false, + "id": 8343, + "mutability": "mutable", + "name": "targetBaseWithWithdraw", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8362, + "src": "11403:30:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8342, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11403:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8353, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8348, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8296, + "src": "11514:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8346, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "11495:14:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "11495:18:24", + "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": 8349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11495:26:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8350, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "11539:3:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8351, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8326, + "src": "11560:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8344, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "11436:8:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10991, + "src": "11436:41:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11436:148:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11403:181:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8358, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8296, + "src": "11647:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8356, + "name": "targetBaseWithWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8343, + "src": "11620:22:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "11620:26:24", + "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": 8359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11620:34:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8354, + "name": "targetBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8334, + "src": "11605:10:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "11605:14:24", + "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": 8360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11605:50:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8300, + "id": 8361, + "nodeType": "Return", + "src": "11598:57:24" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "ee5150b3", + "id": 8368, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getWithdrawBasePenalty", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8296, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8368, + "src": "10780:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8295, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10780:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10779:16:24" + }, + "returnParameters": { + "id": 8300, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8299, + "mutability": "mutable", + "name": "penalty", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8368, + "src": "10817:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8298, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10817:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10816:17:24" + }, + "scope": 8369, + "src": "10748:963:24", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 8370, + "src": "618:11095:24" + } + ], + "src": "78:11636:24" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.683Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "LiquidityProvider" + }, + "userdoc": { + "methods": {}, + "notice": "Functions for liquidity provider operations" + } +} \ No newline at end of file diff --git a/build-v1/contracts/LockedTokenVault.json b/build-v1/contracts/LockedTokenVault.json new file mode 100644 index 0000000..0976bd6 --- /dev/null +++ b/build-v1/contracts/LockedTokenVault.json @@ -0,0 +1,14437 @@ +{ + "contractName": "LockedTokenVault", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_startReleaseTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_releaseDuration", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_cliffRate", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "holder", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "origin", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "claimed", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Claim", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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" + }, + { + "inputs": [], + "name": "_CLIFF_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DISTRIBUTE_FINISHED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_RELEASE_DURATION_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_START_RELEASE_TIME_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_UNDISTRIBUTED_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "deposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "finishDistribute", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "holderList", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "amountList", + "type": "uint256[]" + } + ], + "name": "grant", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "holder", + "type": "address" + } + ], + "name": "recall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "transferLockedToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "isReleaseStart", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "holder", + "type": "address" + } + ], + "name": "getOriginBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "holder", + "type": "address" + } + ], + "name": "getClaimedBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "holder", + "type": "address" + } + ], + "name": "getClaimableBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "holder", + "type": "address" + } + ], + "name": "getRemainingBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getRemainingRatio", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_startReleaseTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_releaseDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_cliffRate\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"origin\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"claimed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\"},{\"inputs\":[],\"name\":\"_CLIFF_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DISTRIBUTE_FINISHED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_RELEASE_DURATION_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_START_RELEASE_TIME_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_UNDISTRIBUTED_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finishDistribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getClaimableBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getClaimedBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getOriginBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getRemainingBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getRemainingRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"holderList\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amountList\",\"type\":\"uint256[]\"}],\"name\":\"grant\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isReleaseStart\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"recall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferLockedToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"LockedTokenVault\"},\"userdoc\":{\"methods\":{},\"notice\":\"Lock Token and release it linearly\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/LockedTokenVault.sol\":\"LockedTokenVault\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":{\"keccak256\":\"0x9a093cbac4e37ed4ee5e27495dae08754bbfec81f7c0ceb57a5a7ac4f362208f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ddd9e5de1c555f0d1232e148fe18574e6adaa348e792844d9011bbd39bf908f\",\"dweb:/ipfs/QmSgZNwPNqCrQC4kJNdwH3iQNasbTfw2cbTtAtNVcpqnYc\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol\":{\"keccak256\":\"0xb7a2ca6570834e4784e86d19fd5a4b6b1eff22a4586dc240659943396a365aa5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5855a493c78e787d7effd87d9c661acbcd19ca1e1ba72dbeaa91c3c8db29cbb4\",\"dweb:/ipfs/QmSddEexZ5okMatgoQ5JZRoJqe7BwsJwwWA2o1kKx7vbTH\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/LockedTokenVault.sol\":{\"keccak256\":\"0x074409a43d84164fc48bab73d869e4696711eb74b43b4959af61f408c4519451\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8f066b0447fd4fbf01309c1e788f2b580da53296622c9232bd2bc2fa6e04f621\",\"dweb:/ipfs/QmakNtbKmxbnJ6XJq6ewUt3VSzhDz5GeZdyaG25eRgRhCL\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506040516110f13803806110f183398101604081905261002f916100aa565b600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600280546001600160a01b0319166001600160a01b0395909516949094179093556006919091556007556008556100f3565b600080600080608085870312156100bf578384fd5b84516001600160a01b03811681146100d5578485fd5b60208601516040870151606090970151919890975090945092505050565b610fef806101026000396000f3fe608060405234801561001057600080fd5b50600436106101415760003560e01c80637db41eae116100b8578063cd32f0861161007c578063cd32f08614610250578063cf0e80fe14610258578063d18284961461026b578063e5612b3b1461027e578063ef90364214610286578063f2fde38b1461028e57610141565b80637db41eae146101fc5780638456db151461020f578063b6b55f2514610217578063c2ae16801461022a578063ca4305191461023d57610141565b80632a8b04801161010a5780632a8b0480146101a75780632e1a7d4d146101af5780634e71d92d146101c45780634e71e0c8146101cc5780636a4de5d1146101d4578063710475f6146101e757610141565b80621bf8f61461014657806306def8021461016f57806316048bc41461018257806324b3274114610197578063294dafc01461019f575b600080fd5b610159610154366004610c58565b6102a1565b6040516101669190610f9a565b60405180910390f35b61015961017d366004610c58565b6102dc565b61018a610330565b6040516101669190610d59565b61015961033f565b610159610345565b61015961034b565b6101c26101bd366004610d08565b610351565b005b6101c26103b3565b6101c2610449565b6101596101e2366004610d08565b6104d7565b6101ef61057f565b6040516101669190610daa565b6101c261020a366004610c58565b610588565b61018a61062c565b6101c2610225366004610d08565b61063b565b6101c2610238366004610c7f565b610694565b6101c261024b366004610c58565b6107d6565b6101ef61088a565b610159610266366004610c58565b610893565b610159610279366004610c58565b6108ae565b6101c26108c9565b610159610902565b6101c261029c366004610c58565b610908565b6000806102ad426104d7565b6001600160a01b0384166000908152600360205260409020549091506102d390826109b3565b9150505b919050565b6000806102e8836102a1565b6001600160a01b0384166000908152600460209081526040808320546003909252909120549192506102d391610324908463ffffffff6109df16565b9063ffffffff6109df16565b6000546001600160a01b031681565b60055481565b60085481565b60065481565b6000546001600160a01b031633146103845760405162461bcd60e51b815260040161037b90610eb0565b60405180910390fd5b600554610397908263ffffffff6109df16565b6005556000546103b0906001600160a01b031682610a07565b50565b60006103be336102dc565b90506103ca3382610a07565b336000908152600460205260409020546103ea908263ffffffff610a2816565b336000818152600460208181526040808420869055600382529283902054919052905191927f45c072aa05b9853b5a993de7a28bc332ee01404a628cec1a23ce0f659f842ef19261043e9291908690610fa3565b60405180910390a250565b6001546001600160a01b031633146104735760405162461bcd60e51b815260040161037b90610db5565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006006548210156104f25750670de0b6b3a76400006102d7565b6000610509600654846109df90919063ffffffff16565b90506007548110156105755760075460009061052b908363ffffffff6109df16565b905061056c60075461056083610554600854670de0b6b3a76400006109df90919063ffffffff16565b9063ffffffff610a5416565b9063ffffffff610a8e16565b925050506102d7565b60009150506102d7565b60095460ff1681565b33600090815260036020526040808220546001600160a01b03841683529120546105b79163ffffffff610a2816565b6001600160a01b038216600081815260036020908152604080832094909455338252600490528281205491815291909120546105f89163ffffffff610a2816565b6001600160a01b03909116600090815260046020818152604080842094909455338352600381528383208390555290812055565b6001546001600160a01b031681565b6000546001600160a01b031633146106655760405162461bcd60e51b815260040161037b90610eb0565b60005461067b906001600160a01b031682610ab8565b60055461068e908263ffffffff610a2816565b60055550565b6000546001600160a01b031633146106be5760405162461bcd60e51b815260040161037b90610eb0565b8281146106dd5760405162461bcd60e51b815260040161037b90610f63565b6000805b848110156107b85761074a8484838181106106f857fe5b905060200201356003600089898681811061070f57fe5b90506020020160208101906107249190610c58565b6001600160a01b031681526020810191909152604001600020549063ffffffff610a2816565b6003600088888581811061075a57fe5b905060200201602081019061076f9190610c58565b6001600160a01b031681526020810191909152604001600020556107ae84848381811061079857fe5b9050602002013583610a2890919063ffffffff16565b91506001016106e1565b506005546107cc908263ffffffff6109df16565b6005555050505050565b6000546001600160a01b031633146108005760405162461bcd60e51b815260040161037b90610eb0565b60095460ff16156108235760405162461bcd60e51b815260040161037b90610ddc565b6001600160a01b0381166000908152600460209081526040808320546003909252909120546005546108609291610324919063ffffffff610a2816565b6005556001600160a01b031660009081526003602090815260408083208390556004909152812055565b60065442101590565b6001600160a01b031660009081526004602052604090205490565b6001600160a01b031660009081526003602052604090205490565b6000546001600160a01b031633146108f35760405162461bcd60e51b815260040161037b90610eb0565b6009805460ff19166001179055565b60075481565b6000546001600160a01b031633146109325760405162461bcd60e51b815260040161037b90610eb0565b6001600160a01b0381166109585760405162461bcd60e51b815260040161037b90610e89565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000670de0b6b3a76400006109ce848463ffffffff610a5416565b816109d557fe5b0490505b92915050565b600082821115610a015760405162461bcd60e51b815260040161037b90610e66565b50900390565b600254610a24906001600160a01b0316838363ffffffff610ad616565b5050565b600082820183811015610a4d5760405162461bcd60e51b815260040161037b90610ed3565b9392505050565b600082610a63575060006109d9565b82820282848281610a7057fe5b0414610a4d5760405162461bcd60e51b815260040161037b90610f40565b6000808211610aaf5760405162461bcd60e51b815260040161037b90610e3e565b8183816109d557fe5b600254610a24906001600160a01b031683308463ffffffff610b3116565b610b2c8363a9059cbb60e01b8484604051602401610af5929190610d91565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610b58565b505050565b610b52846323b872dd60e01b858585604051602401610af593929190610d6d565b50505050565b60006060836001600160a01b031683604051610b749190610d20565b6000604051808303816000865af19150503d8060008114610bb1576040519150601f19603f3d011682016040523d82523d6000602084013e610bb6565b606091505b509150915081610bd85760405162461bcd60e51b815260040161037b90610e09565b805115610b525780806020019051810190610bf39190610ce8565b610b525760405162461bcd60e51b815260040161037b90610ef6565b60008083601f840112610c20578182fd5b50813567ffffffffffffffff811115610c37578182fd5b6020830191508360208083028501011115610c5157600080fd5b9250929050565b600060208284031215610c69578081fd5b81356001600160a01b0381168114610a4d578182fd5b60008060008060408587031215610c94578283fd5b843567ffffffffffffffff80821115610cab578485fd5b610cb788838901610c0f565b90965094506020870135915080821115610ccf578384fd5b50610cdc87828801610c0f565b95989497509550505050565b600060208284031215610cf9578081fd5b81518015158114610a4d578182fd5b600060208284031215610d19578081fd5b5035919050565b60008251815b81811015610d405760208186018101518583015201610d26565b81811115610d4e5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b602080825260139082015272111254d5149250955511481192539254d21151606a1b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b6020808252601c908201527f6261746368206772616e74206c656e677468206e6f74206d6174636800000000604082015260600190565b90815260200190565b928352602083019190915260408201526060019056fea26469706673582212207f11995cc6a066ee4583627cb81b22e62285d1aed6171a41fe0fee5d40f41c5464736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101415760003560e01c80637db41eae116100b8578063cd32f0861161007c578063cd32f08614610250578063cf0e80fe14610258578063d18284961461026b578063e5612b3b1461027e578063ef90364214610286578063f2fde38b1461028e57610141565b80637db41eae146101fc5780638456db151461020f578063b6b55f2514610217578063c2ae16801461022a578063ca4305191461023d57610141565b80632a8b04801161010a5780632a8b0480146101a75780632e1a7d4d146101af5780634e71d92d146101c45780634e71e0c8146101cc5780636a4de5d1146101d4578063710475f6146101e757610141565b80621bf8f61461014657806306def8021461016f57806316048bc41461018257806324b3274114610197578063294dafc01461019f575b600080fd5b610159610154366004610c58565b6102a1565b6040516101669190610f9a565b60405180910390f35b61015961017d366004610c58565b6102dc565b61018a610330565b6040516101669190610d59565b61015961033f565b610159610345565b61015961034b565b6101c26101bd366004610d08565b610351565b005b6101c26103b3565b6101c2610449565b6101596101e2366004610d08565b6104d7565b6101ef61057f565b6040516101669190610daa565b6101c261020a366004610c58565b610588565b61018a61062c565b6101c2610225366004610d08565b61063b565b6101c2610238366004610c7f565b610694565b6101c261024b366004610c58565b6107d6565b6101ef61088a565b610159610266366004610c58565b610893565b610159610279366004610c58565b6108ae565b6101c26108c9565b610159610902565b6101c261029c366004610c58565b610908565b6000806102ad426104d7565b6001600160a01b0384166000908152600360205260409020549091506102d390826109b3565b9150505b919050565b6000806102e8836102a1565b6001600160a01b0384166000908152600460209081526040808320546003909252909120549192506102d391610324908463ffffffff6109df16565b9063ffffffff6109df16565b6000546001600160a01b031681565b60055481565b60085481565b60065481565b6000546001600160a01b031633146103845760405162461bcd60e51b815260040161037b90610eb0565b60405180910390fd5b600554610397908263ffffffff6109df16565b6005556000546103b0906001600160a01b031682610a07565b50565b60006103be336102dc565b90506103ca3382610a07565b336000908152600460205260409020546103ea908263ffffffff610a2816565b336000818152600460208181526040808420869055600382529283902054919052905191927f45c072aa05b9853b5a993de7a28bc332ee01404a628cec1a23ce0f659f842ef19261043e9291908690610fa3565b60405180910390a250565b6001546001600160a01b031633146104735760405162461bcd60e51b815260040161037b90610db5565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006006548210156104f25750670de0b6b3a76400006102d7565b6000610509600654846109df90919063ffffffff16565b90506007548110156105755760075460009061052b908363ffffffff6109df16565b905061056c60075461056083610554600854670de0b6b3a76400006109df90919063ffffffff16565b9063ffffffff610a5416565b9063ffffffff610a8e16565b925050506102d7565b60009150506102d7565b60095460ff1681565b33600090815260036020526040808220546001600160a01b03841683529120546105b79163ffffffff610a2816565b6001600160a01b038216600081815260036020908152604080832094909455338252600490528281205491815291909120546105f89163ffffffff610a2816565b6001600160a01b03909116600090815260046020818152604080842094909455338352600381528383208390555290812055565b6001546001600160a01b031681565b6000546001600160a01b031633146106655760405162461bcd60e51b815260040161037b90610eb0565b60005461067b906001600160a01b031682610ab8565b60055461068e908263ffffffff610a2816565b60055550565b6000546001600160a01b031633146106be5760405162461bcd60e51b815260040161037b90610eb0565b8281146106dd5760405162461bcd60e51b815260040161037b90610f63565b6000805b848110156107b85761074a8484838181106106f857fe5b905060200201356003600089898681811061070f57fe5b90506020020160208101906107249190610c58565b6001600160a01b031681526020810191909152604001600020549063ffffffff610a2816565b6003600088888581811061075a57fe5b905060200201602081019061076f9190610c58565b6001600160a01b031681526020810191909152604001600020556107ae84848381811061079857fe5b9050602002013583610a2890919063ffffffff16565b91506001016106e1565b506005546107cc908263ffffffff6109df16565b6005555050505050565b6000546001600160a01b031633146108005760405162461bcd60e51b815260040161037b90610eb0565b60095460ff16156108235760405162461bcd60e51b815260040161037b90610ddc565b6001600160a01b0381166000908152600460209081526040808320546003909252909120546005546108609291610324919063ffffffff610a2816565b6005556001600160a01b031660009081526003602090815260408083208390556004909152812055565b60065442101590565b6001600160a01b031660009081526004602052604090205490565b6001600160a01b031660009081526003602052604090205490565b6000546001600160a01b031633146108f35760405162461bcd60e51b815260040161037b90610eb0565b6009805460ff19166001179055565b60075481565b6000546001600160a01b031633146109325760405162461bcd60e51b815260040161037b90610eb0565b6001600160a01b0381166109585760405162461bcd60e51b815260040161037b90610e89565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000670de0b6b3a76400006109ce848463ffffffff610a5416565b816109d557fe5b0490505b92915050565b600082821115610a015760405162461bcd60e51b815260040161037b90610e66565b50900390565b600254610a24906001600160a01b0316838363ffffffff610ad616565b5050565b600082820183811015610a4d5760405162461bcd60e51b815260040161037b90610ed3565b9392505050565b600082610a63575060006109d9565b82820282848281610a7057fe5b0414610a4d5760405162461bcd60e51b815260040161037b90610f40565b6000808211610aaf5760405162461bcd60e51b815260040161037b90610e3e565b8183816109d557fe5b600254610a24906001600160a01b031683308463ffffffff610b3116565b610b2c8363a9059cbb60e01b8484604051602401610af5929190610d91565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610b58565b505050565b610b52846323b872dd60e01b858585604051602401610af593929190610d6d565b50505050565b60006060836001600160a01b031683604051610b749190610d20565b6000604051808303816000865af19150503d8060008114610bb1576040519150601f19603f3d011682016040523d82523d6000602084013e610bb6565b606091505b509150915081610bd85760405162461bcd60e51b815260040161037b90610e09565b805115610b525780806020019051810190610bf39190610ce8565b610b525760405162461bcd60e51b815260040161037b90610ef6565b60008083601f840112610c20578182fd5b50813567ffffffffffffffff811115610c37578182fd5b6020830191508360208083028501011115610c5157600080fd5b9250929050565b600060208284031215610c69578081fd5b81356001600160a01b0381168114610a4d578182fd5b60008060008060408587031215610c94578283fd5b843567ffffffffffffffff80821115610cab578485fd5b610cb788838901610c0f565b90965094506020870135915080821115610ccf578384fd5b50610cdc87828801610c0f565b95989497509550505050565b600060208284031215610cf9578081fd5b81518015158114610a4d578182fd5b600060208284031215610d19578081fd5b5035919050565b60008251815b81811015610d405760208186018101518583015201610d26565b81811115610d4e5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b602080825260139082015272111254d5149250955511481192539254d21151606a1b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b6020808252601c908201527f6261746368206772616e74206c656e677468206e6f74206d6174636800000000604082015260600190565b90815260200190565b928352602083019190915260408201526060019056fea26469706673582212207f11995cc6a066ee4583627cb81b22e62285d1aed6171a41fe0fee5d40f41c5464736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "480:5216:47:-:0;;;1532:311;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;757:7:38;:20;;-1:-1:-1;;;;;;757:20:38;767:10;757:20;;;;792:41;;-1:-1:-1;;;;;825:7:38;;;;;757;792:41;;757:7;;792:41;1688:7:47;:16;;-1:-1:-1;;;;;;1688:16:47;-1:-1:-1;;;;;1688:16:47;;;;;;;;;;;1714:20;:40;;;;1764:18;:37;1811:12;:25;480:5216;;287:672:-1;;;;;453:3;441:9;432:7;428:23;424:33;421:2;;;-1:-1;;460:12;421:2;83:13;;-1:-1;;;;;1126:54;;1330:35;;1320:2;;-1:-1;;1369:12;1320:2;623;673:22;;224:13;742:2;792:22;;224:13;861:2;911:22;;;224:13;512:74;;224:13;;-1:-1;224:13;;-1:-1;415:544;-1:-1;;;415:544;;480:5216:47;;;;;;", + "deployedSourceMap": "480:5216:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4637:223;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4399:232;;;;;;;;;:::i;251:22:38:-;;;:::i;:::-;;;;;;;;726:37:47;;;:::i;849:27::-;;;:::i;769:35::-;;;:::i;2026:173::-;;;;;;;;;:::i;:::-;;3572:404;;;:::i;1072:225:38:-;;;:::i;4866:502:47:-;;;;;;;;;:::i;883:33::-;;;:::i;:::-;;;;;;;;3262:304;;;;;;;;;:::i;279:26:38:-;;;:::i;1849:171:47:-;;;;;;;;;:::i;2347:569::-;;;;;;;;;:::i;2922:289::-;;;;;;;;;:::i;4021:118::-;;;:::i;4271:122::-;;;;;;;;;:::i;4145:120::-;;;;;;;;;:::i;2205:92::-;;;:::i;810:33::-;;;:::i;846:220:38:-;;;;;;;;;:::i;4637:223:47:-;4703:7;4722:22;4747:34;4765:15;4747:17;:34::i;:::-;-1:-1:-1;;;;;4814:22:47;;;;;;:14;:22;;;;;;4722:59;;-1:-1:-1;4798:55:47;;4722:59;4798:15;:55::i;:::-;4791:62;;;4637:223;;;;:::o;4399:232::-;4465:7;4484:22;4509:27;4529:6;4509:19;:27::i;:::-;-1:-1:-1;;;;;4600:23:47;;;;;;:15;:23;;;;;;;;;4553:14;:22;;;;;;;4484:52;;-1:-1:-1;4553:71:47;;:42;;4484:52;4553:42;:26;:42;:::i;:::-;:46;:71;:46;:71;:::i;251:22:38:-;;;-1:-1:-1;;;;;251:22:38;;:::o;726:37:47:-;;;;:::o;849:27::-;;;;:::o;769:35::-;;;;:::o;2026:173::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;;;;;;;;;2114:22:47::1;::::0;:34:::1;::::0;2141:6;2114:34:::1;:26;:34;:::i;:::-;2089:22;:59:::0;2176:7:::1;::::0;2158:34:::1;::::0;-1:-1:-1;;;;;2176:7:47::1;2185:6:::0;2158:17:::1;:34::i;:::-;2026:173:::0;:::o;3572:404::-;3608:22;3633:31;3653:10;3633:19;:31::i;:::-;3608:56;;3674:45;3692:10;3704:14;3674:17;:45::i;:::-;3775:10;3759:27;;;;:15;:27;;;;;;:47;;3791:14;3759:47;:31;:47;:::i;:::-;3745:10;3729:27;;;;:15;:27;;;;;;;;:77;;;3864:14;:26;;;;;;;3904:27;;;3821:148;;3745:10;;3821:148;;;;3864:26;3729:77;3945:14;;3821:148;;;;;;;;;;3572:404;:::o;1072:225:38:-;1139:11;;-1:-1:-1;;;;;1139:11:38;1125:10;:25;1117:51;;;;-1:-1:-1;;;1117:51:38;;;;;;;;;1213:11;;;1204:7;;1183:42;;-1:-1:-1;;;;;1213:11:38;;;;1204:7;;;;1183:42;;;1245:11;;;;1235:21;;-1:-1:-1;;;;;;1235:21:38;;;-1:-1:-1;;;;;1245:11:38;;1235:21;;;;1266:24;;;1072:225::o;4866:502:47:-;4933:7;4968:20;;4956:9;:32;4952:85;;;-1:-1:-1;379:6:36;5004:22:47;;4952:85;5046:16;5065:35;5079:20;;5065:9;:13;;:35;;;;:::i;:::-;5046:54;;5125:18;;5114:8;:29;5110:252;;;5183:18;;5159:21;;5183:32;;5206:8;5183:32;:22;:32;:::i;:::-;5159:56;;5236:76;5293:18;;5236:52;5274:13;5236:33;5256:12;;379:6:36;5236:19:47;;:33;;;;:::i;:::-;:37;:52;:37;:52;:::i;:::-;:56;:76;:56;:76;:::i;:::-;5229:83;;;;;;5110:252;5350:1;5343:8;;;;;883:33;;;;;;:::o;3262:304::-;3381:10;3366:26;;;;:14;:26;;;;;;;-1:-1:-1;;;;;3343:18:47;;;;;;;:50;;;:22;:50;:::i;:::-;-1:-1:-1;;;;;3322:18:47;;;;;;:14;:18;;;;;;;;:71;;;;3465:10;3449:27;;:15;:27;;;;;;3425:19;;;;;;;;:52;;;:23;:52;:::i;:::-;-1:-1:-1;;;;;3403:19:47;;;;;;;:15;:19;;;;;;;;:74;;;;3503:10;3488:26;;:14;:26;;;;;:30;;;3528:27;;;;:31;3262:304::o;279:26:38:-;;;-1:-1:-1;;;;;279:26:38;;:::o;1849:171:47:-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;1928:7:47::1;::::0;1911:33:::1;::::0;-1:-1:-1;;;;;1928:7:47::1;1937:6:::0;1911:16:::1;:33::i;:::-;1979:22;::::0;:34:::1;::::0;2006:6;1979:34:::1;:26;:34;:::i;:::-;1954:22;:59:::0;-1:-1:-1;1849:171:47:o;2347:569::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;2481:38:47;;::::1;2473:79;;;;-1:-1:-1::0;;;2473:79:47::1;;;;;;;;;2562:14;::::0;2590:251:::1;2610:21:::0;;::::1;2590:251;;;2734:48;2768:10;;2779:1;2768:13;;;;;;;;;;;;;2734:14;:29;2749:10;;2760:1;2749:13;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;2734:29:47::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;2734:29:47;;;:48:::1;:33;:48;:::i;:::-;2702:14;:29;2717:10;;2728:1;2717:13;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;2702:29:47::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;2702:29:47;:80;2805:25:::1;2816:10:::0;;2827:1;2816:13;;::::1;;;;;;;;;;;2805:6;:10;;:25;;;;:::i;:::-;2796:34:::0;-1:-1:-1;2633:3:47::1;;2590:251;;;-1:-1:-1::0;2875:22:47::1;::::0;:34:::1;::::0;2902:6;2875:34:::1;:26;:34;:::i;:::-;2850:22;:59:::0;-1:-1:-1;;;;;2347:569:47:o;2922:289::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;1414:21:47::1;::::0;::::1;;1413:22;1405:54;;;;-1:-1:-1::0;;;1405:54:47::1;;;;;;;;;-1:-1:-1::0;;;;;3098:23:47;::::2;;::::0;;;:15:::2;:23;::::0;;;;;;;;3057:14:::2;:22:::0;;;;;;;3030::::2;::::0;:101:::2;::::0;3098:23;3030:50:::2;::::0;:22;:50:::2;:26;:50;:::i;:101::-;3005:22;:126:::0;-1:-1:-1;;;;;3141:22:47::2;3166:1;3141:22:::0;;;:14:::2;:22;::::0;;;;;;;:26;;;3177:15:::2;:23:::0;;;;;:27;2922:289::o;4021:118::-;4112:20;;4093:15;:39;;4021:118;:::o;4271:122::-;-1:-1:-1;;;;;4363:23:47;4337:7;4363:23;;;:15;:23;;;;;;;4271:122::o;4145:120::-;-1:-1:-1;;;;;4236:22:47;4210:7;4236:22;;;:14;:22;;;;;;;4145:120::o;2205:92::-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;2262:21:47::1;:28:::0;;-1:-1:-1;;2262:28:47::1;2286:4;2262:28;::::0;;2205:92::o;810:33::-;;;;:::o;846:220:38:-;635:7;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;-1:-1:-1;;;;;928:22:38;::::1;920:48;;;;-1:-1:-1::0;;;920:48:38::1;;;;;;;;;1009:7;::::0;;983:44:::1;::::0;-1:-1:-1;;;;;983:44:38;;::::1;::::0;1009:7;::::1;::::0;983:44:::1;::::0;::::1;1037:11;:22:::0;;-1:-1:-1;;;;;;1037:22:38::1;-1:-1:-1::0;;;;;1037:22:38;;;::::1;::::0;;;::::1;::::0;;846:220::o;392:115:36:-;455:7;379:6;481:13;:6;492:1;481:13;:10;:13;:::i;:::-;:19;;;;;;474:26;;392:115;;;;;:::o;934:134:41:-;992:7;1024:1;1019;:6;;1011:28;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;5573:121:47:-;5654:7;;5647:40;;-1:-1:-1;;;;;5654:7:47;5676:2;5680:6;5647:40;:28;:40;:::i;:::-;5573:121;;:::o;1074:157:41:-;1132:7;1163:5;;;1186:6;;;;1178:28;;;;-1:-1:-1;;;1178:28:41;;;;;;;;;1223:1;1074:157;-1:-1:-1;;;1074:157:41:o;281:217::-;339:7;362:6;358:45;;-1:-1:-1;391:1:41;384:8;;358:45;425:5;;;429:1;425;:5;:1;448:5;;;;;:10;440:32;;;;-1:-1:-1;;;440:32:41;;;;;;;;504:138;562:7;593:1;589;:5;581:32;;;;-1:-1:-1;;;581:32:41;;;;;;;;;634:1;630;:5;;;;5424:143:47;5506:7;;5499:61;;-1:-1:-1;;;;;5506:7:47;5532:4;5546;5553:6;5499:61;:32;:61;:::i;804:205:40:-;916:86;936:5;966:23;;;991:2;995:5;943:58;;;;;;;;;;;;;;-1:-1:-1;;943:58:40;;;;;;;;;;;;;;-1:-1:-1;;;;;943:58:40;-1:-1:-1;;;;;;943:58:40;;;;;;;;;;916:19;:86::i;:::-;804:205;;;:::o;1015:275::-;1153:130;1186:5;1228:27;;;1257:4;1263:2;1267:5;1205:68;;;;;;;;;;;1153:130;1015:275;;;;:::o;2335:1027::-;2984:12;2998:23;3033:5;-1:-1:-1;;;;;3025:19:40;3045:4;3025:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2983:67;;;;3068:7;3060:52;;;;-1:-1:-1;;;3060:52:40;;;;;;;;;3127:17;;:21;3123:233;;3279:10;3268:30;;;;;;;;;;;;;;3260:85;;;;-1:-1:-1;;;3260:85:40;;;;;;;;160:352:-1;;;290:3;283:4;275:6;271:17;267:27;257:2;;-1:-1;;298:12;257:2;-1:-1;328:20;;368:18;357:30;;354:2;;;-1:-1;;390:12;354:2;434:4;426:6;422:17;410:29;;485:3;434:4;;469:6;465:17;426:6;451:32;;448:41;445:2;;;502:1;;492:12;445:2;250:262;;;;;;1170:241;;1274:2;1262:9;1253:7;1249:23;1245:32;1242:2;;;-1:-1;;1280:12;1242:2;72:20;;-1:-1;;;;;14511:54;;14992:35;;14982:2;;-1:-1;;15031:12;1418:678;;;;;1609:2;1597:9;1588:7;1584:23;1580:32;1577:2;;;-1:-1;;1615:12;1577:2;1673:17;1660:31;1711:18;;1703:6;1700:30;1697:2;;;-1:-1;;1733:12;1697:2;1771:80;1843:7;1834:6;1823:9;1819:22;1771:80;;;1761:90;;-1:-1;1761:90;-1:-1;1916:2;1901:18;;1888:32;;-1:-1;1929:30;;;1926:2;;;-1:-1;;1962:12;1926:2;;2000:80;2072:7;2063:6;2052:9;2048:22;2000:80;;;1571:525;;;;-1:-1;1990:90;-1:-1;;;;1571:525;2103:257;;2215:2;2203:9;2194:7;2190:23;2186:32;2183:2;;;-1:-1;;2221:12;2183:2;979:6;973:13;15138:5;14423:13;14416:21;15116:5;15113:32;15103:2;;-1:-1;;15149:12;2367:241;;2471:2;2459:9;2450:7;2446:23;2442:32;2439:2;;;-1:-1;;2477:12;2439:2;-1:-1;1100:20;;2433:175;-1:-1;2433:175;6958:271;;3006:5;13893:12;-1:-1;14729:101;14743:6;14740:1;14737:13;14729:101;;;3150:4;14810:11;;;;;14804:18;14791:11;;;14784:39;14758:10;14729:101;;;14845:6;14842:1;14839:13;14836:2;;;-1:-1;14901:6;14896:3;14892:16;14885:27;14836:2;-1:-1;3181:16;;;;;7092:137;-1:-1;;7092:137;7236:222;-1:-1;;;;;14511:54;;;;2686:37;;7363:2;7348:18;;7334:124;7465:444;-1:-1;;;;;14511:54;;;2686:37;;14511:54;;;;7812:2;7797:18;;2686:37;7895:2;7880:18;;6909:37;;;;7648:2;7633:18;;7619:290;7916:333;-1:-1;;;;;14511:54;;;;2686:37;;8235:2;8220:18;;6909:37;8071:2;8056:18;;8042:207;8256:210;14423:13;;14416:21;2800:34;;8377:2;8362:18;;8348:118;8473:416;8673:2;8687:47;;;3434:2;8658:18;;;14191:19;-1:-1;;;14231:14;;;3450:36;3505:12;;;8644:245;8896:416;9096:2;9110:47;;;3756:2;9081:18;;;14191:19;-1:-1;;;14231:14;;;3772:42;3833:12;;;9067:245;9319:416;9519:2;9533:47;;;9504:18;;;14191:19;4120:34;14231:14;;;4100:55;4174:12;;;9490:245;9742:416;9942:2;9956:47;;;4425:2;9927:18;;;14191:19;-1:-1;;;14231:14;;;4441:37;4497:12;;;9913:245;10165:416;10365:2;10379:47;;;4748:1;10350:18;;;14191:19;-1:-1;;;14231:14;;;4763:32;4814:12;;;10336:245;10588:416;10788:2;10802:47;;;5065:2;10773:18;;;14191:19;-1:-1;;;14231:14;;;5081:36;5136:12;;;10759:245;11011:416;11211:2;11225:47;;;5387:1;11196:18;;;14191:19;-1:-1;;;14231:14;;;5402:32;5453:12;;;11182:245;11434:416;11634:2;11648:47;;;5704:1;11619:18;;;14191:19;-1:-1;;;14231:14;;;5719:32;5770:12;;;11605:245;11857:416;12057:2;12071:47;;;6021:2;12042:18;;;14191:19;6057:34;14231:14;;;6037:55;-1:-1;;;6112:12;;;6105:34;6158:12;;;12028:245;12280:416;12480:2;12494:47;;;6409:1;12465:18;;;14191:19;-1:-1;;;14231:14;;;6424:32;6475:12;;;12451:245;12703:416;12903:2;12917:47;;;6726:2;12888:18;;;14191:19;6762:30;14231:14;;;6742:51;6812:12;;;12874:245;13126:222;6909:37;;;13253:2;13238:18;;13224:124;13355:444;6909:37;;;13702:2;13687:18;;6909:37;;;;13785:2;13770:18;;6909:37;13538:2;13523:18;;13509:290", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {SafeMath} from \"../lib/SafeMath.sol\";\nimport {DecimalMath} from \"../lib/DecimalMath.sol\";\nimport {Ownable} from \"../lib/Ownable.sol\";\nimport {SafeERC20} from \"../lib/SafeERC20.sol\";\nimport {IERC20} from \"../intf/IERC20.sol\";\n\n\n/**\n * @title LockedTokenVault\n * @author DODO Breeder\n *\n * @notice Lock Token and release it linearly\n */\n\ncontract LockedTokenVault is Ownable {\n using SafeMath for uint256;\n using SafeERC20 for IERC20;\n\n address _TOKEN_;\n\n mapping(address => uint256) internal originBalances;\n mapping(address => uint256) internal claimedBalances;\n\n uint256 public _UNDISTRIBUTED_AMOUNT_;\n uint256 public _START_RELEASE_TIME_;\n uint256 public _RELEASE_DURATION_;\n uint256 public _CLIFF_RATE_;\n\n bool public _DISTRIBUTE_FINISHED_;\n\n // ============ Modifiers ============\n\n event Claim(address indexed holder, uint256 origin, uint256 claimed, uint256 amount);\n\n // ============ Modifiers ============\n\n modifier beforeStartRelease() {\n require(block.timestamp < _START_RELEASE_TIME_, \"RELEASE START\");\n _;\n }\n\n modifier afterStartRelease() {\n require(block.timestamp >= _START_RELEASE_TIME_, \"RELEASE NOT START\");\n _;\n }\n\n modifier distributeNotFinished() {\n require(!_DISTRIBUTE_FINISHED_, \"DISTRIBUTE FINISHED\");\n _;\n }\n\n // ============ Init Functions ============\n\n constructor(\n address _token,\n uint256 _startReleaseTime,\n uint256 _releaseDuration,\n uint256 _cliffRate\n ) public {\n _TOKEN_ = _token;\n _START_RELEASE_TIME_ = _startReleaseTime;\n _RELEASE_DURATION_ = _releaseDuration;\n _CLIFF_RATE_ = _cliffRate;\n }\n\n function deposit(uint256 amount) external onlyOwner {\n _tokenTransferIn(_OWNER_, amount);\n _UNDISTRIBUTED_AMOUNT_ = _UNDISTRIBUTED_AMOUNT_.add(amount);\n }\n\n function withdraw(uint256 amount) external onlyOwner {\n _UNDISTRIBUTED_AMOUNT_ = _UNDISTRIBUTED_AMOUNT_.sub(amount);\n _tokenTransferOut(_OWNER_, amount);\n }\n\n function finishDistribute() external onlyOwner {\n _DISTRIBUTE_FINISHED_ = true;\n }\n\n // ============ For Owner ============\n\n function grant(address[] calldata holderList, uint256[] calldata amountList)\n external\n onlyOwner\n {\n require(holderList.length == amountList.length, \"batch grant length not match\");\n uint256 amount = 0;\n for (uint256 i = 0; i < holderList.length; ++i) {\n // for saving gas, no event for grant\n originBalances[holderList[i]] = originBalances[holderList[i]].add(amountList[i]);\n amount = amount.add(amountList[i]);\n }\n _UNDISTRIBUTED_AMOUNT_ = _UNDISTRIBUTED_AMOUNT_.sub(amount);\n }\n\n function recall(address holder) external onlyOwner distributeNotFinished {\n _UNDISTRIBUTED_AMOUNT_ = _UNDISTRIBUTED_AMOUNT_.add(originBalances[holder]).sub(\n claimedBalances[holder]\n );\n originBalances[holder] = 0;\n claimedBalances[holder] = 0;\n }\n\n // ============ For Holder ============\n\n function transferLockedToken(address to) external {\n originBalances[to] = originBalances[to].add(originBalances[msg.sender]);\n claimedBalances[to] = claimedBalances[to].add(claimedBalances[msg.sender]);\n\n originBalances[msg.sender] = 0;\n claimedBalances[msg.sender] = 0;\n }\n\n function claim() external {\n uint256 claimableToken = getClaimableBalance(msg.sender);\n _tokenTransferOut(msg.sender, claimableToken);\n claimedBalances[msg.sender] = claimedBalances[msg.sender].add(claimableToken);\n emit Claim(\n msg.sender,\n originBalances[msg.sender],\n claimedBalances[msg.sender],\n claimableToken\n );\n }\n\n // ============ View ============\n\n function isReleaseStart() external view returns (bool) {\n return block.timestamp >= _START_RELEASE_TIME_;\n }\n\n function getOriginBalance(address holder) external view returns (uint256) {\n return originBalances[holder];\n }\n\n function getClaimedBalance(address holder) external view returns (uint256) {\n return claimedBalances[holder];\n }\n\n function getClaimableBalance(address holder) public view returns (uint256) {\n uint256 remainingToken = getRemainingBalance(holder);\n return originBalances[holder].sub(remainingToken).sub(claimedBalances[holder]);\n }\n\n function getRemainingBalance(address holder) public view returns (uint256) {\n uint256 remainingRatio = getRemainingRatio(block.timestamp);\n return DecimalMath.mul(originBalances[holder], remainingRatio);\n }\n\n function getRemainingRatio(uint256 timestamp) public view returns (uint256) {\n if (timestamp < _START_RELEASE_TIME_) {\n return DecimalMath.ONE;\n }\n uint256 timePast = timestamp.sub(_START_RELEASE_TIME_);\n if (timePast < _RELEASE_DURATION_) {\n uint256 remainingTime = _RELEASE_DURATION_.sub(timePast);\n return DecimalMath.ONE.sub(_CLIFF_RATE_).mul(remainingTime).div(_RELEASE_DURATION_);\n } else {\n return 0;\n }\n }\n\n // ============ Internal Helper ============\n\n function _tokenTransferIn(address from, uint256 amount) internal {\n IERC20(_TOKEN_).safeTransferFrom(from, address(this), amount);\n }\n\n function _tokenTransferOut(address to, uint256 amount) internal {\n IERC20(_TOKEN_).safeTransfer(to, amount);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/LockedTokenVault.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/LockedTokenVault.sol", + "exportedSymbols": { + "LockedTokenVault": [ + 13789 + ] + }, + "id": 13790, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 13257, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:47" + }, + { + "id": 13258, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:47" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 13260, + "nodeType": "ImportDirective", + "scope": 13790, + "sourceUnit": 11624, + "src": "136:45:47", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13259, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:47", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 13262, + "nodeType": "ImportDirective", + "scope": 13790, + "sourceUnit": 11079, + "src": "182:51:47", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13261, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "190:11:47", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 13264, + "nodeType": "ImportDirective", + "scope": 13790, + "sourceUnit": 11272, + "src": "234:43:47", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13263, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "242:7:47", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "../lib/SafeERC20.sol", + "id": 13266, + "nodeType": "ImportDirective", + "scope": 13790, + "sourceUnit": 11441, + "src": "278:47:47", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13265, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "286:9:47", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 13268, + "nodeType": "ImportDirective", + "scope": 13790, + "sourceUnit": 10608, + "src": "326:42:47", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13267, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "334:6:47", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 13270, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "509:7:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 13271, + "nodeType": "InheritanceSpecifier", + "src": "509:7:47" + } + ], + "contractDependencies": [ + 11271 + ], + "contractKind": "contract", + "documentation": { + "id": 13269, + "nodeType": "StructuredDocumentation", + "src": "371:107:47", + "text": " @title LockedTokenVault\n @author DODO Breeder\n @notice Lock Token and release it linearly" + }, + "fullyImplemented": true, + "id": 13789, + "linearizedBaseContracts": [ + 13789, + 11271 + ], + "name": "LockedTokenVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 13274, + "libraryName": { + "contractScope": null, + "id": 13272, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "529:8:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "523:27:47", + "typeName": { + "id": 13273, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "542:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 13277, + "libraryName": { + "contractScope": null, + "id": 13275, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "561:9:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "555:27:47", + "typeName": { + "contractScope": null, + "id": 13276, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "575:6:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "constant": false, + "id": 13279, + "mutability": "mutable", + "name": "_TOKEN_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "588:15:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13278, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "588:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13283, + "mutability": "mutable", + "name": "originBalances", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "610:51:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 13282, + "keyType": { + "id": 13280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "618:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "610:27:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 13281, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "629:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13287, + "mutability": "mutable", + "name": "claimedBalances", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "667:52:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 13286, + "keyType": { + "id": 13284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "675:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "667:27:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 13285, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "686:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "functionSelector": "24b32741", + "id": 13289, + "mutability": "mutable", + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "726:37:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "726:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "2a8b0480", + "id": 13291, + "mutability": "mutable", + "name": "_START_RELEASE_TIME_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "769:35:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "769:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ef903642", + "id": 13293, + "mutability": "mutable", + "name": "_RELEASE_DURATION_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "810:33:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13292, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "810:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "294dafc0", + "id": 13295, + "mutability": "mutable", + "name": "_CLIFF_RATE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "849:27:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13294, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "849:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "710475f6", + "id": 13297, + "mutability": "mutable", + "name": "_DISTRIBUTE_FINISHED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "883:33:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13296, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "883:4:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 13307, + "name": "Claim", + "nodeType": "EventDefinition", + "parameters": { + "id": 13306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13299, + "indexed": true, + "mutability": "mutable", + "name": "holder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13307, + "src": "979:22:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13298, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "979:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13301, + "indexed": false, + "mutability": "mutable", + "name": "origin", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13307, + "src": "1003:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13300, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1003:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13303, + "indexed": false, + "mutability": "mutable", + "name": "claimed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13307, + "src": "1019:15:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13302, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1019:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13305, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13307, + "src": "1036:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13304, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1036:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "978:73:47" + }, + "src": "967:85:47" + }, + { + "body": { + "id": 13318, + "nodeType": "Block", + "src": "1132:92:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13310, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1150:5:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 13311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1150:15:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 13312, + "name": "_START_RELEASE_TIME_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "1168:20:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1150:38:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "52454c45415345205354415254", + "id": 13314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1190:15:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3a9cf605e456558d9595f46a318dee5ca93aa714e1d590d8f58a0f0f80293c70", + "typeString": "literal_string \"RELEASE START\"" + }, + "value": "RELEASE START" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3a9cf605e456558d9595f46a318dee5ca93aa714e1d590d8f58a0f0f80293c70", + "typeString": "literal_string \"RELEASE START\"" + } + ], + "id": 13309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1142:7:47", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1142:64:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13316, + "nodeType": "ExpressionStatement", + "src": "1142:64:47" + }, + { + "id": 13317, + "nodeType": "PlaceholderStatement", + "src": "1216:1:47" + } + ] + }, + "documentation": null, + "id": 13319, + "name": "beforeStartRelease", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 13308, + "nodeType": "ParameterList", + "parameters": [], + "src": "1129:2:47" + }, + "src": "1102:122:47", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13330, + "nodeType": "Block", + "src": "1259:97:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13322, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1277:5:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 13323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1277:15:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 13324, + "name": "_START_RELEASE_TIME_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "1296:20:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1277:39:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "52454c45415345204e4f54205354415254", + "id": 13326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1318:19:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d1c6d0d51cf86e52bbb81749e15149e11905f59c177a806a97066f0f5294a1a7", + "typeString": "literal_string \"RELEASE NOT START\"" + }, + "value": "RELEASE NOT START" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d1c6d0d51cf86e52bbb81749e15149e11905f59c177a806a97066f0f5294a1a7", + "typeString": "literal_string \"RELEASE NOT START\"" + } + ], + "id": 13321, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1269:7:47", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1269:69:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13328, + "nodeType": "ExpressionStatement", + "src": "1269:69:47" + }, + { + "id": 13329, + "nodeType": "PlaceholderStatement", + "src": "1348:1:47" + } + ] + }, + "documentation": null, + "id": 13331, + "name": "afterStartRelease", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 13320, + "nodeType": "ParameterList", + "parameters": [], + "src": "1256:2:47" + }, + "src": "1230:126:47", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13340, + "nodeType": "Block", + "src": "1395:82:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1413:22:47", + "subExpression": { + "argumentTypes": null, + "id": 13334, + "name": "_DISTRIBUTE_FINISHED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13297, + "src": "1414:21:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444953545249425554452046494e4953484544", + "id": 13336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1437:21:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1dff10d5356930ac471064449e1abe9c8226eb37527d5e20e7814e5c73b7417c", + "typeString": "literal_string \"DISTRIBUTE FINISHED\"" + }, + "value": "DISTRIBUTE FINISHED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1dff10d5356930ac471064449e1abe9c8226eb37527d5e20e7814e5c73b7417c", + "typeString": "literal_string \"DISTRIBUTE FINISHED\"" + } + ], + "id": 13333, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1405:7:47", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1405:54:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13338, + "nodeType": "ExpressionStatement", + "src": "1405:54:47" + }, + { + "id": 13339, + "nodeType": "PlaceholderStatement", + "src": "1469:1:47" + } + ] + }, + "documentation": null, + "id": 13341, + "name": "distributeNotFinished", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 13332, + "nodeType": "ParameterList", + "parameters": [], + "src": "1392:2:47" + }, + "src": "1362:115:47", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13368, + "nodeType": "Block", + "src": "1678:165:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13352, + "name": "_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13279, + "src": "1688:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13353, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13343, + "src": "1698:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1688:16:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 13355, + "nodeType": "ExpressionStatement", + "src": "1688:16:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13356, + "name": "_START_RELEASE_TIME_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "1714:20:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13357, + "name": "_startReleaseTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13345, + "src": "1737:17:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1714:40:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13359, + "nodeType": "ExpressionStatement", + "src": "1714:40:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13360, + "name": "_RELEASE_DURATION_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13293, + "src": "1764:18:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13361, + "name": "_releaseDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13347, + "src": "1785:16:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1764:37:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13363, + "nodeType": "ExpressionStatement", + "src": "1764:37:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13364, + "name": "_CLIFF_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13295, + "src": "1811:12:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13365, + "name": "_cliffRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13349, + "src": "1826:10:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1811:25:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13367, + "nodeType": "ExpressionStatement", + "src": "1811:25:47" + } + ] + }, + "documentation": null, + "id": 13369, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13343, + "mutability": "mutable", + "name": "_token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13369, + "src": "1553:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1553:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13345, + "mutability": "mutable", + "name": "_startReleaseTime", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13369, + "src": "1577:25:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1577:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13347, + "mutability": "mutable", + "name": "_releaseDuration", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13369, + "src": "1612:24:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1612:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13349, + "mutability": "mutable", + "name": "_cliffRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13369, + "src": "1646:18:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1646:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1543:127:47" + }, + "returnParameters": { + "id": 13351, + "nodeType": "ParameterList", + "parameters": [], + "src": "1678:0:47" + }, + "scope": 13789, + "src": "1532:311:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13388, + "nodeType": "Block", + "src": "1901:119:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13377, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "1928:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13378, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13371, + "src": "1937:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13376, + "name": "_tokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13772, + "src": "1911:16:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 13379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:33:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13380, + "nodeType": "ExpressionStatement", + "src": "1911:33:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13381, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "1954:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13384, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13371, + "src": "2006:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13382, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "1979:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1979:26:47", + "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": 13385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1979:34:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1954:59:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13387, + "nodeType": "ExpressionStatement", + "src": "1954:59:47" + } + ] + }, + "documentation": null, + "functionSelector": "b6b55f25", + "id": 13389, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 13374, + "modifierName": { + "argumentTypes": null, + "id": 13373, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "1891:9:47", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1891:9:47" + } + ], + "name": "deposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13371, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13389, + "src": "1866:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1866:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1865:16:47" + }, + "returnParameters": { + "id": 13375, + "nodeType": "ParameterList", + "parameters": [], + "src": "1901:0:47" + }, + "scope": 13789, + "src": "1849:171:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13408, + "nodeType": "Block", + "src": "2079:120:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13396, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "2089:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13399, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13391, + "src": "2141:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13397, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "2114:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2114:26:47", + "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": 13400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2114:34:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2089:59:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13402, + "nodeType": "ExpressionStatement", + "src": "2089:59:47" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13404, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "2176:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13405, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13391, + "src": "2185:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13403, + "name": "_tokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13788, + "src": "2158:17:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 13406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2158:34:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13407, + "nodeType": "ExpressionStatement", + "src": "2158:34:47" + } + ] + }, + "documentation": null, + "functionSelector": "2e1a7d4d", + "id": 13409, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 13394, + "modifierName": { + "argumentTypes": null, + "id": 13393, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "2069:9:47", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2069:9:47" + } + ], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13392, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13391, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13409, + "src": "2044:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13390, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2044:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2043:16:47" + }, + "returnParameters": { + "id": 13395, + "nodeType": "ParameterList", + "parameters": [], + "src": "2079:0:47" + }, + "scope": 13789, + "src": "2026:173:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13418, + "nodeType": "Block", + "src": "2252:45:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13414, + "name": "_DISTRIBUTE_FINISHED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13297, + "src": "2262:21:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 13415, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2286:4:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2262:28:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13417, + "nodeType": "ExpressionStatement", + "src": "2262:28:47" + } + ] + }, + "documentation": null, + "functionSelector": "e5612b3b", + "id": 13419, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 13412, + "modifierName": { + "argumentTypes": null, + "id": 13411, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "2242:9:47", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2242:9:47" + } + ], + "name": "finishDistribute", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13410, + "nodeType": "ParameterList", + "parameters": [], + "src": "2230:2:47" + }, + "returnParameters": { + "id": 13413, + "nodeType": "ParameterList", + "parameters": [], + "src": "2252:0:47" + }, + "scope": 13789, + "src": "2205:92:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13489, + "nodeType": "Block", + "src": "2463:453:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13431, + "name": "holderList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13422, + "src": "2481:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 13432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2481:17:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13433, + "name": "amountList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13425, + "src": "2502:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 13434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2502:17:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2481:38:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6261746368206772616e74206c656e677468206e6f74206d61746368", + "id": 13436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2521:30:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f97cdefb3af96b4ac4dd2d950eccc5c5e9183dc3cb145adbdd9254602e054240", + "typeString": "literal_string \"batch grant length not match\"" + }, + "value": "batch grant length not match" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f97cdefb3af96b4ac4dd2d950eccc5c5e9183dc3cb145adbdd9254602e054240", + "typeString": "literal_string \"batch grant length not match\"" + } + ], + "id": 13430, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2473:7:47", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2473:79:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13438, + "nodeType": "ExpressionStatement", + "src": "2473:79:47" + }, + { + "assignments": [ + 13440 + ], + "declarations": [ + { + "constant": false, + "id": 13440, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13489, + "src": "2562:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13439, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2562:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13442, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 13441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2579:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2562:18:47" + }, + { + "body": { + "id": 13480, + "nodeType": "Block", + "src": "2638:203:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13454, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "2702:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13458, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13455, + "name": "holderList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13422, + "src": "2717:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 13457, + "indexExpression": { + "argumentTypes": null, + "id": 13456, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13444, + "src": "2728:1:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2717:13:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2702:29:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13465, + "name": "amountList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13425, + "src": "2768:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 13467, + "indexExpression": { + "argumentTypes": null, + "id": 13466, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13444, + "src": "2779:1:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2768:13:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13459, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "2734:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13463, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13460, + "name": "holderList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13422, + "src": "2749:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 13462, + "indexExpression": { + "argumentTypes": null, + "id": 13461, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13444, + "src": "2760:1:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2749:13:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2734:29:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2734:33:47", + "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": 13468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2734:48:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2702:80:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13470, + "nodeType": "ExpressionStatement", + "src": "2702:80:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13471, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13440, + "src": "2796:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13474, + "name": "amountList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13425, + "src": "2816:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 13476, + "indexExpression": { + "argumentTypes": null, + "id": 13475, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13444, + "src": "2827:1:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2816:13:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13472, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13440, + "src": "2805:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2805:10:47", + "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": 13477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2805:25:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2796:34:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13479, + "nodeType": "ExpressionStatement", + "src": "2796:34:47" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13447, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13444, + "src": "2610:1:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13448, + "name": "holderList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13422, + "src": "2614:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 13449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2614:17:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2610:21:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13481, + "initializationExpression": { + "assignments": [ + 13444 + ], + "declarations": [ + { + "constant": false, + "id": 13444, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13481, + "src": "2595:9:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13443, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2595:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13446, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 13445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2607:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2595:13:47" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 13452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "2633:3:47", + "subExpression": { + "argumentTypes": null, + "id": 13451, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13444, + "src": "2635:1:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13453, + "nodeType": "ExpressionStatement", + "src": "2633:3:47" + }, + "nodeType": "ForStatement", + "src": "2590:251:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13482, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "2850:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13485, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13440, + "src": "2902:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13483, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "2875:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2875:26:47", + "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": 13486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2875:34:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2850:59:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13488, + "nodeType": "ExpressionStatement", + "src": "2850:59:47" + } + ] + }, + "documentation": null, + "functionSelector": "c2ae1680", + "id": 13490, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 13428, + "modifierName": { + "argumentTypes": null, + "id": 13427, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "2449:9:47", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2449:9:47" + } + ], + "name": "grant", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13422, + "mutability": "mutable", + "name": "holderList", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13490, + "src": "2362:29:47", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 13420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2362:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 13421, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2362:9:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13425, + "mutability": "mutable", + "name": "amountList", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13490, + "src": "2393:29:47", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 13423, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2393:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13424, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2393:9:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2361:62:47" + }, + "returnParameters": { + "id": 13429, + "nodeType": "ParameterList", + "parameters": [], + "src": "2463:0:47" + }, + "scope": 13789, + "src": "2347:569:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13525, + "nodeType": "Block", + "src": "2995:216:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13499, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "3005:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13507, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3098:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13509, + "indexExpression": { + "argumentTypes": null, + "id": 13508, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13492, + "src": "3114:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3098:23:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13502, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3057:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13504, + "indexExpression": { + "argumentTypes": null, + "id": 13503, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13492, + "src": "3072:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3057:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13500, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "3030:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3030:26:47", + "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": 13505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3030:50:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3030:54:47", + "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": 13510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3030:101:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3005:126:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13512, + "nodeType": "ExpressionStatement", + "src": "3005:126:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13513, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3141:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13515, + "indexExpression": { + "argumentTypes": null, + "id": 13514, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13492, + "src": "3156:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3141:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 13516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3166:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3141:26:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13518, + "nodeType": "ExpressionStatement", + "src": "3141:26:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13519, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3177:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13521, + "indexExpression": { + "argumentTypes": null, + "id": 13520, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13492, + "src": "3193:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3177:23:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 13522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3203:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3177:27:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13524, + "nodeType": "ExpressionStatement", + "src": "3177:27:47" + } + ] + }, + "documentation": null, + "functionSelector": "ca430519", + "id": 13526, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 13495, + "modifierName": { + "argumentTypes": null, + "id": 13494, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "2963:9:47", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2963:9:47" + }, + { + "arguments": null, + "id": 13497, + "modifierName": { + "argumentTypes": null, + "id": 13496, + "name": "distributeNotFinished", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13341, + "src": "2973:21:47", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2973:21:47" + } + ], + "name": "recall", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13492, + "mutability": "mutable", + "name": "holder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13526, + "src": "2938:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13491, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2938:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2937:16:47" + }, + "returnParameters": { + "id": 13498, + "nodeType": "ParameterList", + "parameters": [], + "src": "2995:0:47" + }, + "scope": 13789, + "src": "2922:289:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13573, + "nodeType": "Block", + "src": "3312:254:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13531, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3322:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13533, + "indexExpression": { + "argumentTypes": null, + "id": 13532, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "3337:2:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3322:18:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13538, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3366:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13541, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13539, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3381:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3381:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3366:26:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13534, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3343:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13536, + "indexExpression": { + "argumentTypes": null, + "id": 13535, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "3358:2:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3343:18:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3343:22:47", + "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": 13542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3343:50:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3322:71:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13544, + "nodeType": "ExpressionStatement", + "src": "3322:71:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13545, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3403:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13547, + "indexExpression": { + "argumentTypes": null, + "id": 13546, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "3419:2:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3403:19:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13552, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3449:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13555, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13553, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3465:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3465:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3449:27:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13548, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3425:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13550, + "indexExpression": { + "argumentTypes": null, + "id": 13549, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "3441:2:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3425:19:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3425:23:47", + "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": 13556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3425:52:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3403:74:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13558, + "nodeType": "ExpressionStatement", + "src": "3403:74:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13559, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3488:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13562, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13560, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3503:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3503:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3488:26:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 13563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3517:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3488:30:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13565, + "nodeType": "ExpressionStatement", + "src": "3488:30:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13566, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3528:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13569, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13567, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3544:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3544:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3528:27:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 13570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3558:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3528:31:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13572, + "nodeType": "ExpressionStatement", + "src": "3528:31:47" + } + ] + }, + "documentation": null, + "functionSelector": "7db41eae", + "id": 13574, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferLockedToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13528, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13574, + "src": "3291:10:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3291:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3290:12:47" + }, + "returnParameters": { + "id": 13530, + "nodeType": "ParameterList", + "parameters": [], + "src": "3312:0:47" + }, + "scope": 13789, + "src": "3262:304:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13617, + "nodeType": "Block", + "src": "3598:378:47", + "statements": [ + { + "assignments": [ + 13578 + ], + "declarations": [ + { + "constant": false, + "id": 13578, + "mutability": "mutable", + "name": "claimableToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13617, + "src": "3608:22:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3608:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13583, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13580, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3653:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3653:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 13579, + "name": "getClaimableBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13679, + "src": "3633:19:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 13582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3633:31:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3608:56:47" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13585, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3692:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3692:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 13587, + "name": "claimableToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13578, + "src": "3704:14:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13584, + "name": "_tokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13788, + "src": "3674:17:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 13588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3674:45:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13589, + "nodeType": "ExpressionStatement", + "src": "3674:45:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13590, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3729:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13593, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13591, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3745:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3745:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3729:27:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13599, + "name": "claimableToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13578, + "src": "3791:14:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13594, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3759:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13597, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13595, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3775:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3775:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3759:27:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3759:31:47", + "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": 13600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3759:47:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3729:77:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13602, + "nodeType": "ExpressionStatement", + "src": "3729:77:47" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13604, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3840:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3840:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13606, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3864:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13609, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13607, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3879:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3879:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3864:26:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13610, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3904:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13613, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13611, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3920:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3920:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3904:27:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13614, + "name": "claimableToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13578, + "src": "3945:14:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13603, + "name": "Claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13307, + "src": "3821:5:47", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256)" + } + }, + "id": 13615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3821:148:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13616, + "nodeType": "EmitStatement", + "src": "3816:153:47" + } + ] + }, + "documentation": null, + "functionSelector": "4e71d92d", + "id": 13618, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13575, + "nodeType": "ParameterList", + "parameters": [], + "src": "3586:2:47" + }, + "returnParameters": { + "id": 13576, + "nodeType": "ParameterList", + "parameters": [], + "src": "3598:0:47" + }, + "scope": 13789, + "src": "3572:404:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13628, + "nodeType": "Block", + "src": "4076:63:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13623, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "4093:5:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 13624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4093:15:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 13625, + "name": "_START_RELEASE_TIME_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "4112:20:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4093:39:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 13622, + "id": 13627, + "nodeType": "Return", + "src": "4086:46:47" + } + ] + }, + "documentation": null, + "functionSelector": "cd32f086", + "id": 13629, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isReleaseStart", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13619, + "nodeType": "ParameterList", + "parameters": [], + "src": "4044:2:47" + }, + "returnParameters": { + "id": 13622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13621, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13629, + "src": "4070:4:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13620, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4070:4:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4069:6:47" + }, + "scope": 13789, + "src": "4021:118:47", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13640, + "nodeType": "Block", + "src": "4219:46:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13636, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "4236:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13638, + "indexExpression": { + "argumentTypes": null, + "id": 13637, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13631, + "src": "4251:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4236:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13635, + "id": 13639, + "nodeType": "Return", + "src": "4229:29:47" + } + ] + }, + "documentation": null, + "functionSelector": "d1828496", + "id": 13641, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getOriginBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13631, + "mutability": "mutable", + "name": "holder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13641, + "src": "4171:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4171:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4170:16:47" + }, + "returnParameters": { + "id": 13635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13634, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13641, + "src": "4210:7:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13633, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4210:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4209:9:47" + }, + "scope": 13789, + "src": "4145:120:47", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13652, + "nodeType": "Block", + "src": "4346:47:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13648, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "4363:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13650, + "indexExpression": { + "argumentTypes": null, + "id": 13649, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13643, + "src": "4379:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4363:23:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13647, + "id": 13651, + "nodeType": "Return", + "src": "4356:30:47" + } + ] + }, + "documentation": null, + "functionSelector": "cf0e80fe", + "id": 13653, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getClaimedBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13644, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13643, + "mutability": "mutable", + "name": "holder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13653, + "src": "4298:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4298:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4297:16:47" + }, + "returnParameters": { + "id": 13647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13646, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13653, + "src": "4337:7:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4337:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4336:9:47" + }, + "scope": 13789, + "src": "4271:122:47", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13678, + "nodeType": "Block", + "src": "4474:157:47", + "statements": [ + { + "assignments": [ + 13661 + ], + "declarations": [ + { + "constant": false, + "id": 13661, + "mutability": "mutable", + "name": "remainingToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13678, + "src": "4484:22:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4484:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13665, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13663, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13655, + "src": "4529:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13662, + "name": "getRemainingBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13702, + "src": "4509:19:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 13664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4509:27:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4484:52:47" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13673, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "4600:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13675, + "indexExpression": { + "argumentTypes": null, + "id": 13674, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13655, + "src": "4616:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4600:23:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13670, + "name": "remainingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13661, + "src": "4580:14:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13666, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "4553:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13668, + "indexExpression": { + "argumentTypes": null, + "id": 13667, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13655, + "src": "4568:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4553:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4553:26:47", + "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": 13671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4553:42:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4553:46:47", + "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": 13676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4553:71:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13659, + "id": 13677, + "nodeType": "Return", + "src": "4546:78:47" + } + ] + }, + "documentation": null, + "functionSelector": "06def802", + "id": 13679, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getClaimableBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13656, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13655, + "mutability": "mutable", + "name": "holder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13679, + "src": "4428:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4428:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4427:16:47" + }, + "returnParameters": { + "id": 13659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13658, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13679, + "src": "4465:7:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13657, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4465:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4464:9:47" + }, + "scope": 13789, + "src": "4399:232:47", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13701, + "nodeType": "Block", + "src": "4712:148:47", + "statements": [ + { + "assignments": [ + 13687 + ], + "declarations": [ + { + "constant": false, + "id": 13687, + "mutability": "mutable", + "name": "remainingRatio", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13701, + "src": "4722:22:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4722:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13692, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13689, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "4765:5:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 13690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4765:15:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13688, + "name": "getRemainingRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13752, + "src": "4747:17:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 13691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4747:34:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4722:59:47" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13695, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "4814:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13697, + "indexExpression": { + "argumentTypes": null, + "id": 13696, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13681, + "src": "4829:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4814:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13698, + "name": "remainingRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13687, + "src": "4838:14:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13693, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "4798:11:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 13694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "4798:15:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4798:55:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13685, + "id": 13700, + "nodeType": "Return", + "src": "4791:62:47" + } + ] + }, + "documentation": null, + "functionSelector": "001bf8f6", + "id": 13702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRemainingBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13681, + "mutability": "mutable", + "name": "holder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13702, + "src": "4666:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4666:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4665:16:47" + }, + "returnParameters": { + "id": 13685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13684, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13702, + "src": "4703:7:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4703:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4702:9:47" + }, + "scope": 13789, + "src": "4637:223:47", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13751, + "nodeType": "Block", + "src": "4942:426:47", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13709, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13704, + "src": "4956:9:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 13710, + "name": "_START_RELEASE_TIME_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "4968:20:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4956:32:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 13716, + "nodeType": "IfStatement", + "src": "4952:85:47", + "trueBody": { + "id": 13715, + "nodeType": "Block", + "src": "4990:47:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13712, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5011:11:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 13713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "5011:15:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13708, + "id": 13714, + "nodeType": "Return", + "src": "5004:22:47" + } + ] + } + }, + { + "assignments": [ + 13718 + ], + "declarations": [ + { + "constant": false, + "id": 13718, + "mutability": "mutable", + "name": "timePast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13751, + "src": "5046:16:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5046:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13723, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13721, + "name": "_START_RELEASE_TIME_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "5079:20:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13719, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13704, + "src": "5065:9:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5065:13:47", + "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": 13722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5065:35:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5046:54:47" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13724, + "name": "timePast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13718, + "src": "5114:8:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 13725, + "name": "_RELEASE_DURATION_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13293, + "src": "5125:18:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5114:29:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 13749, + "nodeType": "Block", + "src": "5329:33:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5350:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 13708, + "id": 13748, + "nodeType": "Return", + "src": "5343:8:47" + } + ] + }, + "id": 13750, + "nodeType": "IfStatement", + "src": "5110:252:47", + "trueBody": { + "id": 13746, + "nodeType": "Block", + "src": "5145:178:47", + "statements": [ + { + "assignments": [ + 13728 + ], + "declarations": [ + { + "constant": false, + "id": 13728, + "mutability": "mutable", + "name": "remainingTime", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13746, + "src": "5159:21:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5159:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13733, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13731, + "name": "timePast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13718, + "src": "5206:8:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13729, + "name": "_RELEASE_DURATION_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13293, + "src": "5183:18:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5183:22:47", + "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": 13732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5183:32:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5159:56:47" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13743, + "name": "_RELEASE_DURATION_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13293, + "src": "5293:18:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13740, + "name": "remainingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "5274:13:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13737, + "name": "_CLIFF_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13295, + "src": "5256:12:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13734, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5236:11:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 13735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "5236:15:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5236:19:47", + "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": 13738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5236:33:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5236:37:47", + "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": 13741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5236:52:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "5236:56:47", + "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": 13744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5236:76:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13708, + "id": 13745, + "nodeType": "Return", + "src": "5229:83:47" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "6a4de5d1", + "id": 13752, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRemainingRatio", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13704, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13752, + "src": "4893:17:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4893:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4892:19:47" + }, + "returnParameters": { + "id": 13708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13752, + "src": "4933:7:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4933:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4932:9:47" + }, + "scope": 13789, + "src": "4866:502:47", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13771, + "nodeType": "Block", + "src": "5489:78:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13763, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13754, + "src": "5532:4:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13766, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5546:4:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LockedTokenVault_$13789", + "typeString": "contract LockedTokenVault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LockedTokenVault_$13789", + "typeString": "contract LockedTokenVault" + } + ], + "id": 13765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5538:7:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13764, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5538:7:47", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 13767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5538:13:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13768, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13756, + "src": "5553:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13760, + "name": "_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13279, + "src": "5506:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13759, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5499:6:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 13761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5499:15:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 13762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11354, + "src": "5499:32:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 13769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5499:61:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13770, + "nodeType": "ExpressionStatement", + "src": "5499:61:47" + } + ] + }, + "documentation": null, + "id": 13772, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tokenTransferIn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13754, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13772, + "src": "5450:12:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13753, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5450:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13756, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13772, + "src": "5464:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13755, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5464:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5449:30:47" + }, + "returnParameters": { + "id": 13758, + "nodeType": "ParameterList", + "parameters": [], + "src": "5489:0:47" + }, + "scope": 13789, + "src": "5424:143:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13787, + "nodeType": "Block", + "src": "5637:57:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13783, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13774, + "src": "5676:2:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13784, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13776, + "src": "5680:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13780, + "name": "_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13279, + "src": "5654:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13779, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5647:6:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 13781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5647:15:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 13782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "5647:28:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 13785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5647:40:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13786, + "nodeType": "ExpressionStatement", + "src": "5647:40:47" + } + ] + }, + "documentation": null, + "id": 13788, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tokenTransferOut", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13774, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13788, + "src": "5600:10:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13773, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5600:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13776, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13788, + "src": "5612:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5612:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5599:28:47" + }, + "returnParameters": { + "id": 13778, + "nodeType": "ParameterList", + "parameters": [], + "src": "5637:0:47" + }, + "scope": 13789, + "src": "5573:121:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 13790, + "src": "480:5216:47" + } + ], + "src": "78:5619:47" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/token/LockedTokenVault.sol", + "exportedSymbols": { + "LockedTokenVault": [ + 13789 + ] + }, + "id": 13790, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 13257, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:47" + }, + { + "id": 13258, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:47" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 13260, + "nodeType": "ImportDirective", + "scope": 13790, + "sourceUnit": 11624, + "src": "136:45:47", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13259, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:47", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 13262, + "nodeType": "ImportDirective", + "scope": 13790, + "sourceUnit": 11079, + "src": "182:51:47", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13261, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "190:11:47", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 13264, + "nodeType": "ImportDirective", + "scope": 13790, + "sourceUnit": 11272, + "src": "234:43:47", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13263, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "242:7:47", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "../lib/SafeERC20.sol", + "id": 13266, + "nodeType": "ImportDirective", + "scope": 13790, + "sourceUnit": 11441, + "src": "278:47:47", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13265, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "286:9:47", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 13268, + "nodeType": "ImportDirective", + "scope": 13790, + "sourceUnit": 10608, + "src": "326:42:47", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 13267, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "334:6:47", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 13270, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "509:7:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 13271, + "nodeType": "InheritanceSpecifier", + "src": "509:7:47" + } + ], + "contractDependencies": [ + 11271 + ], + "contractKind": "contract", + "documentation": { + "id": 13269, + "nodeType": "StructuredDocumentation", + "src": "371:107:47", + "text": " @title LockedTokenVault\n @author DODO Breeder\n @notice Lock Token and release it linearly" + }, + "fullyImplemented": true, + "id": 13789, + "linearizedBaseContracts": [ + 13789, + 11271 + ], + "name": "LockedTokenVault", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 13274, + "libraryName": { + "contractScope": null, + "id": 13272, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "529:8:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "523:27:47", + "typeName": { + "id": 13273, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "542:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 13277, + "libraryName": { + "contractScope": null, + "id": 13275, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "561:9:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "555:27:47", + "typeName": { + "contractScope": null, + "id": 13276, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "575:6:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "constant": false, + "id": 13279, + "mutability": "mutable", + "name": "_TOKEN_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "588:15:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13278, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "588:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13283, + "mutability": "mutable", + "name": "originBalances", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "610:51:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 13282, + "keyType": { + "id": 13280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "618:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "610:27:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 13281, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "629:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13287, + "mutability": "mutable", + "name": "claimedBalances", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "667:52:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 13286, + "keyType": { + "id": 13284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "675:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "667:27:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 13285, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "686:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "functionSelector": "24b32741", + "id": 13289, + "mutability": "mutable", + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "726:37:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "726:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "2a8b0480", + "id": 13291, + "mutability": "mutable", + "name": "_START_RELEASE_TIME_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "769:35:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "769:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ef903642", + "id": 13293, + "mutability": "mutable", + "name": "_RELEASE_DURATION_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "810:33:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13292, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "810:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "294dafc0", + "id": 13295, + "mutability": "mutable", + "name": "_CLIFF_RATE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "849:27:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13294, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "849:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "710475f6", + "id": 13297, + "mutability": "mutable", + "name": "_DISTRIBUTE_FINISHED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13789, + "src": "883:33:47", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13296, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "883:4:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 13307, + "name": "Claim", + "nodeType": "EventDefinition", + "parameters": { + "id": 13306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13299, + "indexed": true, + "mutability": "mutable", + "name": "holder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13307, + "src": "979:22:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13298, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "979:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13301, + "indexed": false, + "mutability": "mutable", + "name": "origin", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13307, + "src": "1003:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13300, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1003:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13303, + "indexed": false, + "mutability": "mutable", + "name": "claimed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13307, + "src": "1019:15:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13302, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1019:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13305, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13307, + "src": "1036:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13304, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1036:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "978:73:47" + }, + "src": "967:85:47" + }, + { + "body": { + "id": 13318, + "nodeType": "Block", + "src": "1132:92:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13310, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1150:5:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 13311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1150:15:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 13312, + "name": "_START_RELEASE_TIME_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "1168:20:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1150:38:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "52454c45415345205354415254", + "id": 13314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1190:15:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3a9cf605e456558d9595f46a318dee5ca93aa714e1d590d8f58a0f0f80293c70", + "typeString": "literal_string \"RELEASE START\"" + }, + "value": "RELEASE START" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3a9cf605e456558d9595f46a318dee5ca93aa714e1d590d8f58a0f0f80293c70", + "typeString": "literal_string \"RELEASE START\"" + } + ], + "id": 13309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1142:7:47", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1142:64:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13316, + "nodeType": "ExpressionStatement", + "src": "1142:64:47" + }, + { + "id": 13317, + "nodeType": "PlaceholderStatement", + "src": "1216:1:47" + } + ] + }, + "documentation": null, + "id": 13319, + "name": "beforeStartRelease", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 13308, + "nodeType": "ParameterList", + "parameters": [], + "src": "1129:2:47" + }, + "src": "1102:122:47", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13330, + "nodeType": "Block", + "src": "1259:97:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13322, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "1277:5:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 13323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1277:15:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 13324, + "name": "_START_RELEASE_TIME_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "1296:20:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1277:39:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "52454c45415345204e4f54205354415254", + "id": 13326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1318:19:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d1c6d0d51cf86e52bbb81749e15149e11905f59c177a806a97066f0f5294a1a7", + "typeString": "literal_string \"RELEASE NOT START\"" + }, + "value": "RELEASE NOT START" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d1c6d0d51cf86e52bbb81749e15149e11905f59c177a806a97066f0f5294a1a7", + "typeString": "literal_string \"RELEASE NOT START\"" + } + ], + "id": 13321, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1269:7:47", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1269:69:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13328, + "nodeType": "ExpressionStatement", + "src": "1269:69:47" + }, + { + "id": 13329, + "nodeType": "PlaceholderStatement", + "src": "1348:1:47" + } + ] + }, + "documentation": null, + "id": 13331, + "name": "afterStartRelease", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 13320, + "nodeType": "ParameterList", + "parameters": [], + "src": "1256:2:47" + }, + "src": "1230:126:47", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13340, + "nodeType": "Block", + "src": "1395:82:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1413:22:47", + "subExpression": { + "argumentTypes": null, + "id": 13334, + "name": "_DISTRIBUTE_FINISHED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13297, + "src": "1414:21:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444953545249425554452046494e4953484544", + "id": 13336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1437:21:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1dff10d5356930ac471064449e1abe9c8226eb37527d5e20e7814e5c73b7417c", + "typeString": "literal_string \"DISTRIBUTE FINISHED\"" + }, + "value": "DISTRIBUTE FINISHED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1dff10d5356930ac471064449e1abe9c8226eb37527d5e20e7814e5c73b7417c", + "typeString": "literal_string \"DISTRIBUTE FINISHED\"" + } + ], + "id": 13333, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1405:7:47", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1405:54:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13338, + "nodeType": "ExpressionStatement", + "src": "1405:54:47" + }, + { + "id": 13339, + "nodeType": "PlaceholderStatement", + "src": "1469:1:47" + } + ] + }, + "documentation": null, + "id": 13341, + "name": "distributeNotFinished", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 13332, + "nodeType": "ParameterList", + "parameters": [], + "src": "1392:2:47" + }, + "src": "1362:115:47", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13368, + "nodeType": "Block", + "src": "1678:165:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13352, + "name": "_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13279, + "src": "1688:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13353, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13343, + "src": "1698:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1688:16:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 13355, + "nodeType": "ExpressionStatement", + "src": "1688:16:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13356, + "name": "_START_RELEASE_TIME_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "1714:20:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13357, + "name": "_startReleaseTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13345, + "src": "1737:17:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1714:40:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13359, + "nodeType": "ExpressionStatement", + "src": "1714:40:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13360, + "name": "_RELEASE_DURATION_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13293, + "src": "1764:18:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13361, + "name": "_releaseDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13347, + "src": "1785:16:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1764:37:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13363, + "nodeType": "ExpressionStatement", + "src": "1764:37:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13364, + "name": "_CLIFF_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13295, + "src": "1811:12:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 13365, + "name": "_cliffRate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13349, + "src": "1826:10:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1811:25:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13367, + "nodeType": "ExpressionStatement", + "src": "1811:25:47" + } + ] + }, + "documentation": null, + "id": 13369, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13343, + "mutability": "mutable", + "name": "_token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13369, + "src": "1553:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1553:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13345, + "mutability": "mutable", + "name": "_startReleaseTime", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13369, + "src": "1577:25:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1577:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13347, + "mutability": "mutable", + "name": "_releaseDuration", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13369, + "src": "1612:24:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1612:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13349, + "mutability": "mutable", + "name": "_cliffRate", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13369, + "src": "1646:18:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1646:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1543:127:47" + }, + "returnParameters": { + "id": 13351, + "nodeType": "ParameterList", + "parameters": [], + "src": "1678:0:47" + }, + "scope": 13789, + "src": "1532:311:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13388, + "nodeType": "Block", + "src": "1901:119:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13377, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "1928:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13378, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13371, + "src": "1937:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13376, + "name": "_tokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13772, + "src": "1911:16:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 13379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1911:33:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13380, + "nodeType": "ExpressionStatement", + "src": "1911:33:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13381, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "1954:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13384, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13371, + "src": "2006:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13382, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "1979:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1979:26:47", + "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": 13385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1979:34:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1954:59:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13387, + "nodeType": "ExpressionStatement", + "src": "1954:59:47" + } + ] + }, + "documentation": null, + "functionSelector": "b6b55f25", + "id": 13389, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 13374, + "modifierName": { + "argumentTypes": null, + "id": 13373, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "1891:9:47", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1891:9:47" + } + ], + "name": "deposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13371, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13389, + "src": "1866:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1866:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1865:16:47" + }, + "returnParameters": { + "id": 13375, + "nodeType": "ParameterList", + "parameters": [], + "src": "1901:0:47" + }, + "scope": 13789, + "src": "1849:171:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13408, + "nodeType": "Block", + "src": "2079:120:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13396, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "2089:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13399, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13391, + "src": "2141:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13397, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "2114:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2114:26:47", + "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": 13400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2114:34:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2089:59:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13402, + "nodeType": "ExpressionStatement", + "src": "2089:59:47" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13404, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "2176:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13405, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13391, + "src": "2185:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13403, + "name": "_tokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13788, + "src": "2158:17:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 13406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2158:34:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13407, + "nodeType": "ExpressionStatement", + "src": "2158:34:47" + } + ] + }, + "documentation": null, + "functionSelector": "2e1a7d4d", + "id": 13409, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 13394, + "modifierName": { + "argumentTypes": null, + "id": 13393, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "2069:9:47", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2069:9:47" + } + ], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13392, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13391, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13409, + "src": "2044:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13390, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2044:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2043:16:47" + }, + "returnParameters": { + "id": 13395, + "nodeType": "ParameterList", + "parameters": [], + "src": "2079:0:47" + }, + "scope": 13789, + "src": "2026:173:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13418, + "nodeType": "Block", + "src": "2252:45:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13414, + "name": "_DISTRIBUTE_FINISHED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13297, + "src": "2262:21:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 13415, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2286:4:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2262:28:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13417, + "nodeType": "ExpressionStatement", + "src": "2262:28:47" + } + ] + }, + "documentation": null, + "functionSelector": "e5612b3b", + "id": 13419, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 13412, + "modifierName": { + "argumentTypes": null, + "id": 13411, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "2242:9:47", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2242:9:47" + } + ], + "name": "finishDistribute", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13410, + "nodeType": "ParameterList", + "parameters": [], + "src": "2230:2:47" + }, + "returnParameters": { + "id": 13413, + "nodeType": "ParameterList", + "parameters": [], + "src": "2252:0:47" + }, + "scope": 13789, + "src": "2205:92:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13489, + "nodeType": "Block", + "src": "2463:453:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13431, + "name": "holderList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13422, + "src": "2481:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 13432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2481:17:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13433, + "name": "amountList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13425, + "src": "2502:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 13434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2502:17:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2481:38:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6261746368206772616e74206c656e677468206e6f74206d61746368", + "id": 13436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2521:30:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f97cdefb3af96b4ac4dd2d950eccc5c5e9183dc3cb145adbdd9254602e054240", + "typeString": "literal_string \"batch grant length not match\"" + }, + "value": "batch grant length not match" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f97cdefb3af96b4ac4dd2d950eccc5c5e9183dc3cb145adbdd9254602e054240", + "typeString": "literal_string \"batch grant length not match\"" + } + ], + "id": 13430, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2473:7:47", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 13437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2473:79:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13438, + "nodeType": "ExpressionStatement", + "src": "2473:79:47" + }, + { + "assignments": [ + 13440 + ], + "declarations": [ + { + "constant": false, + "id": 13440, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13489, + "src": "2562:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13439, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2562:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13442, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 13441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2579:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2562:18:47" + }, + { + "body": { + "id": 13480, + "nodeType": "Block", + "src": "2638:203:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13454, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "2702:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13458, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13455, + "name": "holderList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13422, + "src": "2717:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 13457, + "indexExpression": { + "argumentTypes": null, + "id": 13456, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13444, + "src": "2728:1:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2717:13:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2702:29:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13465, + "name": "amountList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13425, + "src": "2768:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 13467, + "indexExpression": { + "argumentTypes": null, + "id": 13466, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13444, + "src": "2779:1:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2768:13:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13459, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "2734:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13463, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13460, + "name": "holderList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13422, + "src": "2749:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 13462, + "indexExpression": { + "argumentTypes": null, + "id": 13461, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13444, + "src": "2760:1:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2749:13:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2734:29:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2734:33:47", + "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": 13468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2734:48:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2702:80:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13470, + "nodeType": "ExpressionStatement", + "src": "2702:80:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13471, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13440, + "src": "2796:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13474, + "name": "amountList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13425, + "src": "2816:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 13476, + "indexExpression": { + "argumentTypes": null, + "id": 13475, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13444, + "src": "2827:1:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2816:13:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13472, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13440, + "src": "2805:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2805:10:47", + "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": 13477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2805:25:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2796:34:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13479, + "nodeType": "ExpressionStatement", + "src": "2796:34:47" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13447, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13444, + "src": "2610:1:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13448, + "name": "holderList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13422, + "src": "2614:10:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 13449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2614:17:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2610:21:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13481, + "initializationExpression": { + "assignments": [ + 13444 + ], + "declarations": [ + { + "constant": false, + "id": 13444, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13481, + "src": "2595:9:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13443, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2595:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13446, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 13445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2607:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2595:13:47" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 13452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "2633:3:47", + "subExpression": { + "argumentTypes": null, + "id": 13451, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13444, + "src": "2635:1:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13453, + "nodeType": "ExpressionStatement", + "src": "2633:3:47" + }, + "nodeType": "ForStatement", + "src": "2590:251:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13482, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "2850:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13485, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13440, + "src": "2902:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13483, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "2875:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2875:26:47", + "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": 13486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2875:34:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2850:59:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13488, + "nodeType": "ExpressionStatement", + "src": "2850:59:47" + } + ] + }, + "documentation": null, + "functionSelector": "c2ae1680", + "id": 13490, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 13428, + "modifierName": { + "argumentTypes": null, + "id": 13427, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "2449:9:47", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2449:9:47" + } + ], + "name": "grant", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13422, + "mutability": "mutable", + "name": "holderList", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13490, + "src": "2362:29:47", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 13420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2362:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 13421, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2362:9:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13425, + "mutability": "mutable", + "name": "amountList", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13490, + "src": "2393:29:47", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 13423, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2393:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13424, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2393:9:47", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2361:62:47" + }, + "returnParameters": { + "id": 13429, + "nodeType": "ParameterList", + "parameters": [], + "src": "2463:0:47" + }, + "scope": 13789, + "src": "2347:569:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13525, + "nodeType": "Block", + "src": "2995:216:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 13499, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "3005:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13507, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3098:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13509, + "indexExpression": { + "argumentTypes": null, + "id": 13508, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13492, + "src": "3114:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3098:23:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13502, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3057:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13504, + "indexExpression": { + "argumentTypes": null, + "id": 13503, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13492, + "src": "3072:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3057:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13500, + "name": "_UNDISTRIBUTED_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "3030:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3030:26:47", + "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": 13505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3030:50:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3030:54:47", + "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": 13510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3030:101:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3005:126:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13512, + "nodeType": "ExpressionStatement", + "src": "3005:126:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13513, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3141:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13515, + "indexExpression": { + "argumentTypes": null, + "id": 13514, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13492, + "src": "3156:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3141:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 13516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3166:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3141:26:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13518, + "nodeType": "ExpressionStatement", + "src": "3141:26:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13519, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3177:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13521, + "indexExpression": { + "argumentTypes": null, + "id": 13520, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13492, + "src": "3193:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3177:23:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 13522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3203:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3177:27:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13524, + "nodeType": "ExpressionStatement", + "src": "3177:27:47" + } + ] + }, + "documentation": null, + "functionSelector": "ca430519", + "id": 13526, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 13495, + "modifierName": { + "argumentTypes": null, + "id": 13494, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "2963:9:47", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2963:9:47" + }, + { + "arguments": null, + "id": 13497, + "modifierName": { + "argumentTypes": null, + "id": 13496, + "name": "distributeNotFinished", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13341, + "src": "2973:21:47", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2973:21:47" + } + ], + "name": "recall", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13492, + "mutability": "mutable", + "name": "holder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13526, + "src": "2938:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13491, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2938:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2937:16:47" + }, + "returnParameters": { + "id": 13498, + "nodeType": "ParameterList", + "parameters": [], + "src": "2995:0:47" + }, + "scope": 13789, + "src": "2922:289:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13573, + "nodeType": "Block", + "src": "3312:254:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 13543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13531, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3322:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13533, + "indexExpression": { + "argumentTypes": null, + "id": 13532, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "3337:2:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3322:18:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13538, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3366:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13541, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13539, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3381:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3381:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3366:26:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13534, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3343:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13536, + "indexExpression": { + "argumentTypes": null, + "id": 13535, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "3358:2:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3343:18:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3343:22:47", + "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": 13542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3343:50:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3322:71:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13544, + "nodeType": "ExpressionStatement", + "src": "3322:71:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13545, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3403:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13547, + "indexExpression": { + "argumentTypes": null, + "id": 13546, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "3419:2:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3403:19:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13552, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3449:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13555, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13553, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3465:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3465:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3449:27:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13548, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3425:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13550, + "indexExpression": { + "argumentTypes": null, + "id": 13549, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13528, + "src": "3441:2:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3425:19:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3425:23:47", + "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": 13556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3425:52:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3403:74:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13558, + "nodeType": "ExpressionStatement", + "src": "3403:74:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13559, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3488:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13562, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13560, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3503:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3503:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3488:26:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 13563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3517:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3488:30:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13565, + "nodeType": "ExpressionStatement", + "src": "3488:30:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13566, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3528:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13569, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13567, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3544:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3544:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3528:27:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 13570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3558:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3528:31:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13572, + "nodeType": "ExpressionStatement", + "src": "3528:31:47" + } + ] + }, + "documentation": null, + "functionSelector": "7db41eae", + "id": 13574, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferLockedToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13528, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13574, + "src": "3291:10:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3291:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3290:12:47" + }, + "returnParameters": { + "id": 13530, + "nodeType": "ParameterList", + "parameters": [], + "src": "3312:0:47" + }, + "scope": 13789, + "src": "3262:304:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13617, + "nodeType": "Block", + "src": "3598:378:47", + "statements": [ + { + "assignments": [ + 13578 + ], + "declarations": [ + { + "constant": false, + "id": 13578, + "mutability": "mutable", + "name": "claimableToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13617, + "src": "3608:22:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3608:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13583, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13580, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3653:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3653:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 13579, + "name": "getClaimableBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13679, + "src": "3633:19:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 13582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3633:31:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3608:56:47" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13585, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3692:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3692:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 13587, + "name": "claimableToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13578, + "src": "3704:14:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13584, + "name": "_tokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13788, + "src": "3674:17:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 13588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3674:45:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13589, + "nodeType": "ExpressionStatement", + "src": "3674:45:47" + }, + { + "expression": { + "argumentTypes": null, + "id": 13601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13590, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3729:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13593, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13591, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3745:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3745:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3729:27:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13599, + "name": "claimableToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13578, + "src": "3791:14:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13594, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3759:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13597, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13595, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3775:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3775:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3759:27:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3759:31:47", + "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": 13600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3759:47:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3729:77:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13602, + "nodeType": "ExpressionStatement", + "src": "3729:77:47" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13604, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3840:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3840:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13606, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "3864:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13609, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13607, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3879:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3879:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3864:26:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13610, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "3904:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13613, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13611, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3920:3:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 13612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3920:10:47", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3904:27:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13614, + "name": "claimableToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13578, + "src": "3945:14:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13603, + "name": "Claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13307, + "src": "3821:5:47", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256)" + } + }, + "id": 13615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3821:148:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13616, + "nodeType": "EmitStatement", + "src": "3816:153:47" + } + ] + }, + "documentation": null, + "functionSelector": "4e71d92d", + "id": 13618, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13575, + "nodeType": "ParameterList", + "parameters": [], + "src": "3586:2:47" + }, + "returnParameters": { + "id": 13576, + "nodeType": "ParameterList", + "parameters": [], + "src": "3598:0:47" + }, + "scope": 13789, + "src": "3572:404:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13628, + "nodeType": "Block", + "src": "4076:63:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13623, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "4093:5:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 13624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4093:15:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 13625, + "name": "_START_RELEASE_TIME_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "4112:20:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4093:39:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 13622, + "id": 13627, + "nodeType": "Return", + "src": "4086:46:47" + } + ] + }, + "documentation": null, + "functionSelector": "cd32f086", + "id": 13629, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isReleaseStart", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13619, + "nodeType": "ParameterList", + "parameters": [], + "src": "4044:2:47" + }, + "returnParameters": { + "id": 13622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13621, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13629, + "src": "4070:4:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13620, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4070:4:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4069:6:47" + }, + "scope": 13789, + "src": "4021:118:47", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13640, + "nodeType": "Block", + "src": "4219:46:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13636, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "4236:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13638, + "indexExpression": { + "argumentTypes": null, + "id": 13637, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13631, + "src": "4251:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4236:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13635, + "id": 13639, + "nodeType": "Return", + "src": "4229:29:47" + } + ] + }, + "documentation": null, + "functionSelector": "d1828496", + "id": 13641, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getOriginBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13631, + "mutability": "mutable", + "name": "holder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13641, + "src": "4171:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13630, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4171:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4170:16:47" + }, + "returnParameters": { + "id": 13635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13634, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13641, + "src": "4210:7:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13633, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4210:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4209:9:47" + }, + "scope": 13789, + "src": "4145:120:47", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13652, + "nodeType": "Block", + "src": "4346:47:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13648, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "4363:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13650, + "indexExpression": { + "argumentTypes": null, + "id": 13649, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13643, + "src": "4379:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4363:23:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13647, + "id": 13651, + "nodeType": "Return", + "src": "4356:30:47" + } + ] + }, + "documentation": null, + "functionSelector": "cf0e80fe", + "id": 13653, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getClaimedBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13644, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13643, + "mutability": "mutable", + "name": "holder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13653, + "src": "4298:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4298:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4297:16:47" + }, + "returnParameters": { + "id": 13647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13646, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13653, + "src": "4337:7:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4337:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4336:9:47" + }, + "scope": 13789, + "src": "4271:122:47", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 13678, + "nodeType": "Block", + "src": "4474:157:47", + "statements": [ + { + "assignments": [ + 13661 + ], + "declarations": [ + { + "constant": false, + "id": 13661, + "mutability": "mutable", + "name": "remainingToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13678, + "src": "4484:22:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4484:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13665, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13663, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13655, + "src": "4529:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13662, + "name": "getRemainingBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13702, + "src": "4509:19:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 13664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4509:27:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4484:52:47" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13673, + "name": "claimedBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "4600:15:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13675, + "indexExpression": { + "argumentTypes": null, + "id": 13674, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13655, + "src": "4616:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4600:23:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13670, + "name": "remainingToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13661, + "src": "4580:14:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13666, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "4553:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13668, + "indexExpression": { + "argumentTypes": null, + "id": 13667, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13655, + "src": "4568:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4553:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4553:26:47", + "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": 13671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4553:42:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4553:46:47", + "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": 13676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4553:71:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13659, + "id": 13677, + "nodeType": "Return", + "src": "4546:78:47" + } + ] + }, + "documentation": null, + "functionSelector": "06def802", + "id": 13679, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getClaimableBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13656, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13655, + "mutability": "mutable", + "name": "holder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13679, + "src": "4428:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4428:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4427:16:47" + }, + "returnParameters": { + "id": 13659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13658, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13679, + "src": "4465:7:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13657, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4465:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4464:9:47" + }, + "scope": 13789, + "src": "4399:232:47", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13701, + "nodeType": "Block", + "src": "4712:148:47", + "statements": [ + { + "assignments": [ + 13687 + ], + "declarations": [ + { + "constant": false, + "id": 13687, + "mutability": "mutable", + "name": "remainingRatio", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13701, + "src": "4722:22:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4722:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13692, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13689, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "4765:5:47", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 13690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4765:15:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13688, + "name": "getRemainingRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13752, + "src": "4747:17:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 13691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4747:34:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4722:59:47" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 13695, + "name": "originBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13283, + "src": "4814:14:47", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 13697, + "indexExpression": { + "argumentTypes": null, + "id": 13696, + "name": "holder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13681, + "src": "4829:6:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4814:22:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 13698, + "name": "remainingRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13687, + "src": "4838:14:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13693, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "4798:11:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 13694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "4798:15:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4798:55:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13685, + "id": 13700, + "nodeType": "Return", + "src": "4791:62:47" + } + ] + }, + "documentation": null, + "functionSelector": "001bf8f6", + "id": 13702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRemainingBalance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13681, + "mutability": "mutable", + "name": "holder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13702, + "src": "4666:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4666:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4665:16:47" + }, + "returnParameters": { + "id": 13685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13684, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13702, + "src": "4703:7:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4703:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4702:9:47" + }, + "scope": 13789, + "src": "4637:223:47", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13751, + "nodeType": "Block", + "src": "4942:426:47", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13709, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13704, + "src": "4956:9:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 13710, + "name": "_START_RELEASE_TIME_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "4968:20:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4956:32:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 13716, + "nodeType": "IfStatement", + "src": "4952:85:47", + "trueBody": { + "id": 13715, + "nodeType": "Block", + "src": "4990:47:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13712, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5011:11:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 13713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "5011:15:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13708, + "id": 13714, + "nodeType": "Return", + "src": "5004:22:47" + } + ] + } + }, + { + "assignments": [ + 13718 + ], + "declarations": [ + { + "constant": false, + "id": 13718, + "mutability": "mutable", + "name": "timePast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13751, + "src": "5046:16:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5046:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13723, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13721, + "name": "_START_RELEASE_TIME_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "5079:20:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13719, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13704, + "src": "5065:9:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5065:13:47", + "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": 13722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5065:35:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5046:54:47" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 13724, + "name": "timePast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13718, + "src": "5114:8:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 13725, + "name": "_RELEASE_DURATION_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13293, + "src": "5125:18:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5114:29:47", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 13749, + "nodeType": "Block", + "src": "5329:33:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 13747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5350:1:47", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 13708, + "id": 13748, + "nodeType": "Return", + "src": "5343:8:47" + } + ] + }, + "id": 13750, + "nodeType": "IfStatement", + "src": "5110:252:47", + "trueBody": { + "id": 13746, + "nodeType": "Block", + "src": "5145:178:47", + "statements": [ + { + "assignments": [ + 13728 + ], + "declarations": [ + { + "constant": false, + "id": 13728, + "mutability": "mutable", + "name": "remainingTime", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13746, + "src": "5159:21:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5159:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 13733, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13731, + "name": "timePast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13718, + "src": "5206:8:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 13729, + "name": "_RELEASE_DURATION_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13293, + "src": "5183:18:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5183:22:47", + "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": 13732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5183:32:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5159:56:47" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13743, + "name": "_RELEASE_DURATION_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13293, + "src": "5293:18:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13740, + "name": "remainingTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13728, + "src": "5274:13:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13737, + "name": "_CLIFF_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13295, + "src": "5256:12:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 13734, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5236:11:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 13735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "5236:15:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5236:19:47", + "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": 13738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5236:33:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5236:37:47", + "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": 13741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5236:52:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "5236:56:47", + "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": 13744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5236:76:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 13708, + "id": 13745, + "nodeType": "Return", + "src": "5229:83:47" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "6a4de5d1", + "id": 13752, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRemainingRatio", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13705, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13704, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13752, + "src": "4893:17:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4893:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4892:19:47" + }, + "returnParameters": { + "id": 13708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13752, + "src": "4933:7:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4933:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4932:9:47" + }, + "scope": 13789, + "src": "4866:502:47", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 13771, + "nodeType": "Block", + "src": "5489:78:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13763, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13754, + "src": "5532:4:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13766, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5546:4:47", + "typeDescriptions": { + "typeIdentifier": "t_contract$_LockedTokenVault_$13789", + "typeString": "contract LockedTokenVault" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_LockedTokenVault_$13789", + "typeString": "contract LockedTokenVault" + } + ], + "id": 13765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5538:7:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 13764, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5538:7:47", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 13767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5538:13:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13768, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13756, + "src": "5553:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13760, + "name": "_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13279, + "src": "5506:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13759, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5499:6:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 13761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5499:15:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 13762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11354, + "src": "5499:32:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 13769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5499:61:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13770, + "nodeType": "ExpressionStatement", + "src": "5499:61:47" + } + ] + }, + "documentation": null, + "id": 13772, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tokenTransferIn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13754, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13772, + "src": "5450:12:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13753, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5450:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13756, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13772, + "src": "5464:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13755, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5464:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5449:30:47" + }, + "returnParameters": { + "id": 13758, + "nodeType": "ParameterList", + "parameters": [], + "src": "5489:0:47" + }, + "scope": 13789, + "src": "5424:143:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13787, + "nodeType": "Block", + "src": "5637:57:47", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13783, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13774, + "src": "5676:2:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 13784, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13776, + "src": "5680:6:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13780, + "name": "_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13279, + "src": "5654:7:47", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 13779, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5647:6:47", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 13781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5647:15:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 13782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "5647:28:47", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 13785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5647:40:47", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13786, + "nodeType": "ExpressionStatement", + "src": "5647:40:47" + } + ] + }, + "documentation": null, + "id": 13788, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tokenTransferOut", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 13777, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13774, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13788, + "src": "5600:10:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 13773, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5600:7:47", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 13776, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 13788, + "src": "5612:14:47", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5612:7:47", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5599:28:47" + }, + "returnParameters": { + "id": 13778, + "nodeType": "ParameterList", + "parameters": [], + "src": "5637:0:47" + }, + "scope": 13789, + "src": "5573:121:47", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 13790, + "src": "480:5216:47" + } + ], + "src": "78:5619:47" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.742Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "LockedTokenVault" + }, + "userdoc": { + "methods": {}, + "notice": "Lock Token and release it linearly" + } +} \ No newline at end of file diff --git a/build-v1/contracts/Math.json b/build-v1/contracts/Math.json new file mode 100644 index 0000000..8a29996 --- /dev/null +++ b/build-v1/contracts/Math.json @@ -0,0 +1,59141 @@ +{ + "contractName": "Math", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":\"Math\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":{\"keccak256\":\"0x13276cbc5f35abd8a8599841059a1b618e394bab470fb40ae1bf382f32603043\",\"urls\":[\"bzz-raw://3c7be65f25ff007e1ad9fab37105253b91b300e289153c4e6848e5bacaf7b9d3\",\"dweb:/ipfs/QmSEaJzNeFQRGX1JPsU7aNsjcZ9zFB7snRi5Fzosysk4kG\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206a744c9aae814c8d48c9a0a912ad232a7d0c059a93c03525167160461ee903e464736f6c63430006090033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206a744c9aae814c8d48c9a0a912ad232a7d0c059a93c03525167160461ee903e464736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "8128:540:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "8128:540:21:-:0;;;;;;;;", + "source": "/**\n *Submitted for verification at Etherscan.io on 2020-05-05\n */\n\n// File: contracts/interfaces/IUniswapV2Pair.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Pair {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n function MINIMUM_LIQUIDITY() external pure returns (uint256);\n\n function factory() external view returns (address);\n\n function token0() external view returns (address);\n\n function token1() external view returns (address);\n\n function getReserves()\n external\n view\n returns (\n uint112 reserve0,\n uint112 reserve1,\n uint32 blockTimestampLast\n );\n\n function price0CumulativeLast() external view returns (uint256);\n\n function price1CumulativeLast() external view returns (uint256);\n\n function kLast() external view returns (uint256);\n\n function mint(address to) external returns (uint256 liquidity);\n\n function burn(address to) external returns (uint256 amount0, uint256 amount1);\n\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external;\n\n function skim(address to) external;\n\n function sync() external;\n\n function initialize(address, address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2ERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2ERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n}\n\n// File: contracts/libraries/SafeMath.sol\n\npragma solidity 0.6.9;\n\n// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)\n\nlibrary SafeMath {\n function add(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x + y) >= x, \"ds-math-add-overflow\");\n }\n\n function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x - y) <= x, \"ds-math-sub-underflow\");\n }\n\n function mul(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require(y == 0 || (z = x * y) / y == x, \"ds-math-mul-overflow\");\n }\n}\n\n// File: contracts/UniswapV2ERC20.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2ERC20 {\n using SafeMath for uint256;\n\n string public constant name = \"Uniswap V2\";\n string public constant symbol = \"UNI-V2\";\n uint8 public constant decimals = 18;\n uint256 public totalSupply;\n mapping(address => uint256) public balanceOf;\n mapping(address => mapping(address => uint256)) public allowance;\n\n bytes32 public DOMAIN_SEPARATOR;\n // keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\");\n bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\n mapping(address => uint256) public nonces;\n\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function _mint(address to, uint256 value) internal {\n totalSupply = totalSupply.add(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(address(0), to, value);\n }\n\n function _burn(address from, uint256 value) internal {\n balanceOf[from] = balanceOf[from].sub(value);\n totalSupply = totalSupply.sub(value);\n emit Transfer(from, address(0), value);\n }\n\n function _approve(\n address owner,\n address spender,\n uint256 value\n ) private {\n allowance[owner][spender] = value;\n emit Approval(owner, spender, value);\n }\n\n function _transfer(\n address from,\n address to,\n uint256 value\n ) private {\n balanceOf[from] = balanceOf[from].sub(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(from, to, value);\n }\n\n function approve(address spender, uint256 value) external returns (bool) {\n _approve(msg.sender, spender, value);\n return true;\n }\n\n function transfer(address to, uint256 value) external returns (bool) {\n _transfer(msg.sender, to, value);\n return true;\n }\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool) {\n if (allowance[from][msg.sender] != uint256(-1)) {\n allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);\n }\n _transfer(from, to, value);\n return true;\n }\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external {\n require(deadline >= block.timestamp, \"UniswapV2: EXPIRED\");\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n DOMAIN_SEPARATOR,\n keccak256(\n abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)\n )\n )\n );\n address recoveredAddress = ecrecover(digest, v, r, s);\n require(\n recoveredAddress != address(0) && recoveredAddress == owner,\n \"UniswapV2: INVALID_SIGNATURE\"\n );\n _approve(owner, spender, value);\n }\n}\n\n// File: contracts/libraries/Math.sol\n\npragma solidity 0.6.9;\n\n// a library for performing various math operations\n\nlibrary Math {\n function min(uint256 x, uint256 y) internal pure returns (uint256 z) {\n z = x < y ? x : y;\n }\n\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\n function sqrt(uint256 y) internal pure returns (uint256 z) {\n if (y > 3) {\n z = y;\n uint256 x = y / 2 + 1;\n while (x < z) {\n z = x;\n x = (y / x + x) / 2;\n }\n } else if (y != 0) {\n z = 1;\n }\n }\n}\n\n// File: contracts/libraries/UQ112x112.sol\n\npragma solidity 0.6.9;\n\n// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))\n\n// range: [0, 2**112 - 1]\n// resolution: 1 / 2**112\n\nlibrary UQ112x112 {\n uint224 constant Q112 = 2**112;\n\n // encode a uint112 as a UQ112x112\n function encode(uint112 y) internal pure returns (uint224 z) {\n z = uint224(y) * Q112; // never overflows\n }\n\n // divide a UQ112x112 by a uint112, returning a UQ112x112\n function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\n z = x / uint224(y);\n }\n}\n\n// File: contracts/interfaces/IERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external view returns (string memory);\n\n function symbol() external view returns (string memory);\n\n function decimals() external view returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n}\n\n// File: contracts/interfaces/IUniswapV2Factory.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Factory {\n event PairCreated(address indexed token0, address indexed token1, address pair, uint256);\n\n function feeTo() external view returns (address);\n\n function feeToSetter() external view returns (address);\n\n function getPair(address tokenA, address tokenB) external view returns (address pair);\n\n function allPairs(uint256) external view returns (address pair);\n\n function allPairsLength() external view returns (uint256);\n\n function createPair(address tokenA, address tokenB) external returns (address pair);\n\n function setFeeTo(address) external;\n\n function setFeeToSetter(address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2Callee.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Callee {\n function uniswapV2Call(\n address sender,\n uint256 amount0,\n uint256 amount1,\n bytes calldata data\n ) external;\n}\n\n// File: contracts/UniswapV2Pair.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2Pair is UniswapV2ERC20 {\n using SafeMath for uint256;\n using UQ112x112 for uint224;\n\n uint256 public constant MINIMUM_LIQUIDITY = 10**3;\n bytes4 private constant SELECTOR = bytes4(keccak256(bytes(\"transfer(address,uint256)\")));\n\n address public factory;\n address public token0;\n address public token1;\n\n uint112 private reserve0; // uses single storage slot, accessible via getReserves\n uint112 private reserve1; // uses single storage slot, accessible via getReserves\n uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\n\n uint256 public price0CumulativeLast;\n uint256 public price1CumulativeLast;\n uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\n\n uint256 private unlocked = 1;\n modifier lock() {\n require(unlocked == 1, \"UniswapV2: LOCKED\");\n unlocked = 0;\n _;\n unlocked = 1;\n }\n\n function getReserves()\n public\n view\n returns (\n uint112 _reserve0,\n uint112 _reserve1,\n uint32 _blockTimestampLast\n )\n {\n _reserve0 = reserve0;\n _reserve1 = reserve1;\n _blockTimestampLast = blockTimestampLast;\n }\n\n function _safeTransfer(\n address token,\n address to,\n uint256 value\n ) private {\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n \"UniswapV2: TRANSFER_FAILED\"\n );\n }\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n constructor() public {\n factory = msg.sender;\n }\n\n // called once by the factory at time of deployment\n function initialize(address _token0, address _token1) external {\n require(msg.sender == factory, \"UniswapV2: FORBIDDEN\"); // sufficient check\n token0 = _token0;\n token1 = _token1;\n }\n\n // update reserves and, on the first call per block, price accumulators\n function _update(\n uint256 balance0,\n uint256 balance1,\n uint112 _reserve0,\n uint112 _reserve1\n ) private {\n require(balance0 <= uint112(-1) && balance1 <= uint112(-1), \"UniswapV2: OVERFLOW\");\n uint32 blockTimestamp = uint32(block.timestamp % 2**32);\n uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\n if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {\n // * never overflows, and + overflow is desired\n price0CumulativeLast +=\n uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) *\n timeElapsed;\n price1CumulativeLast +=\n uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) *\n timeElapsed;\n }\n reserve0 = uint112(balance0);\n reserve1 = uint112(balance1);\n blockTimestampLast = blockTimestamp;\n emit Sync(reserve0, reserve1);\n }\n\n // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)\n function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {\n address feeTo = IUniswapV2Factory(factory).feeTo();\n feeOn = feeTo != address(0);\n uint256 _kLast = kLast; // gas savings\n if (feeOn) {\n if (_kLast != 0) {\n uint256 rootK = Math.sqrt(uint256(_reserve0).mul(_reserve1));\n uint256 rootKLast = Math.sqrt(_kLast);\n if (rootK > rootKLast) {\n uint256 numerator = totalSupply.mul(rootK.sub(rootKLast));\n uint256 denominator = rootK.mul(5).add(rootKLast);\n uint256 liquidity = numerator / denominator;\n if (liquidity > 0) _mint(feeTo, liquidity);\n }\n }\n } else if (_kLast != 0) {\n kLast = 0;\n }\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function mint(address to) external lock returns (uint256 liquidity) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n uint256 balance0 = IERC20(token0).balanceOf(address(this));\n uint256 balance1 = IERC20(token1).balanceOf(address(this));\n uint256 amount0 = balance0.sub(_reserve0);\n uint256 amount1 = balance1.sub(_reserve1);\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n if (_totalSupply == 0) {\n liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);\n _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens\n } else {\n liquidity = Math.min(\n amount0.mul(_totalSupply) / _reserve0,\n amount1.mul(_totalSupply) / _reserve1\n );\n }\n require(liquidity > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\");\n _mint(to, liquidity);\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Mint(msg.sender, amount0, amount1);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function burn(address to) external lock returns (uint256 amount0, uint256 amount1) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n uint256 balance0 = IERC20(_token0).balanceOf(address(this));\n uint256 balance1 = IERC20(_token1).balanceOf(address(this));\n uint256 liquidity = balanceOf[address(this)];\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution\n amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution\n require(amount0 > 0 && amount1 > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\");\n _burn(address(this), liquidity);\n _safeTransfer(_token0, to, amount0);\n _safeTransfer(_token1, to, amount1);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Burn(msg.sender, amount0, amount1, to);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external lock {\n require(amount0Out > 0 || amount1Out > 0, \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\");\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n require(\n amount0Out < _reserve0 && amount1Out < _reserve1,\n \"UniswapV2: INSUFFICIENT_LIQUIDITY\"\n );\n\n uint256 balance0;\n uint256 balance1;\n {\n // scope for _token{0,1}, avoids stack too deep errors\n address _token0 = token0;\n address _token1 = token1;\n require(to != _token0 && to != _token1, \"UniswapV2: INVALID_TO\");\n if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens\n if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens\n if (data.length > 0)\n IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n }\n uint256 amount0In = balance0 > _reserve0 - amount0Out\n ? balance0 - (_reserve0 - amount0Out)\n : 0;\n uint256 amount1In = balance1 > _reserve1 - amount1Out\n ? balance1 - (_reserve1 - amount1Out)\n : 0;\n require(amount0In > 0 || amount1In > 0, \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\");\n {\n // scope for reserve{0,1}Adjusted, avoids stack too deep errors\n uint256 balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));\n uint256 balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));\n require(\n balance0Adjusted.mul(balance1Adjusted) >=\n uint256(_reserve0).mul(_reserve1).mul(1000**2),\n \"UniswapV2: K\"\n );\n }\n\n _update(balance0, balance1, _reserve0, _reserve1);\n emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);\n }\n\n // force balances to match reserves\n function skim(address to) external lock {\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));\n _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));\n }\n\n // force reserves to match balances\n function sync() external lock {\n _update(\n IERC20(token0).balanceOf(address(this)),\n IERC20(token1).balanceOf(address(this)),\n reserve0,\n reserve1\n );\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.607Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/Migrations.json b/build-v1/contracts/Migrations.json new file mode 100644 index 0000000..a06f9c2 --- /dev/null +++ b/build-v1/contracts/Migrations.json @@ -0,0 +1,1451 @@ +{ + "contractName": "Migrations", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newAddress", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/Migrations.sol\":{\"keccak256\":\"0xba8c3786f986d758d86b8c9d85357820dd0abde03b49a6883c0279f15f2099a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://03e53fd1d8a21de10f5a680b4cac614d375b59ba5b25ce3f5e43d6a622ea8cac\",\"dweb:/ipfs/QmdoHbz7boCTg67nAfT6N178BQkYvUd8QbGpjWsJR8JPEC\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101eb806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100665780638da5cb5b14610084578063fdacd57614610099575b600080fd5b61006461005f366004610152565b6100ac565b005b61006e610125565b60405161007b91906101ac565b60405180910390f35b61008c61012b565b60405161007b9190610198565b6100646100a7366004610180565b61013a565b6000546001600160a01b031633141561012257600154604051637ed66abb60e11b815282916001600160a01b0383169163fdacd576916100ee916004016101ac565b600060405180830381600087803b15801561010857600080fd5b505af115801561011c573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561012257600155565b600060208284031215610163578081fd5b81356001600160a01b0381168114610179578182fd5b9392505050565b600060208284031215610191578081fd5b5035919050565b6001600160a01b0391909116815260200190565b9081526020019056fea26469706673582212205ed35f739472fd482c1681e18f61c4c409f32279fc993a19752885afc2e700c064736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100665780638da5cb5b14610084578063fdacd57614610099575b600080fd5b61006461005f366004610152565b6100ac565b005b61006e610125565b60405161007b91906101ac565b60405180910390f35b61008c61012b565b60405161007b9190610198565b6100646100a7366004610180565b61013a565b6000546001600160a01b031633141561012257600154604051637ed66abb60e11b815282916001600160a01b0383169163fdacd576916100ee916004016101ac565b600060405180830381600087803b15801561010857600080fd5b505af115801561011c573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561012257600155565b600060208284031215610163578081fd5b81356001600160a01b0381168114610179578182fd5b9392505050565b600060208284031215610191578081fd5b5035919050565b6001600160a01b0391909116815260200190565b9081526020019056fea26469706673582212205ed35f739472fd482c1681e18f61c4c409f32279fc993a19752885afc2e700c064736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "137:548:14:-:0;;;330:56;;;;;;;;;-1:-1:-1;361:5:14;:18;;-1:-1:-1;;;;;;361:18:14;369:10;361:18;;;137:548;;;;;;", + "deployedSourceMap": "137:548:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;510:173;;;;;;;;;:::i;:::-;;189:39;;;:::i;:::-;;;;;;;;;;;;;;;;163:20;;;:::i;:::-;;;;;;;;392:112;;;;;;;;;:::i;510:173::-;285:5;;-1:-1:-1;;;;;285:5:14;271:10;:19;267:51;;;651:24:::1;::::0;629:47:::1;::::0;-1:-1:-1;;;629:47:14;;608:10;;-1:-1:-1;;;;;629:21:14;::::1;::::0;::::1;::::0;:47:::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;306:1;267:51:::0;510:173;:::o;189:39::-;;;;:::o;163:20::-;;;-1:-1:-1;;;;;163:20:14;;:::o;392:112::-;285:5;;-1:-1:-1;;;;;285:5:14;271:10;:19;267:51;;;461:24:::1;:36:::0;392:112::o;279:241:-1:-;;383:2;371:9;362:7;358:23;354:32;351:2;;;-1:-1;;389:12;351:2;72:20;;-1:-1;;;;;1633:54;;1837:35;;1827:2;;-1:-1;;1876:12;1827:2;441:63;345:175;-1:-1;;;345:175;527:241;;631:2;619:9;610:7;606:23;602:32;599:2;;;-1:-1;;637:12;599:2;-1:-1;209:20;;593:175;-1:-1;593:175;1015:222;-1:-1;;;;;1633:54;;;;846:37;;1142:2;1127:18;;1113:124;1244:222;966:37;;;1371:2;1356:18;;1342:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ncontract Migrations {\n address public owner;\n uint256 public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) {\n _;\n }\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint256 completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address newAddress) public restricted {\n Migrations upgraded = Migrations(newAddress);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/Migrations.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/Migrations.sol", + "exportedSymbols": { + "Migrations": [ + 2091 + ] + }, + "id": 2092, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2034, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:14" + }, + { + "id": 2035, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:14" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2091, + "linearizedBaseContracts": [ + 2091 + ], + "name": "Migrations", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "8da5cb5b", + "id": 2037, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2091, + "src": "163:20:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "163:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "445df0ac", + "id": 2039, + "mutability": "mutable", + "name": "last_completed_migration", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2091, + "src": "189:39:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "189:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2048, + "nodeType": "Block", + "src": "257:67:14", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2041, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "271:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "271:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2043, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2037, + "src": "285:5:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "271:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2047, + "nodeType": "IfStatement", + "src": "267:51:14", + "trueBody": { + "id": 2046, + "nodeType": "Block", + "src": "292:26:14", + "statements": [ + { + "id": 2045, + "nodeType": "PlaceholderStatement", + "src": "306:1:14" + } + ] + } + } + ] + }, + "documentation": null, + "id": 2049, + "name": "restricted", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2040, + "nodeType": "ParameterList", + "parameters": [], + "src": "254:2:14" + }, + "src": "235:89:14", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2057, + "nodeType": "Block", + "src": "351:35:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2052, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2037, + "src": "361:5:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2053, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "369:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "369:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "361:18:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2056, + "nodeType": "ExpressionStatement", + "src": "361:18:14" + } + ] + }, + "documentation": null, + "id": 2058, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2050, + "nodeType": "ParameterList", + "parameters": [], + "src": "341:2:14" + }, + "returnParameters": { + "id": 2051, + "nodeType": "ParameterList", + "parameters": [], + "src": "351:0:14" + }, + "scope": 2091, + "src": "330:56:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2069, + "nodeType": "Block", + "src": "451:53:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2065, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2039, + "src": "461:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2066, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2060, + "src": "488:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "461:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2068, + "nodeType": "ExpressionStatement", + "src": "461:36:14" + } + ] + }, + "documentation": null, + "functionSelector": "fdacd576", + "id": 2070, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2063, + "modifierName": { + "argumentTypes": null, + "id": 2062, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2049, + "src": "440:10:14", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "440:10:14" + } + ], + "name": "setCompleted", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2061, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2060, + "mutability": "mutable", + "name": "completed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2070, + "src": "414:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "414:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "413:19:14" + }, + "returnParameters": { + "id": 2064, + "nodeType": "ParameterList", + "parameters": [], + "src": "451:0:14" + }, + "scope": 2091, + "src": "392:112:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2089, + "nodeType": "Block", + "src": "565:118:14", + "statements": [ + { + "assignments": [ + 2078 + ], + "declarations": [ + { + "constant": false, + "id": 2078, + "mutability": "mutable", + "name": "upgraded", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2089, + "src": "575:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$2091", + "typeString": "contract Migrations" + }, + "typeName": { + "contractScope": null, + "id": 2077, + "name": "Migrations", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2091, + "src": "575:10:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$2091", + "typeString": "contract Migrations" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2082, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2080, + "name": "newAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2072, + "src": "608:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2079, + "name": "Migrations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2091, + "src": "597:10:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Migrations_$2091_$", + "typeString": "type(contract Migrations)" + } + }, + "id": 2081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "597:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$2091", + "typeString": "contract Migrations" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "575:44:14" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2086, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2039, + "src": "651:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2083, + "name": "upgraded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2078, + "src": "629:8:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$2091", + "typeString": "contract Migrations" + } + }, + "id": 2085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setCompleted", + "nodeType": "MemberAccess", + "referencedDeclaration": 2070, + "src": "629:21:14", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 2087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "629:47:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2088, + "nodeType": "ExpressionStatement", + "src": "629:47:14" + } + ] + }, + "documentation": null, + "functionSelector": "0900f010", + "id": 2090, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2075, + "modifierName": { + "argumentTypes": null, + "id": 2074, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2049, + "src": "554:10:14", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "554:10:14" + } + ], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2072, + "mutability": "mutable", + "name": "newAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2090, + "src": "527:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "527:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "526:20:14" + }, + "returnParameters": { + "id": 2076, + "nodeType": "ParameterList", + "parameters": [], + "src": "565:0:14" + }, + "scope": 2091, + "src": "510:173:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2092, + "src": "137:548:14" + } + ], + "src": "78:608:14" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/Migrations.sol", + "exportedSymbols": { + "Migrations": [ + 2091 + ] + }, + "id": 2092, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2034, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:14" + }, + { + "id": 2035, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:14" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2091, + "linearizedBaseContracts": [ + 2091 + ], + "name": "Migrations", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "8da5cb5b", + "id": 2037, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2091, + "src": "163:20:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "163:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "445df0ac", + "id": 2039, + "mutability": "mutable", + "name": "last_completed_migration", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2091, + "src": "189:39:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "189:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2048, + "nodeType": "Block", + "src": "257:67:14", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2041, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "271:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "271:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2043, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2037, + "src": "285:5:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "271:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2047, + "nodeType": "IfStatement", + "src": "267:51:14", + "trueBody": { + "id": 2046, + "nodeType": "Block", + "src": "292:26:14", + "statements": [ + { + "id": 2045, + "nodeType": "PlaceholderStatement", + "src": "306:1:14" + } + ] + } + } + ] + }, + "documentation": null, + "id": 2049, + "name": "restricted", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2040, + "nodeType": "ParameterList", + "parameters": [], + "src": "254:2:14" + }, + "src": "235:89:14", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2057, + "nodeType": "Block", + "src": "351:35:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2052, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2037, + "src": "361:5:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2053, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "369:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "369:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "361:18:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2056, + "nodeType": "ExpressionStatement", + "src": "361:18:14" + } + ] + }, + "documentation": null, + "id": 2058, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2050, + "nodeType": "ParameterList", + "parameters": [], + "src": "341:2:14" + }, + "returnParameters": { + "id": 2051, + "nodeType": "ParameterList", + "parameters": [], + "src": "351:0:14" + }, + "scope": 2091, + "src": "330:56:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2069, + "nodeType": "Block", + "src": "451:53:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2065, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2039, + "src": "461:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2066, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2060, + "src": "488:9:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "461:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2068, + "nodeType": "ExpressionStatement", + "src": "461:36:14" + } + ] + }, + "documentation": null, + "functionSelector": "fdacd576", + "id": 2070, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2063, + "modifierName": { + "argumentTypes": null, + "id": 2062, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2049, + "src": "440:10:14", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "440:10:14" + } + ], + "name": "setCompleted", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2061, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2060, + "mutability": "mutable", + "name": "completed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2070, + "src": "414:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "414:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "413:19:14" + }, + "returnParameters": { + "id": 2064, + "nodeType": "ParameterList", + "parameters": [], + "src": "451:0:14" + }, + "scope": 2091, + "src": "392:112:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2089, + "nodeType": "Block", + "src": "565:118:14", + "statements": [ + { + "assignments": [ + 2078 + ], + "declarations": [ + { + "constant": false, + "id": 2078, + "mutability": "mutable", + "name": "upgraded", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2089, + "src": "575:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$2091", + "typeString": "contract Migrations" + }, + "typeName": { + "contractScope": null, + "id": 2077, + "name": "Migrations", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2091, + "src": "575:10:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$2091", + "typeString": "contract Migrations" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2082, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2080, + "name": "newAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2072, + "src": "608:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2079, + "name": "Migrations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2091, + "src": "597:10:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Migrations_$2091_$", + "typeString": "type(contract Migrations)" + } + }, + "id": 2081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "597:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$2091", + "typeString": "contract Migrations" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "575:44:14" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2086, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2039, + "src": "651:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2083, + "name": "upgraded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2078, + "src": "629:8:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$2091", + "typeString": "contract Migrations" + } + }, + "id": 2085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setCompleted", + "nodeType": "MemberAccess", + "referencedDeclaration": 2070, + "src": "629:21:14", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 2087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "629:47:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2088, + "nodeType": "ExpressionStatement", + "src": "629:47:14" + } + ] + }, + "documentation": null, + "functionSelector": "0900f010", + "id": 2090, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2075, + "modifierName": { + "argumentTypes": null, + "id": 2074, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2049, + "src": "554:10:14", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "554:10:14" + } + ], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2072, + "mutability": "mutable", + "name": "newAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2090, + "src": "527:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "527:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "526:20:14" + }, + "returnParameters": { + "id": 2076, + "nodeType": "ParameterList", + "parameters": [], + "src": "565:0:14" + }, + "scope": 2091, + "src": "510:173:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2092, + "src": "137:548:14" + } + ], + "src": "78:608:14" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.510Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/MinimumOracle.json b/build-v1/contracts/MinimumOracle.json new file mode 100644 index 0000000..3ccab1e --- /dev/null +++ b/build-v1/contracts/MinimumOracle.json @@ -0,0 +1,2793 @@ +{ + "contractName": "MinimumOracle", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransfer", + "type": "event" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "tokenPrice", + "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": "uint256", + "name": "newPrice", + "type": "uint256" + } + ], + "name": "setPrice", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"setPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MinimumOracle.sol\":\"MinimumOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MinimumOracle.sol\":{\"keccak256\":\"0x66ac490e135af4b70e2d0df8b0872480c964221e225ece8301e06f334d040a9c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://adc9b73a0b2586f440355ed94761cdd0c891a1fa0effcd267dd1f4fbedb6bb75\",\"dweb:/ipfs/QmSaYizENPPjsWDGeDLj1ntRW9zomfVwbfJUgRBCY9yQky\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca908290a36102a0806100696000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806316048bc41461005c5780637ff9b5961461007a57806391b7f5ed1461008f57806398d5fdca146100a4578063f2fde38b146100ac575b600080fd5b6100646100bf565b6040516100719190610203565b60405180910390f35b6100826100ce565b6040516100719190610261565b6100a261009d3660046101eb565b6100d4565b005b61008261010c565b6100a26100ba3660046101bd565b610112565b6000546001600160a01b031681565b60015481565b6000546001600160a01b031633146101075760405162461bcd60e51b81526004016100fe9061023e565b60405180910390fd5b600155565b60015490565b6000546001600160a01b0316331461013c5760405162461bcd60e51b81526004016100fe9061023e565b6001600160a01b0381166101625760405162461bcd60e51b81526004016100fe90610217565b600080546040516001600160a01b03808516939216917f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca91a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156101ce578081fd5b81356001600160a01b03811681146101e4578182fd5b9392505050565b6000602082840312156101fc578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b9081526020019056fea2646970667358221220c3a5edff3cea46018780be4a5f46fbf1a2761357373d836472ac7100d1d9c6c764736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806316048bc41461005c5780637ff9b5961461007a57806391b7f5ed1461008f57806398d5fdca146100a4578063f2fde38b146100ac575b600080fd5b6100646100bf565b6040516100719190610203565b60405180910390f35b6100826100ce565b6040516100719190610261565b6100a261009d3660046101eb565b6100d4565b005b61008261010c565b6100a26100ba3660046101bd565b610112565b6000546001600160a01b031681565b60015481565b6000546001600160a01b031633146101075760405162461bcd60e51b81526004016100fe9061023e565b60405180910390fd5b600155565b60015490565b6000546001600160a01b0316331461013c5760405162461bcd60e51b81526004016100fe9061023e565b6001600160a01b0381166101625760405162461bcd60e51b81526004016100fe90610217565b600080546040516001600160a01b03808516939216917f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca91a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156101ce578081fd5b81356001600160a01b03811681146101e4578182fd5b9392505050565b6000602082840312156101fc578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b9081526020019056fea2646970667358221220c3a5edff3cea46018780be4a5f46fbf1a2761357373d836472ac7100d1d9c6c764736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "336:921:15:-:0;;;739:111;;;;;;;;;-1:-1:-1;770:7:15;:20;;-1:-1:-1;;;;;;770:20:15;780:10;770:20;;;;805:38;;-1:-1:-1;;;;;835:7:15;;;;;770;805:38;;770:7;;805:38;336:921;;;;;;", + "deployedSourceMap": "336:921:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;365:22;;;:::i;:::-;;;;;;;;;;;;;;;;393:25;;;:::i;:::-;;;;;;;;1070:93;;;;;;;;;:::i;:::-;;1169:86;;;:::i;856:208::-;;;;;;;;;:::i;365:22::-;;;-1:-1:-1;;;;;365:22:15;;:::o;393:25::-;;;;:::o;1070:93::-;650:7;;-1:-1:-1;;;;;650:7:15;636:10;:21;628:43;;;;-1:-1:-1;;;628:43:15;;;;;;;;;;;;;;;;;1135:10:::1;:21:::0;1070:93::o;1169:86::-;1238:10;;1169:86;:::o;856:208::-;650:7;;-1:-1:-1;;;;;650:7:15;636:10;:21;628:43;;;;-1:-1:-1;;;628:43:15;;;;;;;;;-1:-1:-1;;;;;938:22:15;::::1;930:48;;;;-1:-1:-1::0;;;930:48:15::1;;;;;;;;;1011:7;::::0;;993:36:::1;::::0;-1:-1:-1;;;;;993:36:15;;::::1;::::0;1011:7;::::1;::::0;993:36:::1;::::0;::::1;1039:7;:18:::0;;-1:-1:-1;;;;;;1039:18:15::1;-1:-1:-1::0;;;;;1039:18:15;;;::::1;::::0;;;::::1;::::0;;856:208::o;279:241:-1:-;;383:2;371:9;362:7;358:23;354:32;351:2;;;-1:-1;;389:12;351:2;72:20;;-1:-1;;;;;3290:54;;3494:35;;3484:2;;-1:-1;;3533:12;3484:2;441:63;345:175;-1:-1;;;345:175;527:241;;631:2;619:9;610:7;606:23;602:32;599:2;;;-1:-1;;637:12;599:2;-1:-1;209:20;;593:175;-1:-1;593:175;1654:222;-1:-1;;;;;3290:54;;;;846:37;;1781:2;1766:18;;1752:124;1883:416;2083:2;2097:47;;;1120:2;2068:18;;;3062:19;-1:-1;;;3102:14;;;1136:36;1191:12;;;2054:245;2306:416;2506:2;2520:47;;;1442:1;2491:18;;;3062:19;-1:-1;;;3102:14;;;1457:32;1508:12;;;2477:245;2729:222;1605:37;;;2856:2;2841:18;;2827:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ninterface IMinimumOracle {\n function getPrice() external view returns (uint256);\n\n function setPrice(uint256 newPrice) external;\n\n function transferOwnership(address newOwner) external;\n}\n\n\ncontract MinimumOracle {\n address public _OWNER_;\n uint256 public tokenPrice;\n\n // ============ Events ============\n\n event OwnershipTransfer(address indexed previousOwner, address indexed newOwner);\n\n // ============ Modifiers ============\n\n modifier onlyOwner() {\n require(msg.sender == _OWNER_, \"NOT_OWNER\");\n _;\n }\n\n // ============ Functions ============\n\n constructor() public {\n _OWNER_ = msg.sender;\n emit OwnershipTransfer(address(0), _OWNER_);\n }\n\n function transferOwnership(address newOwner) external onlyOwner {\n require(newOwner != address(0), \"INVALID_OWNER\");\n emit OwnershipTransfer(_OWNER_, newOwner);\n _OWNER_ = newOwner;\n }\n\n function setPrice(uint256 newPrice) external onlyOwner {\n tokenPrice = newPrice;\n }\n\n function getPrice() external view returns (uint256) {\n return tokenPrice;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MinimumOracle.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MinimumOracle.sol", + "exportedSymbols": { + "IMinimumOracle": [ + 2110 + ], + "MinimumOracle": [ + 2197 + ] + }, + "id": 2198, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2093, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:15" + }, + { + "id": 2094, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2110, + "linearizedBaseContracts": [ + 2110 + ], + "name": "IMinimumOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 2099, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2095, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:15" + }, + "returnParameters": { + "id": 2098, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2097, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2099, + "src": "211:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2096, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:15" + }, + "scope": 2110, + "src": "168:52:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "91b7f5ed", + "id": 2104, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2101, + "mutability": "mutable", + "name": "newPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2104, + "src": "244:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2100, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "244:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "243:18:15" + }, + "returnParameters": { + "id": 2103, + "nodeType": "ParameterList", + "parameters": [], + "src": "270:0:15" + }, + "scope": 2110, + "src": "226:45:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 2109, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2106, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2109, + "src": "304:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2105, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "304:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "303:18:15" + }, + "returnParameters": { + "id": 2108, + "nodeType": "ParameterList", + "parameters": [], + "src": "330:0:15" + }, + "scope": 2110, + "src": "277:54:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2198, + "src": "137:196:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2197, + "linearizedBaseContracts": [ + 2197 + ], + "name": "MinimumOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "16048bc4", + "id": 2112, + "mutability": "mutable", + "name": "_OWNER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2197, + "src": "365:22:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ff9b596", + "id": 2114, + "mutability": "mutable", + "name": "tokenPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2197, + "src": "393:25:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "393:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 2120, + "name": "OwnershipTransfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 2119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2116, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2120, + "src": "490:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "490:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2120, + "src": "521:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "521:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "489:57:15" + }, + "src": "466:81:15" + }, + { + "body": { + "id": 2131, + "nodeType": "Block", + "src": "618:71:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2123, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "636:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "636:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2125, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "650:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "636:21:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f4f574e4552", + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "659:11:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + }, + "value": "NOT_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "628:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "628:43:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2129, + "nodeType": "ExpressionStatement", + "src": "628:43:15" + }, + { + "id": 2130, + "nodeType": "PlaceholderStatement", + "src": "681:1:15" + } + ] + }, + "documentation": null, + "id": 2132, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [], + "src": "615:2:15" + }, + "src": "597:92:15", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2148, + "nodeType": "Block", + "src": "760:90:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2135, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "770:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2136, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "780:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "780:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "770:20:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2139, + "nodeType": "ExpressionStatement", + "src": "770:20:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "831:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "823:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "823:7:15", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "823:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2145, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "835:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2140, + "name": "OwnershipTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2120, + "src": "805:17:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "805:38:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2147, + "nodeType": "EmitStatement", + "src": "800:43:15" + } + ] + }, + "documentation": null, + "id": 2149, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2133, + "nodeType": "ParameterList", + "parameters": [], + "src": "750:2:15" + }, + "returnParameters": { + "id": 2134, + "nodeType": "ParameterList", + "parameters": [], + "src": "760:0:15" + }, + "scope": 2197, + "src": "739:111:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2175, + "nodeType": "Block", + "src": "920:144:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2157, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "938:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "958:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "950:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "950:7:15", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "950:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "938:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "494e56414c49445f4f574e4552", + "id": 2163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "962:15:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + }, + "value": "INVALID_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + } + ], + "id": 2156, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "930:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "930:48:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2165, + "nodeType": "ExpressionStatement", + "src": "930:48:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2167, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "1011:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2168, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "1020:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2166, + "name": "OwnershipTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2120, + "src": "993:17:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "993:36:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2170, + "nodeType": "EmitStatement", + "src": "988:41:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 2173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2171, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "1039:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2172, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "1049:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1039:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2174, + "nodeType": "ExpressionStatement", + "src": "1039:18:15" + } + ] + }, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 2176, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2154, + "modifierName": { + "argumentTypes": null, + "id": 2153, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "910:9:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "910:9:15" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2151, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2176, + "src": "883:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "883:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "882:18:15" + }, + "returnParameters": { + "id": 2155, + "nodeType": "ParameterList", + "parameters": [], + "src": "920:0:15" + }, + "scope": 2197, + "src": "856:208:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2187, + "nodeType": "Block", + "src": "1125:38:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2183, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "1135:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2184, + "name": "newPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "1148:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1135:21:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2186, + "nodeType": "ExpressionStatement", + "src": "1135:21:15" + } + ] + }, + "documentation": null, + "functionSelector": "91b7f5ed", + "id": 2188, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2181, + "modifierName": { + "argumentTypes": null, + "id": 2180, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "1115:9:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1115:9:15" + } + ], + "name": "setPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2178, + "mutability": "mutable", + "name": "newPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2188, + "src": "1088:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1088:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1087:18:15" + }, + "returnParameters": { + "id": 2182, + "nodeType": "ParameterList", + "parameters": [], + "src": "1125:0:15" + }, + "scope": 2197, + "src": "1070:93:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2195, + "nodeType": "Block", + "src": "1221:34:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2193, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "1238:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2192, + "id": 2194, + "nodeType": "Return", + "src": "1231:17:15" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 2196, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [], + "src": "1186:2:15" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2196, + "src": "1212:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1212:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1211:9:15" + }, + "scope": 2197, + "src": "1169:86:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2198, + "src": "336:921:15" + } + ], + "src": "78:1180:15" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MinimumOracle.sol", + "exportedSymbols": { + "IMinimumOracle": [ + 2110 + ], + "MinimumOracle": [ + 2197 + ] + }, + "id": 2198, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2093, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:15" + }, + { + "id": 2094, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 2110, + "linearizedBaseContracts": [ + 2110 + ], + "name": "IMinimumOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 2099, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2095, + "nodeType": "ParameterList", + "parameters": [], + "src": "185:2:15" + }, + "returnParameters": { + "id": 2098, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2097, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2099, + "src": "211:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2096, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "211:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "210:9:15" + }, + "scope": 2110, + "src": "168:52:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "91b7f5ed", + "id": 2104, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2102, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2101, + "mutability": "mutable", + "name": "newPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2104, + "src": "244:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2100, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "244:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "243:18:15" + }, + "returnParameters": { + "id": 2103, + "nodeType": "ParameterList", + "parameters": [], + "src": "270:0:15" + }, + "scope": 2110, + "src": "226:45:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 2109, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2106, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2109, + "src": "304:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2105, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "304:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "303:18:15" + }, + "returnParameters": { + "id": 2108, + "nodeType": "ParameterList", + "parameters": [], + "src": "330:0:15" + }, + "scope": 2110, + "src": "277:54:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2198, + "src": "137:196:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2197, + "linearizedBaseContracts": [ + 2197 + ], + "name": "MinimumOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "16048bc4", + "id": 2112, + "mutability": "mutable", + "name": "_OWNER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2197, + "src": "365:22:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ff9b596", + "id": 2114, + "mutability": "mutable", + "name": "tokenPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2197, + "src": "393:25:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "393:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 2120, + "name": "OwnershipTransfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 2119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2116, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2120, + "src": "490:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "490:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2120, + "src": "521:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "521:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "489:57:15" + }, + "src": "466:81:15" + }, + { + "body": { + "id": 2131, + "nodeType": "Block", + "src": "618:71:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2123, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "636:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "636:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2125, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "650:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "636:21:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f4f574e4552", + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "659:11:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + }, + "value": "NOT_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "628:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "628:43:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2129, + "nodeType": "ExpressionStatement", + "src": "628:43:15" + }, + { + "id": 2130, + "nodeType": "PlaceholderStatement", + "src": "681:1:15" + } + ] + }, + "documentation": null, + "id": 2132, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [], + "src": "615:2:15" + }, + "src": "597:92:15", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2148, + "nodeType": "Block", + "src": "760:90:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2135, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "770:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2136, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "780:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "780:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "770:20:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2139, + "nodeType": "ExpressionStatement", + "src": "770:20:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "831:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "823:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "823:7:15", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "823:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2145, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "835:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2140, + "name": "OwnershipTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2120, + "src": "805:17:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "805:38:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2147, + "nodeType": "EmitStatement", + "src": "800:43:15" + } + ] + }, + "documentation": null, + "id": 2149, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2133, + "nodeType": "ParameterList", + "parameters": [], + "src": "750:2:15" + }, + "returnParameters": { + "id": 2134, + "nodeType": "ParameterList", + "parameters": [], + "src": "760:0:15" + }, + "scope": 2197, + "src": "739:111:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2175, + "nodeType": "Block", + "src": "920:144:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2157, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "938:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "958:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "950:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "950:7:15", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "950:10:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "938:22:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "494e56414c49445f4f574e4552", + "id": 2163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "962:15:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + }, + "value": "INVALID_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + } + ], + "id": 2156, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "930:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "930:48:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2165, + "nodeType": "ExpressionStatement", + "src": "930:48:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2167, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "1011:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2168, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "1020:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2166, + "name": "OwnershipTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2120, + "src": "993:17:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 2169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "993:36:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2170, + "nodeType": "EmitStatement", + "src": "988:41:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 2173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2171, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2112, + "src": "1039:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2172, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2151, + "src": "1049:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1039:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2174, + "nodeType": "ExpressionStatement", + "src": "1039:18:15" + } + ] + }, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 2176, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2154, + "modifierName": { + "argumentTypes": null, + "id": 2153, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "910:9:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "910:9:15" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2151, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2176, + "src": "883:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "883:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "882:18:15" + }, + "returnParameters": { + "id": 2155, + "nodeType": "ParameterList", + "parameters": [], + "src": "920:0:15" + }, + "scope": 2197, + "src": "856:208:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2187, + "nodeType": "Block", + "src": "1125:38:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2183, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "1135:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2184, + "name": "newPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "1148:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1135:21:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2186, + "nodeType": "ExpressionStatement", + "src": "1135:21:15" + } + ] + }, + "documentation": null, + "functionSelector": "91b7f5ed", + "id": 2188, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2181, + "modifierName": { + "argumentTypes": null, + "id": 2180, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "1115:9:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1115:9:15" + } + ], + "name": "setPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2178, + "mutability": "mutable", + "name": "newPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2188, + "src": "1088:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1088:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1087:18:15" + }, + "returnParameters": { + "id": 2182, + "nodeType": "ParameterList", + "parameters": [], + "src": "1125:0:15" + }, + "scope": 2197, + "src": "1070:93:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2195, + "nodeType": "Block", + "src": "1221:34:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2193, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "1238:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2192, + "id": 2194, + "nodeType": "Return", + "src": "1231:17:15" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 2196, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [], + "src": "1186:2:15" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2196, + "src": "1212:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1212:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1211:9:15" + }, + "scope": 2197, + "src": "1169:86:15", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2198, + "src": "336:921:15" + } + ], + "src": "78:1180:15" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.511Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/MultiSigWalletWithTimelock.json b/build-v1/contracts/MultiSigWalletWithTimelock.json new file mode 100644 index 0000000..beb9dc4 --- /dev/null +++ b/build-v1/contracts/MultiSigWalletWithTimelock.json @@ -0,0 +1,31203 @@ +{ + "contractName": "MultiSigWalletWithTimelock", + "abi": [ + { + "inputs": [ + { + "internalType": "address[]", + "name": "_owners", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "_required", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + } + ], + "name": "Confirmation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Deposit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + } + ], + "name": "Execution", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + } + ], + "name": "ExecutionFailure", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "lockSeconds", + "type": "uint256" + } + ], + "name": "LockSecondsChange", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnerAddition", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnerRemoval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "required", + "type": "uint256" + } + ], + "name": "RequirementChange", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + } + ], + "name": "Revocation", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + } + ], + "name": "Submission", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "confirmationTime", + "type": "uint256" + } + ], + "name": "UnlockTimeSet", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "inputs": [], + "name": "MAX_OWNER_COUNT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "confirmations", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "emergencyCalls", + "outputs": [ + { + "internalType": "bytes32", + "name": "selector", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "paramsBytesCount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "lockSeconds", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "owners", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "required", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "transactionCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "transactions", + "outputs": [ + { + "internalType": "address", + "name": "destination", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bool", + "name": "executed", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "unlockTimes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + }, + { + "inputs": [], + "name": "getEmergencyCallsCount", + "outputs": [ + { + "internalType": "uint256", + "name": "count", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "addOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "removeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "replaceOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_required", + "type": "uint256" + } + ], + "name": "changeRequirement", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_lockSeconds", + "type": "uint256" + } + ], + "name": "changeLockSeconds", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "destination", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "submitTransaction", + "outputs": [ + { + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + } + ], + "name": "confirmTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "funcName", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_paramsBytesCount", + "type": "uint256" + } + ], + "name": "addEmergencyCall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + } + ], + "name": "revokeConfirmation", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + } + ], + "name": "executeTransaction", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + } + ], + "name": "isConfirmed", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + } + ], + "name": "getConfirmationCount", + "outputs": [ + { + "internalType": "uint256", + "name": "count", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "pending", + "type": "bool" + }, + { + "internalType": "bool", + "name": "executed", + "type": "bool" + } + ], + "name": "getTransactionCount", + "outputs": [ + { + "internalType": "uint256", + "name": "count", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwners", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "transactionId", + "type": "uint256" + } + ], + "name": "getConfirmations", + "outputs": [ + { + "internalType": "address[]", + "name": "_confirmations", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_owners\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_required\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"Confirmation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"Execution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"ExecutionFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"lockSeconds\",\"type\":\"uint256\"}],\"name\":\"LockSecondsChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnerAddition\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnerRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"RequirementChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"Revocation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"Submission\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"confirmationTime\",\"type\":\"uint256\"}],\"name\":\"UnlockTimeSet\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"MAX_OWNER_COUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"funcName\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_paramsBytesCount\",\"type\":\"uint256\"}],\"name\":\"addEmergencyCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"addOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_lockSeconds\",\"type\":\"uint256\"}],\"name\":\"changeLockSeconds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_required\",\"type\":\"uint256\"}],\"name\":\"changeRequirement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"confirmTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"confirmations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"emergencyCalls\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"selector\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"paramsBytesCount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"getConfirmationCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"getConfirmations\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"_confirmations\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getEmergencyCallsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"name\":\"getTransactionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"isConfirmed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lockSeconds\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"owners\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"removeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"replaceOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"required\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"revokeConfirmation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"submitTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transactionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transactions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"unlockTimes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{\"addOwner(address)\":{\"details\":\"Allows to add a new owner. Transaction has to be sent by wallet.\",\"params\":{\"owner\":\"Address of new owner.\"}},\"changeLockSeconds(uint256)\":{\"details\":\"Changes the duration of the time lock for transactions.\",\"params\":{\"_lockSeconds\":\"Duration needed after a transaction is confirmed and before it becomes executable, in seconds.\"}},\"changeRequirement(uint256)\":{\"details\":\"Allows to change the number of required confirmations. Transaction has to be sent by wallet.\",\"params\":{\"_required\":\"Number of required confirmations.\"}},\"confirmTransaction(uint256)\":{\"details\":\"Allows an owner to confirm a transaction.\",\"params\":{\"transactionId\":\"Transaction ID.\"}},\"constructor\":{\"details\":\"Contract constructor sets initial owners and required number of confirmations.\",\"params\":{\"_owners\":\"List of initial owners.\",\"_required\":\"Number of required confirmations.\"}},\"executeTransaction(uint256)\":{\"details\":\"Allows anyone to execute a confirmed transaction.\",\"params\":{\"transactionId\":\"Transaction ID.\"}},\"getConfirmationCount(uint256)\":{\"details\":\"Returns number of confirmations of a transaction.\",\"params\":{\"transactionId\":\"Transaction ID.\"},\"returns\":{\"count\":\"Number of confirmations.\"}},\"getConfirmations(uint256)\":{\"details\":\"Returns array with owner addresses, which confirmed transaction.\",\"params\":{\"transactionId\":\"Transaction ID.\"},\"returns\":{\"_confirmations\":\"Returns array of owner addresses.\"}},\"getOwners()\":{\"details\":\"Returns list of owners.\",\"returns\":{\"_0\":\"List of owner addresses.\"}},\"getTransactionCount(bool,bool)\":{\"details\":\"Returns total number of transactions after filers are applied.\",\"params\":{\"executed\":\"Include executed transactions.\",\"pending\":\"Include pending transactions.\"},\"returns\":{\"count\":\"Total number of transactions after filters are applied.\"}},\"isConfirmed(uint256)\":{\"details\":\"Returns the confirmation status of a transaction.\",\"params\":{\"transactionId\":\"Transaction ID.\"},\"returns\":{\"_0\":\"Confirmation status.\"}},\"removeOwner(address)\":{\"details\":\"Allows to remove an owner. Transaction has to be sent by wallet.\",\"params\":{\"owner\":\"Address of owner.\"}},\"replaceOwner(address,address)\":{\"details\":\"Allows to replace an owner with a new owner. Transaction has to be sent by wallet.\",\"params\":{\"owner\":\"Address of new owner.\"}},\"revokeConfirmation(uint256)\":{\"details\":\"Allows an owner to revoke a confirmation for a transaction.\",\"params\":{\"transactionId\":\"Transaction ID.\"}},\"submitTransaction(address,uint256,bytes)\":{\"details\":\"Allows an owner to submit and confirm a transaction.\",\"params\":{\"data\":\"Transaction data payload.\",\"destination\":\"Transaction target address.\",\"value\":\"Transaction ether value.\"},\"returns\":{\"transactionId\":\"Returns transaction ID.\"}}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MultiSig.sol\":\"MultiSigWalletWithTimelock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MultiSig.sol\":{\"keccak256\":\"0xc0b34ead7b6682f104ab6ef3619a44a250120765b5b839c4051db184a225c94c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3fec498e6b08ec430db4c3e83209423191fdce6c1768aa315c73721495c128cd\",\"dweb:/ipfs/QmUY3GWLiSZWAYw3y4sBmEy6xZtfxBWkSJEc7cbLe5i2F5\"]}},\"version\":1}", + "bytecode": "0x6080604052620151806000553480156200001857600080fd5b5060405162002359380380620023598339810160408190526200003b9162000367565b81518160328211806200004d57508181115b8062000057575080155b8062000061575081155b156200008a5760405162461bcd60e51b81526004016200008190620004b4565b60405180910390fd5b60005b84518110156200016f5760036000868381518110620000a857fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff168062000101575060006001600160a01b0316858281518110620000ee57fe5b60200260200101516001600160a01b0316145b15620001215760405162461bcd60e51b815260040162000081906200048f565b6001600360008784815181106200013457fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016200008d565b50835162000185906005906020870190620002b5565b5060068390556040805180820190915260089080620001a76060820162000424565b60408051601f19818403018152918152815160209283012083526000928201839052845460018181018755958452928290208451600290940201928355920151920191909155805180820190915260089080620002076060820162000476565b60408051601f198184030181529181528151602092830120835291810182905283546001818101865560009586529482902084516002909202019081559201519190920155805180820190915260089080620002666060820162000440565b60408051601f1981840301815291815281516020928301208352918101919091528254600181810185556000948552938290208351600290920201908155910151910155506200051292505050565b8280548282559060005260206000209081019282156200030d579160200282015b828111156200030d57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620002d6565b506200031b9291506200031f565b5090565b6200034691905b808211156200031b5780546001600160a01b031916815560010162000326565b90565b80516001600160a01b03811681146200036157600080fd5b92915050565b600080604083850312156200037a578182fd5b82516001600160401b038082111562000391578384fd5b81850186601f820112620003a3578485fd5b8051925081831115620003b4578485fd5b60209150818302620003c8838201620004eb565b8481528381019083850183850186018b1015620003e3578889fd5b8894505b868510156200041157620003fc8b8262000349565b835260019490940193918501918501620003e7565b5097909301519698969750505050505050565b6f636c61696d4f776e657273686970282960801b815260100190565b7f7365744c697175696469747950726f7669646572466565526174652875696e748152633235362960e01b602082015260240190565b6c7365744b2875696e743235362960981b8152600d0190565b6020808252600b908201526a27aba722a92fa2a92927a960a91b604082015260600190565b60208082526017908201527f56414c49445f524551554952454d454e545f4552524f52000000000000000000604082015260600190565b6040518181016001600160401b03811182821017156200050a57600080fd5b604052919050565b611e3780620005226000396000f3fe6080604052600436106101855760003560e01c8063a0e67e2b116100d1578063c0af02271161008a578063dc8452cd11610064578063dc8452cd146104f7578063e20056e61461050c578063ee22610b1461052c578063f075fb901461054c576101d4565b8063c0af0227146104ad578063c6427474146104c2578063d74f8edd146104e2576101d4565b8063a0e67e2b14610401578063b5dc40c314610423578063b77bf60014610443578063ba51a6df14610458578063bfa6fddb14610478578063c01a8c841461048d576101d4565b80637065cb481161013e57806386384afc1161011857806386384afc146103635780638b51d13f146103915780638c22d5d3146103b15780639ace38c2146103d1576101d4565b80637065cb481461030357806376ac947a14610323578063784547a714610343576101d4565b8063025e7c2714610213578063173825d91461024957806320ea8d86146102695780632f54bf6e146102895780633411c81c146102b657806354741525146102d6576101d4565b366101d45734156101d257336001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516101c99190611dc8565b60405180910390a25b005b34156101d257336001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516101c99190611dc8565b34801561021f57600080fd5b5061023361022e366004611a59565b61056c565b6040516102409190611b20565b60405180910390f35b34801561025557600080fd5b506101d26102643660046118a9565b610593565b34801561027557600080fd5b506101d2610284366004611a59565b61071a565b34801561029557600080fd5b506102a96102a43660046118a9565b610809565b6040516102409190611bd2565b3480156102c257600080fd5b506102a96102d1366004611a71565b61081e565b3480156102e257600080fd5b506102f66102f1366004611990565b61083e565b6040516102409190611dc8565b34801561030f57600080fd5b506101d261031e3660046118a9565b6108aa565b34801561032f57600080fd5b506102f661033e366004611a59565b610a04565b34801561034f57600080fd5b506102a961035e366004611a59565b610a16565b34801561036f57600080fd5b5061038361037e366004611a59565b610aa0565b604051610240929190611bdd565b34801561039d57600080fd5b506102f66103ac366004611a59565b610acb565b3480156103bd57600080fd5b506101d26103cc366004611a59565b610b3a565b3480156103dd57600080fd5b506103f16103ec366004611a59565b610b99565b6040516102409493929190611b34565b34801561040d57600080fd5b50610416610c55565b6040516102409190611b85565b34801561042f57600080fd5b5061041661043e366004611a59565b610cb8565b34801561044f57600080fd5b506102f6610e5c565b34801561046457600080fd5b506101d2610473366004611a59565b610e62565b34801561048457600080fd5b506102f6610f04565b34801561049957600080fd5b506101d26104a8366004611a59565b610f0a565b3480156104b957600080fd5b506102f661108c565b3480156104ce57600080fd5b506102f66104dd3660046118ff565b611092565b3480156104ee57600080fd5b506102f6611202565b34801561050357600080fd5b506102f6611207565b34801561051857600080fd5b506101d26105273660046118cb565b61120d565b34801561053857600080fd5b506101d2610547366004611a59565b6113c3565b34801561055857600080fd5b506101d26105673660046119bb565b61155e565b6005818154811061057957fe5b6000918252602090912001546001600160a01b0316905081565b3330146105bb5760405162461bcd60e51b81526004016105b290611cb9565b60405180910390fd5b6001600160a01b038116600090815260036020526040902054819060ff166105f55760405162461bcd60e51b81526004016105b290611d10565b6001600160a01b0382166000908152600360205260408120805460ff191690555b600554600019018110156106c957826001600160a01b03166005828154811061063b57fe5b6000918252602090912001546001600160a01b031614156106c15760058054600019810190811061066857fe5b600091825260209091200154600580546001600160a01b03909216918390811061068e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506106c9565b600101610616565b5060055460065411156106e2576005546106e290610e62565b6040516001600160a01b038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526003602052604090205460ff166107495760405162461bcd60e51b81526004016105b290611d10565b60008281526002602090815260408083203380855292529091205483919060ff166107865760405162461bcd60e51b81526004016105b290611beb565b600084815260016020526040902060030154849060ff16156107ba5760405162461bcd60e51b81526004016105b290611ce4565b6000858152600260209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60036020526000908152604090205460ff1681565b600260209081526000928352604080842090915290825290205460ff1681565b6000805b6007548110156108a35783801561086b575060008181526001602052604090206003015460ff16155b8061088f575082801561088f575060008181526001602052604090206003015460ff165b1561089b576001820191505b600101610842565b5092915050565b3330146108c95760405162461bcd60e51b81526004016105b290611cb9565b6001600160a01b038116600090815260036020526040902054819060ff16156109045760405162461bcd60e51b81526004016105b290611c14565b816001600160a01b03811661092b5760405162461bcd60e51b81526004016105b290611d69565b600580549050600101600654603282118061094557508181115b8061094e575080155b80610957575081155b156109745760405162461bcd60e51b81526004016105b290611d91565b6001600160a01b038516600081815260036020526040808220805460ff1916600190811790915560058054918201815583527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b03191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b60046020526000908152604090205481565b600080805b600554811015610a945760008481526002602052604081206005805491929184908110610a4457fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610a78576001820191505b6006548210610a8c57600192505050610a9b565b600101610a1b565b5060009150505b919050565b60088181548110610aad57fe5b60009182526020909120600290910201805460019091015490915082565b6000805b600554811015610b345760008381526002602052604081206005805491929184908110610af857fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610b2c576001820191505b600101610acf565b50919050565b333014610b595760405162461bcd60e51b81526004016105b290611cb9565b60008190556040517f884d6758bafbcb4b5e2e0393178ca1f3da3dd380a54ce05ab60aa59756db9dc190610b8e908390611dc8565b60405180910390a150565b6001602081815260009283526040928390208054818401546002808401805488516101009882161598909802600019011691909104601f81018690048602870186019097528686526001600160a01b039092169590949293830182828015610c425780601f10610c1757610100808354040283529160200191610c42565b820191906000526020600020905b815481529060010190602001808311610c2557829003601f168201915b5050506003909301549192505060ff1684565b60606005805480602002602001604051908101604052809291908181526020018280548015610cad57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c8f575b505050505090505b90565b600554606090819067ffffffffffffffff81118015610cd657600080fd5b50604051908082528060200260200182016040528015610d00578160200160208202803683370190505b5090506000805b600554811015610dc35760008581526002602052604081206005805491929184908110610d3057fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610dbb5760058181548110610d6a57fe5b9060005260206000200160009054906101000a90046001600160a01b0316838381518110610d9457fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001820191505b600101610d07565b8167ffffffffffffffff81118015610dda57600080fd5b50604051908082528060200260200182016040528015610e04578160200160208202803683370190505b509350600090505b81811015610e5457828181518110610e2057fe5b6020026020010151848281518110610e3457fe5b6001600160a01b0390921660209283029190910190910152600101610e0c565b505050919050565b60075481565b333014610e815760405162461bcd60e51b81526004016105b290611cb9565b600554816032821180610e9357508181115b80610e9c575080155b80610ea5575081155b15610ec25760405162461bcd60e51b81526004016105b290611d91565b60068390556040517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a90610ef7908590611dc8565b60405180910390a1505050565b60005481565b3360008181526003602052604090205460ff16610f395760405162461bcd60e51b81526004016105b290611d10565b60008281526001602052604090205482906001600160a01b0316610f6f5760405162461bcd60e51b81526004016105b290611c82565b60008381526002602090815260408083203380855292529091205484919060ff1615610fad5760405162461bcd60e51b81526004016105b290611d3c565b6000858152600260209081526040808320338085529252808320805460ff191660011790555187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361100185610a16565b80156110195750600085815260046020526040902054155b801561102b5750611029856115e2565b155b15611085576000805486825260046020526040918290204290910190819055905186907f280af6a3ba059a74f0e894262aa07f2c4d0de1e231882263c0d7dcda111b1a449061107b908490611dc8565b60405180910390a2505b5050505050565b60085490565b3360008181526003602052604081205490919060ff166110c45760405162461bcd60e51b81526004016105b290611d10565b856001600160a01b0381166110eb5760405162461bcd60e51b81526004016105b290611d69565b60075492506040518060800160405280886001600160a01b0316815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093855250505060209182018190528581526001808352604091829020845181546001600160a01b0319166001600160a01b039091161781558484015191810191909155908301518051919261119f926002850192909101906117cd565b50606091909101516003909101805460ff191691151591909117905560078054600101905560405183907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a26111f883610f0a565b5050949350505050565b603281565b60065481565b33301461122c5760405162461bcd60e51b81526004016105b290611cb9565b6001600160a01b038216600090815260036020526040902054829060ff166112665760405162461bcd60e51b81526004016105b290611d10565b6001600160a01b038216600090815260036020526040902054829060ff16156112a15760405162461bcd60e51b81526004016105b290611c14565b60005b60055481101561132957846001600160a01b0316600582815481106112c557fe5b6000918252602090912001546001600160a01b031614156113215783600582815481106112ee57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611329565b6001016112a4565b506001600160a01b03808516600081815260036020526040808220805460ff1990811690915593871682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a26040516001600160a01b038416907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a250505050565b3360008181526003602052604090205460ff166113f25760405162461bcd60e51b81526004016105b290611d10565b600082815260016020526040902060030154829060ff16156114265760405162461bcd60e51b81526004016105b290611ce4565b6000838152600460205260409020544210156114545760405162461bcd60e51b81526004016105b290611c4b565b61145d83610a16565b1561155957600083815260016020819052604080832060038101805460ff19168417905580549281015491519093926001600160a01b031691906114a5906002860190611a94565b60006040518083038185875af1925050503d80600081146114e2576040519150601f19603f3d011682016040523d82523d6000602084013e6114e7565b606091505b5050905080156115215760405185907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611085565b60405185907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a250600301805460ff191690555b505050565b33301461157d5760405162461bcd60e51b81526004016105b290611cb9565b600860405180604001604052808460405160200161159b9190611b04565b60408051601f198184030181529190528051602091820120825290810193909352815460018181018455600093845292849020825160029092020190815592015191015550565b60008181526001602081815260408084206002908101805483519581161561010002600019011691909104601f8101849004840285018401909252818452606093929091908301828280156116785780601f1061164d57610100808354040283529160200191611678565b820191906000526020600020905b81548152906001019060200180831161165b57829003601f168201915b50939450600093505050505b600854811015610a945761169661184b565b600882815481106116a357fe5b9060005260206000209060020201604051806040016040529081600082015481526020016001820154815250509050806020015160040183511480156116eb57506004835110155b801561171d5750826000815181106116ff57fe5b602091010151815160001a60f81b6001600160f81b03199081169116145b801561174f57508260018151811061173157fe5b602091010151815160011a60f81b6001600160f81b03199081169116145b801561178157508260028151811061176357fe5b602091010151815160021a60f81b6001600160f81b03199081169116145b80156117b357508260038151811061179557fe5b602091010151815160031a60f81b6001600160f81b03199081169116145b156117c45760019350505050610a9b565b50600101611684565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061180e57805160ff191683800117855561183b565b8280016001018555821561183b579182015b8281111561183b578251825591602001919060010190611820565b50611847929150611862565b5090565b604080518082019091526000808252602082015290565b610cb591905b808211156118475760008155600101611868565b80356001600160a01b038116811461189357600080fd5b92915050565b8035801515811461189357600080fd5b6000602082840312156118ba578081fd5b6118c4838361187c565b9392505050565b600080604083850312156118dd578081fd5b6118e7848461187c565b91506118f6846020850161187c565b90509250929050565b60008060008060608587031215611914578182fd5b84356001600160a01b038116811461192a578283fd5b935060208501359250604085013567ffffffffffffffff8082111561194d578384fd5b81870188601f82011261195e578485fd5b803592508183111561196e578485fd5b88602084830101111561197f578485fd5b959894975050602090940194505050565b600080604083850312156119a2578182fd5b6119ac8484611899565b91506118f68460208501611899565b600080604083850312156119cd578182fd5b823567ffffffffffffffff808211156119e4578384fd5b81850186601f8201126119f5578485fd5b8035925081831115611a05578485fd5b6040516020601f8501601f1916820181018481118382101715611a26578788fd5b6040528482528285018101891015611a3c578687fd5b848184018284013793810184019590955250929593013593505050565b600060208284031215611a6a578081fd5b5035919050565b60008060408385031215611a83578182fd5b823591506118f6846020850161187c565b6000808354600180821660008114611ab35760018114611aca57611af9565b60ff198316865260028304607f1686019350611af9565b600283048786526020808720875b83811015611af15781548a820152908501908201611ad8565b505050860193505b509195945050505050565b60008251611b16818460208701611dd1565b9190910192915050565b6001600160a01b0391909116815260200190565b600060018060a01b0386168252846020830152608060408301528351806080840152611b678160a0850160208801611dd1565b921515606083015250601f91909101601f19160160a0019392505050565b6020808252825182820181905260009190848201906040850190845b81811015611bc65783516001600160a01b031683529284019291840191600101611ba1565b50909695505050505050565b901515815260200190565b918252602082015260400190565b6020808252600f908201526e21a7a72324a926a2a22fa2a92927a960891b604082015260600190565b6020808252601a908201527f4f574e45525f444f45535f4e4f545f45584953545f4552524f52000000000000604082015260600190565b6020808252601a908201527f5452414e53414354494f4e5f4e4545445f544f5f554e4c4f434b000000000000604082015260600190565b60208082526018908201527f5452414e53414354494f4e5f4558495354535f4552524f520000000000000000604082015260600190565b60208082526011908201527027a7262cafaba0a62622aa2fa2a92927a960791b604082015260600190565b6020808252601290820152712727aa2fa2ac22a1aaaa22a22fa2a92927a960711b604082015260600190565b60208082526012908201527127aba722a92fa2ac24a9aa29afa2a92927a960711b604082015260600190565b6020808252601390820152722727aa2fa1a7a72324a926a2a22fa2a92927a960691b604082015260600190565b6020808252600e908201526d2727aa2fa72aa6262fa2a92927a960911b604082015260600190565b60208082526017908201527f56414c49445f524551554952454d454e545f4552524f52000000000000000000604082015260600190565b90815260200190565b60005b83811015611dec578181015183820152602001611dd4565b83811115611dfb576000848401525b5050505056fea26469706673582212203d74ff7a7391bb0bef594d5f3bb61dffe44dc359928a4708db3053e543a82a4764736f6c63430006090033", + "deployedBytecode": "0x6080604052600436106101855760003560e01c8063a0e67e2b116100d1578063c0af02271161008a578063dc8452cd11610064578063dc8452cd146104f7578063e20056e61461050c578063ee22610b1461052c578063f075fb901461054c576101d4565b8063c0af0227146104ad578063c6427474146104c2578063d74f8edd146104e2576101d4565b8063a0e67e2b14610401578063b5dc40c314610423578063b77bf60014610443578063ba51a6df14610458578063bfa6fddb14610478578063c01a8c841461048d576101d4565b80637065cb481161013e57806386384afc1161011857806386384afc146103635780638b51d13f146103915780638c22d5d3146103b15780639ace38c2146103d1576101d4565b80637065cb481461030357806376ac947a14610323578063784547a714610343576101d4565b8063025e7c2714610213578063173825d91461024957806320ea8d86146102695780632f54bf6e146102895780633411c81c146102b657806354741525146102d6576101d4565b366101d45734156101d257336001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516101c99190611dc8565b60405180910390a25b005b34156101d257336001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516101c99190611dc8565b34801561021f57600080fd5b5061023361022e366004611a59565b61056c565b6040516102409190611b20565b60405180910390f35b34801561025557600080fd5b506101d26102643660046118a9565b610593565b34801561027557600080fd5b506101d2610284366004611a59565b61071a565b34801561029557600080fd5b506102a96102a43660046118a9565b610809565b6040516102409190611bd2565b3480156102c257600080fd5b506102a96102d1366004611a71565b61081e565b3480156102e257600080fd5b506102f66102f1366004611990565b61083e565b6040516102409190611dc8565b34801561030f57600080fd5b506101d261031e3660046118a9565b6108aa565b34801561032f57600080fd5b506102f661033e366004611a59565b610a04565b34801561034f57600080fd5b506102a961035e366004611a59565b610a16565b34801561036f57600080fd5b5061038361037e366004611a59565b610aa0565b604051610240929190611bdd565b34801561039d57600080fd5b506102f66103ac366004611a59565b610acb565b3480156103bd57600080fd5b506101d26103cc366004611a59565b610b3a565b3480156103dd57600080fd5b506103f16103ec366004611a59565b610b99565b6040516102409493929190611b34565b34801561040d57600080fd5b50610416610c55565b6040516102409190611b85565b34801561042f57600080fd5b5061041661043e366004611a59565b610cb8565b34801561044f57600080fd5b506102f6610e5c565b34801561046457600080fd5b506101d2610473366004611a59565b610e62565b34801561048457600080fd5b506102f6610f04565b34801561049957600080fd5b506101d26104a8366004611a59565b610f0a565b3480156104b957600080fd5b506102f661108c565b3480156104ce57600080fd5b506102f66104dd3660046118ff565b611092565b3480156104ee57600080fd5b506102f6611202565b34801561050357600080fd5b506102f6611207565b34801561051857600080fd5b506101d26105273660046118cb565b61120d565b34801561053857600080fd5b506101d2610547366004611a59565b6113c3565b34801561055857600080fd5b506101d26105673660046119bb565b61155e565b6005818154811061057957fe5b6000918252602090912001546001600160a01b0316905081565b3330146105bb5760405162461bcd60e51b81526004016105b290611cb9565b60405180910390fd5b6001600160a01b038116600090815260036020526040902054819060ff166105f55760405162461bcd60e51b81526004016105b290611d10565b6001600160a01b0382166000908152600360205260408120805460ff191690555b600554600019018110156106c957826001600160a01b03166005828154811061063b57fe5b6000918252602090912001546001600160a01b031614156106c15760058054600019810190811061066857fe5b600091825260209091200154600580546001600160a01b03909216918390811061068e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506106c9565b600101610616565b5060055460065411156106e2576005546106e290610e62565b6040516001600160a01b038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526003602052604090205460ff166107495760405162461bcd60e51b81526004016105b290611d10565b60008281526002602090815260408083203380855292529091205483919060ff166107865760405162461bcd60e51b81526004016105b290611beb565b600084815260016020526040902060030154849060ff16156107ba5760405162461bcd60e51b81526004016105b290611ce4565b6000858152600260209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60036020526000908152604090205460ff1681565b600260209081526000928352604080842090915290825290205460ff1681565b6000805b6007548110156108a35783801561086b575060008181526001602052604090206003015460ff16155b8061088f575082801561088f575060008181526001602052604090206003015460ff165b1561089b576001820191505b600101610842565b5092915050565b3330146108c95760405162461bcd60e51b81526004016105b290611cb9565b6001600160a01b038116600090815260036020526040902054819060ff16156109045760405162461bcd60e51b81526004016105b290611c14565b816001600160a01b03811661092b5760405162461bcd60e51b81526004016105b290611d69565b600580549050600101600654603282118061094557508181115b8061094e575080155b80610957575081155b156109745760405162461bcd60e51b81526004016105b290611d91565b6001600160a01b038516600081815260036020526040808220805460ff1916600190811790915560058054918201815583527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b03191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b60046020526000908152604090205481565b600080805b600554811015610a945760008481526002602052604081206005805491929184908110610a4457fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610a78576001820191505b6006548210610a8c57600192505050610a9b565b600101610a1b565b5060009150505b919050565b60088181548110610aad57fe5b60009182526020909120600290910201805460019091015490915082565b6000805b600554811015610b345760008381526002602052604081206005805491929184908110610af857fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610b2c576001820191505b600101610acf565b50919050565b333014610b595760405162461bcd60e51b81526004016105b290611cb9565b60008190556040517f884d6758bafbcb4b5e2e0393178ca1f3da3dd380a54ce05ab60aa59756db9dc190610b8e908390611dc8565b60405180910390a150565b6001602081815260009283526040928390208054818401546002808401805488516101009882161598909802600019011691909104601f81018690048602870186019097528686526001600160a01b039092169590949293830182828015610c425780601f10610c1757610100808354040283529160200191610c42565b820191906000526020600020905b815481529060010190602001808311610c2557829003601f168201915b5050506003909301549192505060ff1684565b60606005805480602002602001604051908101604052809291908181526020018280548015610cad57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c8f575b505050505090505b90565b600554606090819067ffffffffffffffff81118015610cd657600080fd5b50604051908082528060200260200182016040528015610d00578160200160208202803683370190505b5090506000805b600554811015610dc35760008581526002602052604081206005805491929184908110610d3057fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610dbb5760058181548110610d6a57fe5b9060005260206000200160009054906101000a90046001600160a01b0316838381518110610d9457fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001820191505b600101610d07565b8167ffffffffffffffff81118015610dda57600080fd5b50604051908082528060200260200182016040528015610e04578160200160208202803683370190505b509350600090505b81811015610e5457828181518110610e2057fe5b6020026020010151848281518110610e3457fe5b6001600160a01b0390921660209283029190910190910152600101610e0c565b505050919050565b60075481565b333014610e815760405162461bcd60e51b81526004016105b290611cb9565b600554816032821180610e9357508181115b80610e9c575080155b80610ea5575081155b15610ec25760405162461bcd60e51b81526004016105b290611d91565b60068390556040517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a90610ef7908590611dc8565b60405180910390a1505050565b60005481565b3360008181526003602052604090205460ff16610f395760405162461bcd60e51b81526004016105b290611d10565b60008281526001602052604090205482906001600160a01b0316610f6f5760405162461bcd60e51b81526004016105b290611c82565b60008381526002602090815260408083203380855292529091205484919060ff1615610fad5760405162461bcd60e51b81526004016105b290611d3c565b6000858152600260209081526040808320338085529252808320805460ff191660011790555187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361100185610a16565b80156110195750600085815260046020526040902054155b801561102b5750611029856115e2565b155b15611085576000805486825260046020526040918290204290910190819055905186907f280af6a3ba059a74f0e894262aa07f2c4d0de1e231882263c0d7dcda111b1a449061107b908490611dc8565b60405180910390a2505b5050505050565b60085490565b3360008181526003602052604081205490919060ff166110c45760405162461bcd60e51b81526004016105b290611d10565b856001600160a01b0381166110eb5760405162461bcd60e51b81526004016105b290611d69565b60075492506040518060800160405280886001600160a01b0316815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093855250505060209182018190528581526001808352604091829020845181546001600160a01b0319166001600160a01b039091161781558484015191810191909155908301518051919261119f926002850192909101906117cd565b50606091909101516003909101805460ff191691151591909117905560078054600101905560405183907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a26111f883610f0a565b5050949350505050565b603281565b60065481565b33301461122c5760405162461bcd60e51b81526004016105b290611cb9565b6001600160a01b038216600090815260036020526040902054829060ff166112665760405162461bcd60e51b81526004016105b290611d10565b6001600160a01b038216600090815260036020526040902054829060ff16156112a15760405162461bcd60e51b81526004016105b290611c14565b60005b60055481101561132957846001600160a01b0316600582815481106112c557fe5b6000918252602090912001546001600160a01b031614156113215783600582815481106112ee57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611329565b6001016112a4565b506001600160a01b03808516600081815260036020526040808220805460ff1990811690915593871682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a26040516001600160a01b038416907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a250505050565b3360008181526003602052604090205460ff166113f25760405162461bcd60e51b81526004016105b290611d10565b600082815260016020526040902060030154829060ff16156114265760405162461bcd60e51b81526004016105b290611ce4565b6000838152600460205260409020544210156114545760405162461bcd60e51b81526004016105b290611c4b565b61145d83610a16565b1561155957600083815260016020819052604080832060038101805460ff19168417905580549281015491519093926001600160a01b031691906114a5906002860190611a94565b60006040518083038185875af1925050503d80600081146114e2576040519150601f19603f3d011682016040523d82523d6000602084013e6114e7565b606091505b5050905080156115215760405185907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611085565b60405185907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a250600301805460ff191690555b505050565b33301461157d5760405162461bcd60e51b81526004016105b290611cb9565b600860405180604001604052808460405160200161159b9190611b04565b60408051601f198184030181529190528051602091820120825290810193909352815460018181018455600093845292849020825160029092020190815592015191015550565b60008181526001602081815260408084206002908101805483519581161561010002600019011691909104601f8101849004840285018401909252818452606093929091908301828280156116785780601f1061164d57610100808354040283529160200191611678565b820191906000526020600020905b81548152906001019060200180831161165b57829003601f168201915b50939450600093505050505b600854811015610a945761169661184b565b600882815481106116a357fe5b9060005260206000209060020201604051806040016040529081600082015481526020016001820154815250509050806020015160040183511480156116eb57506004835110155b801561171d5750826000815181106116ff57fe5b602091010151815160001a60f81b6001600160f81b03199081169116145b801561174f57508260018151811061173157fe5b602091010151815160011a60f81b6001600160f81b03199081169116145b801561178157508260028151811061176357fe5b602091010151815160021a60f81b6001600160f81b03199081169116145b80156117b357508260038151811061179557fe5b602091010151815160031a60f81b6001600160f81b03199081169116145b156117c45760019350505050610a9b565b50600101611684565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061180e57805160ff191683800117855561183b565b8280016001018555821561183b579182015b8281111561183b578251825591602001919060010190611820565b50611847929150611862565b5090565b604080518082019091526000808252602082015290565b610cb591905b808211156118475760008155600101611868565b80356001600160a01b038116811461189357600080fd5b92915050565b8035801515811461189357600080fd5b6000602082840312156118ba578081fd5b6118c4838361187c565b9392505050565b600080604083850312156118dd578081fd5b6118e7848461187c565b91506118f6846020850161187c565b90509250929050565b60008060008060608587031215611914578182fd5b84356001600160a01b038116811461192a578283fd5b935060208501359250604085013567ffffffffffffffff8082111561194d578384fd5b81870188601f82011261195e578485fd5b803592508183111561196e578485fd5b88602084830101111561197f578485fd5b959894975050602090940194505050565b600080604083850312156119a2578182fd5b6119ac8484611899565b91506118f68460208501611899565b600080604083850312156119cd578182fd5b823567ffffffffffffffff808211156119e4578384fd5b81850186601f8201126119f5578485fd5b8035925081831115611a05578485fd5b6040516020601f8501601f1916820181018481118382101715611a26578788fd5b6040528482528285018101891015611a3c578687fd5b848184018284013793810184019590955250929593013593505050565b600060208284031215611a6a578081fd5b5035919050565b60008060408385031215611a83578182fd5b823591506118f6846020850161187c565b6000808354600180821660008114611ab35760018114611aca57611af9565b60ff198316865260028304607f1686019350611af9565b600283048786526020808720875b83811015611af15781548a820152908501908201611ad8565b505050860193505b509195945050505050565b60008251611b16818460208701611dd1565b9190910192915050565b6001600160a01b0391909116815260200190565b600060018060a01b0386168252846020830152608060408301528351806080840152611b678160a0850160208801611dd1565b921515606083015250601f91909101601f19160160a0019392505050565b6020808252825182820181905260009190848201906040850190845b81811015611bc65783516001600160a01b031683529284019291840191600101611ba1565b50909695505050505050565b901515815260200190565b918252602082015260400190565b6020808252600f908201526e21a7a72324a926a2a22fa2a92927a960891b604082015260600190565b6020808252601a908201527f4f574e45525f444f45535f4e4f545f45584953545f4552524f52000000000000604082015260600190565b6020808252601a908201527f5452414e53414354494f4e5f4e4545445f544f5f554e4c4f434b000000000000604082015260600190565b60208082526018908201527f5452414e53414354494f4e5f4558495354535f4552524f520000000000000000604082015260600190565b60208082526011908201527027a7262cafaba0a62622aa2fa2a92927a960791b604082015260600190565b6020808252601290820152712727aa2fa2ac22a1aaaa22a22fa2a92927a960711b604082015260600190565b60208082526012908201527127aba722a92fa2ac24a9aa29afa2a92927a960711b604082015260600190565b6020808252601390820152722727aa2fa1a7a72324a926a2a22fa2a92927a960691b604082015260600190565b6020808252600e908201526d2727aa2fa72aa6262fa2a92927a960911b604082015260600190565b60208082526017908201527f56414c49445f524551554952454d454e545f4552524f52000000000000000000604082015260600190565b90815260200190565b60005b83811015611dec578181015183820152602001611dd4565b83811115611dfb576000848401525b5050505056fea26469706673582212203d74ff7a7391bb0bef594d5f3bb61dffe44dc359928a4708db3053e543a82a4764736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "204:13524:16:-:0;;;325:5;296:34;;3577:1058;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3674:7;:14;3690:9;288:2;2862:10;:28;:66;;;;2918:10;2906:9;:22;2862:66;:96;;;-1:-1:-1;2944:14:16;;2862:96;:127;;;-1:-1:-1;2974:15:16;;2862:127;2845:188;;;3000:33;;-1:-1:-1;;;3000:33:16;;;;;;;;;;;;;;;;2845:188;3720:9:::1;3715:217;3739:7;:14;3735:1;:18;3715:217;;;3778:7;:19;3786:7;3794:1;3786:10;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;3778:19:16::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;3778:19:16;;::::1;;::::0;:47:::1;;;3823:1;-1:-1:-1::0;;;;;3801:24:16::1;:7;3809:1;3801:10;;;;;;;;;;;;;;-1:-1:-1::0;;;;;3801:24:16::1;;3778:47;3774:107;;;3845:21;;-1:-1:-1::0;;;3845:21:16::1;;;;;;;;3774:107;3917:4;3895:7;:19;3903:7;3911:1;3903:10;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;3895:19:16::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;3895:19:16;:26;;-1:-1:-1;;3895:26:16::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;3755:3:16::1;3715:217;;;-1:-1:-1::0;3942:16:16;;::::1;::::0;:6:::1;::::0;:16:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;3968:8:16::1;:20:::0;;;4070:141:::1;::::0;;;;::::1;::::0;;;4037:14:::1;::::0;4070:141;4122:36:::1;::::0;;;::::1;;;;::::0;;-1:-1:-1;;4122:36:16;;::::1;::::0;;;;;;4112:47;;4122:36:::1;4112:47:::0;;::::1;::::0;4070:141;;4195:1:::1;4070:141:::0;;::::1;::::0;;;4037:184;;::::1;::::0;;::::1;::::0;;;;;;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;;::::1;::::0;;;;4264:139;;;;::::1;::::0;;;4231:14:::1;::::0;4264:139;4316:33:::1;::::0;;;::::1;;;;::::0;;-1:-1:-1;;4316:33:16;;::::1;::::0;;;;;;4306:44;;4316:33:::1;4306:44:::0;;::::1;::::0;4264:139;;;;::::1;::::0;;;4231:182;;::::1;::::0;;::::1;::::0;;-1:-1:-1;4231:182:16;;;;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;;;;::::1;::::0;4456:162;;;;::::1;::::0;;;4423:14:::1;::::0;4456:162;4508:56:::1;::::0;;;::::1;;;;::::0;;-1:-1:-1;;4508:56:16;;::::1;::::0;;;;;;4498:67;;4508:56:::1;4498:67:::0;;::::1;::::0;4456:162;;;;::::1;::::0;;;;4423:205;;::::1;::::0;;::::1;::::0;;-1:-1:-1;4423:205:16;;;;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;;::::1;::::0;-1:-1:-1;204:13524:16;;-1:-1:-1;;;204:13524:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;204:13524:16;-1:-1:-1;;;;;204:13524:16;;;;;;;;;;;-1:-1:-1;204:13524:16;;;;;;;-1:-1:-1;204:13524:16;;;-1:-1:-1;204:13524:16;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;204:13524:16;;;;;;;;;:::o;5:134:-1:-;83:13;;-1:-1;;;;;6429:54;;6633:35;;6623:2;;6682:1;;6672:12;6623:2;68:71;;;;;1035:528;;;1192:2;1180:9;1171:7;1167:23;1163:32;1160:2;;;-1:-1;;1198:12;1160:2;1243:24;;-1:-1;;;;;1276:30;;;1273:2;;;-1:-1;;1309:12;1273:2;1411:6;1400:9;1396:22;292:3;285:4;277:6;273:17;269:27;259:2;;-1:-1;;300:12;259:2;340:6;334:13;320:27;;1287:18;5783:6;5780:30;5777:2;;;-1:-1;;5813:12;5777:2;5858:4;;;;5850:6;5846:17;362:80;5858:4;5846:17;5911:15;362:80;;;470:21;;;527:14;;;;502:17;;;607:27;;;;;604:36;-1:-1;601:2;;;-1:-1;;643:12;601:2;-1:-1;669:10;;663:217;688:6;685:1;682:13;663:217;;;768:48;812:3;800:10;768:48;;;756:61;;710:1;703:9;;;;;831:14;;;;859;;663:217;;;-1:-1;1515:22;;;;972:13;1329:99;;972:13;;-1:-1;;;;;;;1154:409;3359:381;-1:-1;;;1847:39;;1831:2;1905:12;;3548:192;3747:381;2548:34;2528:55;;-1:-1;;;2612:2;2603:12;;2596:28;2512:2;2643:12;;3936:192;4135:381;-1:-1;;;2946:36;;2930:2;3001:12;;4324:192;4523:416;4723:2;4737:47;;;2156:2;4708:18;;;6047:19;-1:-1;;;6087:14;;;2172:34;2225:12;;;4694:245;4946:416;5146:2;5160:47;;;3252:2;5131:18;;;6047:19;3288:25;6087:14;;;3268:46;3333:12;;;5117:245;5369:256;5431:2;5425:9;5457:17;;;-1:-1;;;;;5517:34;;5553:22;;;5514:62;5511:2;;;5589:1;;5579:12;5511:2;5431;5598:22;5409:216;;-1:-1;5409:216;;204:13524:16;;;;;;", + "deployedSourceMap": "204:13524:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3286:9;:13;3282:79;;3328:10;-1:-1:-1;;;;;3320:30:16;;3340:9;3320:30;;;;;;;;;;;;;;;3282:79;204:13524;;3158:9;:13;3154:79;;3200:10;-1:-1:-1;;;;;3192:30:16;;3212:9;3192:30;;;;;;;1216:23;;;;;;;;;;-1:-1:-1;1216:23:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5306:465;;;;;;;;;;-1:-1:-1;5306:465:16;;;;;;;;:::i;9958:301::-;;;;;;;;;;-1:-1:-1;9958:301:16;;;;;;;;:::i;1118:39::-;;;;;;;;;;-1:-1:-1;1118:39:16;;;;;;;;:::i;:::-;;;;;;;;1047:65;;;;;;;;;;-1:-1:-1;1047:65:16;;;;;;;;:::i;12379:340::-;;;;;;;;;;-1:-1:-1;12379:340:16;;;;;;;;:::i;:::-;;;;;;;;4892:284;;;;;;;;;;-1:-1:-1;4892:284:16;;;;;;;;:::i;1163:46::-;;;;;;;;;;-1:-1:-1;1163:46:16;;;;;;;;:::i;11270:375::-;;;;;;;;;;-1:-1:-1;11270:375:16;;;;;;;;:::i;1579:37::-;;;;;;;;;;-1:-1:-1;1579:37:16;;;;;;;;:::i;:::-;;;;;;;;;11843:263;;;;;;;;;;-1:-1:-1;11843:263:16;;;;;;;;:::i;7055:158::-;;;;;;;;;;-1:-1:-1;7055:158:16;;;;;;;;:::i;990:51::-;;;;;;;;;;-1:-1:-1;990:51:16;;;;;;;;:::i;:::-;;;;;;;;;;;12810:92;;;;;;;;;;;;;:::i;:::-;;;;;;;;13102:624;;;;;;;;;;-1:-1:-1;13102:624:16;;;;;;;;:::i;1274:31::-;;;;;;;;;;;;;:::i;6635:215::-;;;;;;;;;;-1:-1:-1;6635:215:16;;;;;;;;:::i;296:34::-;;;;;;;;;;;;;:::i;8146:654::-;;;;;;;;;;-1:-1:-1;8146:654:16;;;;;;;;:::i;4641:117::-;;;;;;;;;;;;;:::i;7490:543::-;;;;;;;;;;-1:-1:-1;7490:543:16;;;;;;;;:::i;246:44::-;;;;;;;;;;;;;:::i;1245:23::-;;;;;;;;;;;;;:::i;5976:481::-;;;;;;;;;;-1:-1:-1;5976:481:16;;;;;;;;:::i;10380:733::-;;;;;;;;;;-1:-1:-1;10380:733:16;;;;;;;;:::i;9525:302::-;;;;;;;;;;-1:-1:-1;9525:302:16;;;;;;;;:::i;1216:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1216:23:16;;-1:-1:-1;1216:23:16;:::o;5306:465::-;1659:10;1681:4;1659:27;1655:60;;1688:27;;-1:-1:-1;;;1688:27:16;;;;;;;;;;;;;;;;1655:60;-1:-1:-1;;;;;1922:14:16;::::1;;::::0;;;:7:::1;:14;::::0;;;;;5374:5;;1922:14:::1;;1917:49;;1938:28;;-1:-1:-1::0;;;1938:28:16::1;;;;;;;;1917:49;-1:-1:-1::0;;;;;5391:14:16;::::2;5408:5;5391:14:::0;;;:7:::2;:14;::::0;;;;:22;;-1:-1:-1;;5391:22:16::2;::::0;;5423:189:::2;5447:6;:13:::0;-1:-1:-1;;5447:17:16;5443:21;::::2;5423:189;;;5502:5;-1:-1:-1::0;;;;;5489:18:16::2;:6;5496:1;5489:9;;;;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;-1:-1:-1;;;;;5489:9:16::2;:18;5485:117;;;5539:6;5546:13:::0;;-1:-1:-1;;5546:17:16;;;5539:25;::::2;;;;;;::::0;;;::::2;::::0;;;::::2;::::0;5527:6:::2;:9:::0;;-1:-1:-1;;;;;5539:25:16;;::::2;::::0;5534:1;;5527:9;::::2;;;;;;;;;;;;;:37;;;;;-1:-1:-1::0;;;;;5527:37:16::2;;;;;-1:-1:-1::0;;;;;5527:37:16::2;;;;;;5582:5;;5485:117;5466:3;;5423:189;;;-1:-1:-1::0;5658:6:16::2;:13:::0;5647:8:::2;::::0;:24:::2;5643:87;;;5705:6;:13:::0;5687:32:::2;::::0;:17:::2;:32::i;:::-;5745:19;::::0;-1:-1:-1;;;;;5745:19:16;::::2;::::0;::::2;::::0;;;::::2;1725:1:::1;5306:465:::0;:::o;9958:301::-;10046:10;1922:14;;;;:7;:14;;;;;;;;1917:49;;1938:28;;-1:-1:-1;;;1938:28:16;;;;;;;;1917:49;2251:28:::1;::::0;;;:13:::1;:28;::::0;;;;;;;10091:10:::1;2251:35:::0;;;;;;;;;10076:13;;10091:10;2251:35:::1;;2246:67;;2288:25;;-1:-1:-1::0;;;2288:25:16::1;;;;;;;;2246:67;2559:27:::2;::::0;;;:12:::2;:27;::::0;;;;:36:::2;;::::0;10123:13;;2559:36:::2;;2555:70;;;2597:28;;-1:-1:-1::0;;;2597:28:16::2;;;;;;;;2555:70;10195:5:::3;10152:28:::0;;;:13:::3;:28;::::0;;;;;;;10181:10:::3;10152:40:::0;;;;;;;;:48;;-1:-1:-1;;10152:48:16::3;::::0;;10215:37;10166:13;;10215:37:::3;::::0;::::3;2323:1:::2;1976::::1;;9958:301:::0;;:::o;1118:39::-;;;;;;;;;;;;;;;:::o;1047:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12379:340::-;12484:13;;12513:200;12537:16;;12533:1;:20;12513:200;;;12579:7;:36;;;;-1:-1:-1;12591:15:16;;;;:12;:15;;;;;:24;;;;;12590:25;12579:36;12578:80;;;;12621:8;:36;;;;-1:-1:-1;12633:15:16;;;;:12;:15;;;;;:24;;;;;12621:36;12574:129;;;12687:1;12678:10;;;;12574:129;12555:3;;12513:200;;;;12379:340;;;;:::o;4892:284::-;1659:10;1681:4;1659:27;1655:60;;1688:27;;-1:-1:-1;;;1688:27:16;;;;;;;;1655:60;-1:-1:-1;;;;;1795:14:16;::::1;;::::0;;;:7:::1;:14;::::0;;;;;4987:5;;1795:14:::1;;1791:56;;;1811:36;;-1:-1:-1::0;;;1811:36:16::1;;;;;;;;1791:56;5010:5:::0;-1:-1:-1;;;;;2698:22:16;::::2;2694:52;;2722:24;;-1:-1:-1::0;;;2722:24:16::2;;;;;;;;2694:52;5042:6:::3;:13;;;;5058:1;5042:17;5061:8;;288:2;2862:10;:28;:66;;;;2918:10;2906:9;:22;2862:66;:96;;;-1:-1:-1::0;2944:14:16;;2862:96:::3;:127;;;-1:-1:-1::0;2974:15:16;;2862:127:::3;2845:188;;;3000:33;;-1:-1:-1::0;;;3000:33:16::3;;;;;;;;2845:188;-1:-1:-1::0;;;;;5085:14:16;::::4;;::::0;;;:7:::4;:14;::::0;;;;;:21;;-1:-1:-1;;5085:21:16::4;5102:4;5085:21:::0;;::::4;::::0;;;5116:6:::4;:18:::0;;;;::::4;::::0;;;;;::::4;::::0;;-1:-1:-1;;;;;;5116:18:16::4;::::0;::::4;::::0;;5149:20;::::4;::::0;5085:14;5149:20:::4;2756:1:::3;;1857::::2;1725::::1;4892:284:::0;:::o;1163:46::-;;;;;;;;;;;;;:::o;11270:375::-;11335:4;;;11379:237;11403:6;:13;11399:17;;11379:237;;;11441:28;;;;:13;:28;;;;;11470:6;:9;;11441:28;;;11477:1;;11470:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11470:9:16;11441:39;;;;;;;;;;;;;;;11437:88;;;11509:1;11500:10;;;;11437:88;11552:8;;11543:5;:17;11539:67;;11587:4;11580:11;;;;;;11539:67;11418:3;;11379:237;;;;11633:5;11626:12;;;11270:375;;;;:::o;1579:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1579:37:16;:::o;11843:263::-;11919:13;;11944:156;11968:6;:13;11964:17;;11944:156;;;12006:28;;;;:13;:28;;;;;12035:6;:9;;12006:28;;;12042:1;;12035:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12035:9:16;12006:39;;;;;;;;;;;;;;;12002:88;;;12074:1;12065:10;;;;12002:88;11983:3;;11944:156;;;;11843:263;;;:::o;7055:158::-;1659:10;1681:4;1659:27;1655:60;;1688:27;;-1:-1:-1;;;1688:27:16;;;;;;;;1655:60;7134:11:::1;:26:::0;;;7175:31:::1;::::0;::::1;::::0;::::1;::::0;7148:12;;7175:31:::1;;;;;;;;;;7055:158:::0;:::o;990:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;990:51:16;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;990:51:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;990:51:16;;;;;;;-1:-1:-1;;990:51:16;;;:::o;12810:92::-;12854:16;12889:6;12882:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12882:13:16;;;;;;;;;;;;;;;;;;;;;;;12810:92;;:::o;13102:624::-;13296:6;:13;13198:31;;;;13282:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13282:28:16;-1:-1:-1;13245:65:16;-1:-1:-1;13320:13:16;;13367:202;13383:6;:13;13379:17;;13367:202;;;13421:28;;;;:13;:28;;;;;13450:6;:9;;13421:28;;;13457:1;;13450:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13450:9:16;13421:39;;;;;;;;;;;;;;;13417:142;;;13507:6;13514:1;13507:9;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13507:9:16;13480:17;13498:5;13480:24;;;;;;;;;;;;;:36;-1:-1:-1;;;;;13480:36:16;;;-1:-1:-1;;;;;13480:36:16;;;;;13543:1;13534:10;;;;13417:142;13398:3;;13367:202;;;13610:5;13596:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13596:20:16;;13579:37;;13636:1;13632:5;;13627:93;13643:5;13639:1;:9;13627:93;;;13689:17;13707:1;13689:20;;;;;;;;;;;;;;13669:14;13684:1;13669:17;;;;;;;;-1:-1:-1;;;;;13669:40:16;;;:17;;;;;;;;;;;:40;13650:3;;13627:93;;;13102:624;;;;;;:::o;1274:31::-;;;;:::o;6635:215::-;1659:10;1681:4;1659:27;1655:60;;1688:27;;-1:-1:-1;;;1688:27:16;;;;;;;;1655:60;6740:6:::1;:13:::0;6755:9;288:2:::1;2862:28:::0;::::1;::::0;:66:::1;;;2918:10;2906:9;:22;2862:66;:96;;;-1:-1:-1::0;2944:14:16;;2862:96:::1;:127;;;-1:-1:-1::0;2974:15:16;;2862:127:::1;2845:188;;;3000:33;;-1:-1:-1::0;;;3000:33:16::1;;;;;;;;2845:188;6780:8:::2;:20:::0;;;6815:28:::2;::::0;::::2;::::0;::::2;::::0;6791:9;;6815:28:::2;;;;;;;;;;1725:1:::1;;6635:215:::0;:::o;296:34::-;;;;:::o;8146:654::-;8232:10;1922:14;;;;:7;:14;;;;;;;;1917:49;;1938:28;;-1:-1:-1;;;1938:28:16;;;;;;;;1917:49;2105:1:::1;2054:27:::0;;;:12:::1;:27;::::0;;;;:39;8270:13;;-1:-1:-1;;;;;2054:39:16::1;2050:105;;2121:34;;-1:-1:-1::0;;;2121:34:16::1;;;;;;;;2050:105;2411:28:::2;::::0;;;:13:::2;:28;::::0;;;;;;;8321:10:::2;2411:35:::0;;;;;;;;;8306:13;;8321:10;2411:35:::2;;2407:70;;;2448:29;;-1:-1:-1::0;;;2448:29:16::2;;;;;;;;2407:70;8347:28:::3;::::0;;;:13:::3;:28;::::0;;;;;;;8376:10:::3;8347:40:::0;;;;;;;;:47;;-1:-1:-1;;8347:47:16::3;8390:4;8347:47;::::0;;8409:39;8361:13;;8409:39:::3;::::0;::::3;8476:26;8488:13;8476:11;:26::i;:::-;:73;;;;-1:-1:-1::0;8518:26:16::3;::::0;;;:11:::3;:26;::::0;;;;;:31;8476:73:::3;:120;;;;;8566:30;8582:13;8566:15;:30::i;:::-;8565:31;8476:120;8459:335;;;8621:18;8660:11:::0;;8685:26;;;:11:::3;:26;::::0;;;;;;8642:15:::3;:29:::0;;::::3;8685:39:::0;;;;8743:40;;8697:13;;8743:40:::3;::::0;::::3;::::0;8642:29;;8743:40:::3;;;;;;;;;;8459:335;;2165:1:::2;;1976::::1;8146:654:::0;;:::o;4641:117::-;4730:14;:21;4641:117;:::o;7490:543::-;7625:10;7667:21;1922:14;;;:7;:14;;;;;;7667:21;;7625:10;1922:14;;1917:49;;1938:28;;-1:-1:-1;;;1938:28:16;;;;;;;;1917:49;7645:11;-1:-1:-1;;;;;2698:22:16;::::1;2694:52;;2722:24;;-1:-1:-1::0;;;2722:24:16::1;;;;;;;;2694:52;7716:16:::2;;7700:32;;7772:140;;;;;;;;7811:11;-1:-1:-1::0;;;;;7772:140:16::2;;;;;7843:5;7772:140;;;;7868:4;;7772:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;::::0;;;-1:-1:-1;7772:140:16;;;-1:-1:-1;;;7772:140:16::2;::::0;;::::2;::::0;;;7742:27;;;7772:140;7742:27;;;;;;;;:170;;;;-1:-1:-1;;;;;;7742:170:16::2;-1:-1:-1::0;;;;;7742:170:16;;::::2;;::::0;;;;::::2;::::0;;;::::2;::::0;;;;;;::::2;::::0;;;:27;;:170:::2;::::0;::::2;::::0;::::2;::::0;;;::::2;::::0;::::2;:::i;:::-;-1:-1:-1::0;7742:170:16::2;::::0;;;::::2;::::0;::::2;::::0;;::::2;::::0;;-1:-1:-1;;7742:170:16::2;::::0;::::2;;::::0;;;::::2;::::0;;7922:16:::2;:21:::0;;-1:-1:-1;7922:21:16::2;::::0;;7958:25:::2;::::0;7969:13;;7958:25:::2;::::0;-1:-1:-1;;7958:25:16::2;7993:33;8012:13;7993:18;:33::i;:::-;1976:1:::1;7490:543:::0;;;;;;;:::o;246:44::-;288:2;246:44;:::o;1245:23::-;;;;:::o;5976:481::-;1659:10;1681:4;1659:27;1655:60;;1688:27;;-1:-1:-1;;;1688:27:16;;;;;;;;1655:60;-1:-1:-1;;;;;1922:14:16;::::1;;::::0;;;:7:::1;:14;::::0;;;;;6087:5;;1922:14:::1;;1917:49;;1938:28;;-1:-1:-1::0;;;1938:28:16::1;;;;;;;;1917:49;-1:-1:-1::0;;;;;1795:14:16;::::2;;::::0;;;:7:::2;:14;::::0;;;;;6120:8;;1795:14:::2;;1791:56;;;1811:36;;-1:-1:-1::0;;;1811:36:16::2;;;;;;;;1791:56;6149:9:::3;6144:168;6168:6;:13:::0;6164:17;::::3;6144:168;;;6219:5;-1:-1:-1::0;;;;;6206:18:16::3;:6;6213:1;6206:9;;;;;;;;;::::0;;;::::3;::::0;;;::::3;::::0;-1:-1:-1;;;;;6206:9:16::3;:18;6202:100;;;6256:8;6244:6;6251:1;6244:9;;;;;;;;;;;;;;;;:20;;;;;-1:-1:-1::0;;;;;6244:20:16::3;;;;;-1:-1:-1::0;;;;;6244:20:16::3;;;;;;6282:5;;6202:100;6183:3;;6144:168;;;-1:-1:-1::0;;;;;;6322:14:16;;::::3;6339:5;6322:14:::0;;;:7:::3;:14;::::0;;;;;:22;;-1:-1:-1;;6322:22:16;;::::3;::::0;;;6354:17;;::::3;::::0;;;;;:24;;;;::::3;6322:22:::0;6354:24:::3;::::0;;;6393:19;;6322:14;;6393:19:::3;::::0;::::3;6427:23;::::0;-1:-1:-1;;;;;6427:23:16;::::3;::::0;::::3;::::0;;;::::3;1976:1:::2;1725::::1;5976:481:::0;;:::o;10380:733::-;10468:10;1922:14;;;;:7;:14;;;;;;;;1917:49;;1938:28;;-1:-1:-1;;;1938:28:16;;;;;;;;1917:49;2559:27:::1;::::0;;;:12:::1;:27;::::0;;;;:36:::1;;::::0;10500:13;;2559:36:::1;;2555:70;;;2597:28;;-1:-1:-1::0;;;2597:28:16::1;;;;;;;;2555:70;10556:26:::2;::::0;;;:11:::2;:26;::::0;;;;;10537:15:::2;:45;;10529:84;;;;-1:-1:-1::0;;;10529:84:16::2;;;;;;;;;10628:26;10640:13;10628:11;:26::i;:::-;10624:483;;;10670:31;10704:27:::0;;;:12:::2;:27;::::0;;;;;;;10745:20:::2;::::0;::::2;:27:::0;;-1:-1:-1;;10745:27:16::2;::::0;::::2;::::0;;10805:23;;10841:17;;::::2;::::0;10805:102;;10704:27;;10670:31;-1:-1:-1;;;;;10805:23:16::2;::::0;10841:17;10805:102:::2;::::0;10877:16:::2;::::0;::::2;::::0;10805:102:::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10786:121;;;10925:7;10921:176;;;10939:24;::::0;10949:13;;10939:24:::2;::::0;;;::::2;10921:176;;;11005:31;::::0;11022:13;;11005:31:::2;::::0;;;::::2;-1:-1:-1::0;11054:20:16::2;;:28:::0;;-1:-1:-1;;11054:28:16::2;::::0;;10624:483:::2;1976:1:::1;10380:733:::0;;:::o;9525:302::-;1659:10;1681:4;1659:27;1655:60;;1688:27;;-1:-1:-1;;;1688:27:16;;;;;;;;1655:60;9630:14:::1;9663:147;;;;;;;;9732:8;9715:26;;;;;;;;;;;::::0;;-1:-1:-1;;9715:26:16;;::::1;::::0;;;;;;9705:37;;9715:26:::1;9705:37:::0;;::::1;::::0;9663:147;;;;::::1;::::0;;;;9630:190;;::::1;::::0;;::::1;::::0;;-1:-1:-1;9630:190:16;;;;;;;;;::::1;::::0;;::::1;;::::0;;;;::::1;::::0;;::::1;::::0;-1:-1:-1;9525:302:16:o;8806:713::-;8877:4;8913:27;;;:12;:27;;;;;;;;:32;;;;8893:52;;;;;;;;;;-1:-1:-1;;8893:52:16;;;;;;;;;;;;;;;;;;;;;;;;:17;;:52;8913:32;;8893:52;;;8913:32;8893:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8893:52:16;;-1:-1:-1;8961:9:16;;-1:-1:-1;;;;8956:534:16;8980:14;:21;8976:25;;8956:534;;;9022:34;;:::i;:::-;9059:14;9074:1;9059:17;;;;;;;;;;;;;;;;;;9022:54;;;;;;;;;;;;;;;;;;;;;;;;;;;9127:13;:30;;;9160:1;9127:34;9112:4;:11;:49;:85;;;;;9196:1;9181:4;:11;:16;;9112:85;:141;;;;;9246:4;9251:1;9246:7;;;;;;;;;;;;;9217:22;;;:25;;;-1:-1:-1;;;;;;9217:36:16;;;9246:7;;9217:36;9112:141;:197;;;;;9302:4;9307:1;9302:7;;;;;;;;;;;;;9273:22;;9296:1;9273:25;;;-1:-1:-1;;;;;;9273:36:16;;;9302:7;;9273:36;9112:197;:253;;;;;9358:4;9363:1;9358:7;;;;;;;;;;;;;9329:22;;9352:1;9329:25;;;-1:-1:-1;;;;;;9329:36:16;;;9358:7;;9329:36;9112:253;:309;;;;;9414:4;9419:1;9414:7;;;;;;;;;;;;;9385:22;;9408:1;9385:25;;;-1:-1:-1;;;;;;9385:36:16;;;9414:7;;9385:36;9112:309;9091:389;;;9461:4;9454:11;;;;;;;9091:389;-1:-1:-1;9003:3:16;;8956:534;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;5:130;72:20;;-1:-1;;;;;19741:54;;20481:35;;20471:2;;20530:1;;20520:12;20471:2;57:78;;;;;142:124;206:20;;19574:13;;19567:21;20602:32;;20592:2;;20648:1;;20638:12;1219:241;;1323:2;1311:9;1302:7;1298:23;1294:32;1291:2;;;-1:-1;;1329:12;1291:2;1391:53;1436:7;1412:22;1391:53;;;1381:63;1285:175;-1:-1;;;1285:175;1467:366;;;1588:2;1576:9;1567:7;1563:23;1559:32;1556:2;;;-1:-1;;1594:12;1556:2;1656:53;1701:7;1677:22;1656:53;;;1646:63;;1764:53;1809:7;1746:2;1789:9;1785:22;1764:53;;;1754:63;;1550:283;;;;;;1840:615;;;;;1997:2;1985:9;1976:7;1972:23;1968:32;1965:2;;;-1:-1;;2003:12;1965:2;72:20;;-1:-1;;;;;19741:54;;20481:35;;20471:2;;-1:-1;;20520:12;20471:2;2055:63;-1:-1;2155:2;2194:22;;1149:20;;-1:-1;2291:2;2276:18;;2263:32;2315:18;2304:30;;;2301:2;;;-1:-1;;2337:12;2301:2;2422:6;2411:9;2407:22;401:3;394:4;386:6;382:17;378:27;368:2;;-1:-1;;409:12;368:2;452:6;439:20;429:30;;2315:18;471:6;468:30;465:2;;;-1:-1;;501:12;465:2;596:3;2155:2;576:17;537:6;562:32;;559:41;556:2;;;-1:-1;;603:12;556:2;1959:496;;;;-1:-1;;2155:2;533:17;;;;-1:-1;;;1959:496;2462:354;;;2577:2;2565:9;2556:7;2552:23;2548:32;2545:2;;;-1:-1;;2583:12;2545:2;2645:50;2687:7;2663:22;2645:50;;;2635:60;;2750:50;2792:7;2732:2;2772:9;2768:22;2750:50;;2823:472;;;2954:2;2942:9;2933:7;2929:23;2925:32;2922:2;;;-1:-1;;2960:12;2922:2;3018:17;3005:31;3056:18;;3048:6;3045:30;3042:2;;;-1:-1;;3078:12;3042:2;3154:6;3143:9;3139:22;734:3;727:4;719:6;715:17;711:27;701:2;;-1:-1;;742:12;701:2;789:6;776:20;762:34;;3056:18;17542:6;17539:30;17536:2;;;-1:-1;;17572:12;17536:2;2954;17199:9;17713:4;17645:9;17626:17;;-1:-1;;17622:33;17231:17;;;;17291:34;;;17327:22;;;17288:62;17285:2;;;-1:-1;;17353:12;17285:2;2954;17372:22;882:21;;;982:16;;;;;979:25;-1:-1;976:2;;;-1:-1;;1007:12;976:2;19968:6;17713:4;924:6;920:17;17713:4;958:5;954:16;19945:30;20006:16;;;;;19999:27;;;;-1:-1;958:5;;3247:22;;1149:20;;-1:-1;;;2916:379;3302:241;;3406:2;3394:9;3385:7;3381:23;3377:32;3374:2;;;-1:-1;;3412:12;3374:2;-1:-1;1149:20;;3368:175;-1:-1;3368:175;3550:366;;;3671:2;3659:9;3650:7;3646:23;3642:32;3639:2;;;-1:-1;;3677:12;3639:2;3760:22;1149:20;3729:63;;3847:53;3892:7;3829:2;3872:9;3868:22;3847:53;;10332:265;;-1:-1;5803:5;5797:12;5837:1;;5826:9;5822:17;5850:1;5845:267;;;;6123:1;6118:423;;;;5815:726;;5845:267;-1:-1;;6049:25;;6037:38;;5919:1;5904:17;;5923:4;5900:28;6089:16;;;-1:-1;5845:267;;6118:423;6187:1;6176:9;6172:17;17997:3;-1:-1;17987:14;18029:4;;-1:-1;18016:18;-1:-1;6374:130;6388:6;6385:1;6382:13;6374:130;;;6447:14;;6434:11;;;6427:35;6481:15;;;;6403:12;;6374:130;;;-1:-1;;;6518:16;;;-1:-1;5815:726;-1:-1;10582:10;;10463:134;-1:-1;;;;;10463:134;10604:275;;6718:5;18160:12;6830:52;6875:6;6870:3;6863:4;6856:5;6852:16;6830:52;;;6894:16;;;;;10740:139;-1:-1;;10740:139;10886:222;-1:-1;;;;;19741:54;;;;4166:37;;11013:2;10998:18;;10984:124;11115:628;;19752:42;;;;;4196:5;19741:54;4173:3;4166:37;5276:5;11503:2;11492:9;11488:18;5246:37;11338:3;11540:2;11529:9;11525:18;11518:48;5437:5;18160:12;18704:6;11338:3;11327:9;11323:19;18692;5530:52;5575:6;18732:14;11327:9;18732:14;11503:2;5556:5;5552:16;5530:52;;;19574:13;;19567:21;11729:2;11714:18;;5129:34;-1:-1;17645:9;20385:14;;;;-1:-1;;20381:28;5594:39;18732:14;5594:39;;11309:434;-1:-1;;;11309:434;11750:370;11927:2;11941:47;;;18160:12;;11912:18;;;18692:19;;;11750:370;;11927:2;17850:14;;;;18732;;;;11750:370;4774:260;4799:6;4796:1;4793:13;4774:260;;;4860:13;;-1:-1;;;;;19741:54;4166:37;;18547:14;;;;4077;;;;19752:42;4814:9;4774:260;;;-1:-1;11994:116;;11898:222;-1:-1;;;;;;11898:222;12127:210;19574:13;;19567:21;5129:34;;12248:2;12233:18;;12219:118;12344:333;5246:37;;;12663:2;12648:18;;5246:37;12499:2;12484:18;;12470:207;12684:416;12884:2;12898:47;;;7147:2;12869:18;;;18692:19;-1:-1;;;18732:14;;;7163:38;7220:12;;;12855:245;13107:416;13307:2;13321:47;;;7471:2;13292:18;;;18692:19;7507:28;18732:14;;;7487:49;7555:12;;;13278:245;13530:416;13730:2;13744:47;;;7806:2;13715:18;;;18692:19;7842:28;18732:14;;;7822:49;7890:12;;;13701:245;13953:416;14153:2;14167:47;;;8141:2;14138:18;;;18692:19;8177:26;18732:14;;;8157:47;8223:12;;;14124:245;14376:416;14576:2;14590:47;;;8474:2;14561:18;;;18692:19;-1:-1;;;18732:14;;;8490:40;8549:12;;;14547:245;14799:416;14999:2;15013:47;;;8800:2;14984:18;;;18692:19;-1:-1;;;18732:14;;;8816:41;8876:12;;;14970:245;15222:416;15422:2;15436:47;;;9127:2;15407:18;;;18692:19;-1:-1;;;18732:14;;;9143:41;9203:12;;;15393:245;15645:416;15845:2;15859:47;;;9454:2;15830:18;;;18692:19;-1:-1;;;18732:14;;;9470:42;9531:12;;;15816:245;16068:416;16268:2;16282:47;;;9782:2;16253:18;;;18692:19;-1:-1;;;18732:14;;;9798:37;9854:12;;;16239:245;16491:416;16691:2;16705:47;;;10105:2;16676:18;;;18692:19;10141:25;18732:14;;;10121:46;10186:12;;;16662:245;16914:222;5246:37;;;17041:2;17026:18;;17012:124;20041:268;20106:1;20113:101;20127:6;20124:1;20121:13;20113:101;;;20194:11;;;20188:18;20175:11;;;20168:39;20149:2;20142:10;20113:101;;;20229:6;20226:1;20223:13;20220:2;;;20106:1;20285:6;20280:3;20276:16;20269:27;20220:2;;20090:219;;;", + "source": "/**\n *Submitted for verification at Bscscan.com on 2020-09-25\n */\n\n/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\ncontract MultiSigWalletWithTimelock {\n uint256 public constant MAX_OWNER_COUNT = 50;\n uint256 public lockSeconds = 86400;\n\n event Confirmation(address indexed sender, uint256 indexed transactionId);\n event Revocation(address indexed sender, uint256 indexed transactionId);\n event Submission(uint256 indexed transactionId);\n event Execution(uint256 indexed transactionId);\n event ExecutionFailure(uint256 indexed transactionId);\n event Deposit(address indexed sender, uint256 value);\n event OwnerAddition(address indexed owner);\n event OwnerRemoval(address indexed owner);\n event RequirementChange(uint256 required);\n event UnlockTimeSet(uint256 indexed transactionId, uint256 confirmationTime);\n event LockSecondsChange(uint256 lockSeconds);\n\n mapping(uint256 => Transaction) public transactions;\n mapping(uint256 => mapping(address => bool)) public confirmations;\n mapping(address => bool) public isOwner;\n mapping(uint256 => uint256) public unlockTimes;\n\n address[] public owners;\n uint256 public required;\n uint256 public transactionCount;\n\n struct Transaction {\n address destination;\n uint256 value;\n bytes data;\n bool executed;\n }\n\n struct EmergencyCall {\n bytes32 selector;\n uint256 paramsBytesCount;\n }\n\n // Functions bypass the time lock process\n EmergencyCall[] public emergencyCalls;\n\n modifier onlyWallet() {\n if (msg.sender != address(this)) revert(\"ONLY_WALLET_ERROR\");\n _;\n }\n\n modifier ownerDoesNotExist(address owner) {\n if (isOwner[owner]) revert(\"OWNER_DOES_NOT_EXIST_ERROR\");\n _;\n }\n\n modifier ownerExists(address owner) {\n if (!isOwner[owner]) revert(\"OWNER_EXISTS_ERROR\");\n _;\n }\n\n modifier transactionExists(uint256 transactionId) {\n if (transactions[transactionId].destination == address(0))\n revert(\"TRANSACTION_EXISTS_ERROR\");\n _;\n }\n\n modifier confirmed(uint256 transactionId, address owner) {\n if (!confirmations[transactionId][owner]) revert(\"CONFIRMED_ERROR\");\n _;\n }\n\n modifier notConfirmed(uint256 transactionId, address owner) {\n if (confirmations[transactionId][owner]) revert(\"NOT_CONFIRMED_ERROR\");\n _;\n }\n\n modifier notExecuted(uint256 transactionId) {\n if (transactions[transactionId].executed) revert(\"NOT_EXECUTED_ERROR\");\n _;\n }\n\n modifier notNull(address _address) {\n if (_address == address(0)) revert(\"NOT_NULL_ERROR\");\n _;\n }\n\n modifier validRequirement(uint256 ownerCount, uint256 _required) {\n if (\n ownerCount > MAX_OWNER_COUNT ||\n _required > ownerCount ||\n _required == 0 ||\n ownerCount == 0\n ) revert(\"VALID_REQUIREMENT_ERROR\");\n _;\n }\n\n /** @dev Fallback function allows to deposit ether. */\n fallback() external payable {\n if (msg.value > 0) {\n emit Deposit(msg.sender, msg.value);\n }\n }\n\n receive() external payable {\n if (msg.value > 0) {\n emit Deposit(msg.sender, msg.value);\n }\n }\n\n /** @dev Contract constructor sets initial owners and required number of confirmations.\n * @param _owners List of initial owners.\n * @param _required Number of required confirmations.\n */\n constructor(address[] memory _owners, uint256 _required)\n public\n validRequirement(_owners.length, _required)\n {\n for (uint256 i = 0; i < _owners.length; i++) {\n if (isOwner[_owners[i]] || _owners[i] == address(0)) {\n revert(\"OWNER_ERROR\");\n }\n\n isOwner[_owners[i]] = true;\n }\n\n owners = _owners;\n required = _required;\n\n // initialzie Emergency calls\n emergencyCalls.push(\n EmergencyCall({\n selector: keccak256(abi.encodePacked(\"claimOwnership()\")),\n paramsBytesCount: 0\n })\n );\n emergencyCalls.push(\n EmergencyCall({\n selector: keccak256(abi.encodePacked(\"setK(uint256)\")),\n paramsBytesCount: 64\n })\n );\n emergencyCalls.push(\n EmergencyCall({\n selector: keccak256(abi.encodePacked(\"setLiquidityProviderFeeRate(uint256)\")),\n paramsBytesCount: 64\n })\n );\n }\n\n function getEmergencyCallsCount() external view returns (uint256 count) {\n return emergencyCalls.length;\n }\n\n /** @dev Allows to add a new owner. Transaction has to be sent by wallet.\n * @param owner Address of new owner.\n */\n function addOwner(address owner)\n external\n onlyWallet\n ownerDoesNotExist(owner)\n notNull(owner)\n validRequirement(owners.length + 1, required)\n {\n isOwner[owner] = true;\n owners.push(owner);\n emit OwnerAddition(owner);\n }\n\n /** @dev Allows to remove an owner. Transaction has to be sent by wallet.\n * @param owner Address of owner.\n */\n function removeOwner(address owner) external onlyWallet ownerExists(owner) {\n isOwner[owner] = false;\n for (uint256 i = 0; i < owners.length - 1; i++) {\n if (owners[i] == owner) {\n owners[i] = owners[owners.length - 1];\n break;\n }\n }\n\n owners.pop;\n\n if (required > owners.length) {\n changeRequirement(owners.length);\n }\n\n emit OwnerRemoval(owner);\n }\n\n /** @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.\n * @param owner Address of owner to be replaced.\n * @param owner Address of new owner.\n */\n function replaceOwner(address owner, address newOwner)\n external\n onlyWallet\n ownerExists(owner)\n ownerDoesNotExist(newOwner)\n {\n for (uint256 i = 0; i < owners.length; i++) {\n if (owners[i] == owner) {\n owners[i] = newOwner;\n break;\n }\n }\n\n isOwner[owner] = false;\n isOwner[newOwner] = true;\n emit OwnerRemoval(owner);\n emit OwnerAddition(newOwner);\n }\n\n /** @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n * @param _required Number of required confirmations.\n */\n function changeRequirement(uint256 _required)\n public\n onlyWallet\n validRequirement(owners.length, _required)\n {\n required = _required;\n emit RequirementChange(_required);\n }\n\n /** @dev Changes the duration of the time lock for transactions.\n * @param _lockSeconds Duration needed after a transaction is confirmed and before it becomes executable, in seconds.\n */\n function changeLockSeconds(uint256 _lockSeconds) external onlyWallet {\n lockSeconds = _lockSeconds;\n emit LockSecondsChange(_lockSeconds);\n }\n\n /** @dev Allows an owner to submit and confirm a transaction.\n * @param destination Transaction target address.\n * @param value Transaction ether value.\n * @param data Transaction data payload.\n * @return transactionId Returns transaction ID.\n */\n function submitTransaction(\n address destination,\n uint256 value,\n bytes calldata data\n ) external ownerExists(msg.sender) notNull(destination) returns (uint256 transactionId) {\n transactionId = transactionCount;\n transactions[transactionId] = Transaction({\n destination: destination,\n value: value,\n data: data,\n executed: false\n });\n transactionCount += 1;\n emit Submission(transactionId);\n confirmTransaction(transactionId);\n }\n\n /** @dev Allows an owner to confirm a transaction.\n * @param transactionId Transaction ID.\n */\n function confirmTransaction(uint256 transactionId)\n public\n ownerExists(msg.sender)\n transactionExists(transactionId)\n notConfirmed(transactionId, msg.sender)\n {\n confirmations[transactionId][msg.sender] = true;\n emit Confirmation(msg.sender, transactionId);\n\n if (\n isConfirmed(transactionId) &&\n unlockTimes[transactionId] == 0 &&\n !isEmergencyCall(transactionId)\n ) {\n uint256 unlockTime = block.timestamp + lockSeconds;\n unlockTimes[transactionId] = unlockTime;\n emit UnlockTimeSet(transactionId, unlockTime);\n }\n }\n\n function isEmergencyCall(uint256 transactionId) internal view returns (bool) {\n bytes memory data = transactions[transactionId].data;\n\n for (uint256 i = 0; i < emergencyCalls.length; i++) {\n EmergencyCall memory emergencyCall = emergencyCalls[i];\n\n if (\n data.length == emergencyCall.paramsBytesCount + 4 &&\n data.length >= 4 &&\n emergencyCall.selector[0] == data[0] &&\n emergencyCall.selector[1] == data[1] &&\n emergencyCall.selector[2] == data[2] &&\n emergencyCall.selector[3] == data[3]\n ) {\n return true;\n }\n }\n\n return false;\n }\n\n function addEmergencyCall(string memory funcName, uint256 _paramsBytesCount) public onlyWallet {\n emergencyCalls.push(\n EmergencyCall({\n selector: keccak256(abi.encodePacked(funcName)),\n paramsBytesCount: _paramsBytesCount\n })\n );\n }\n\n /** @dev Allows an owner to revoke a confirmation for a transaction.\n * @param transactionId Transaction ID.\n */\n function revokeConfirmation(uint256 transactionId)\n external\n ownerExists(msg.sender)\n confirmed(transactionId, msg.sender)\n notExecuted(transactionId)\n {\n confirmations[transactionId][msg.sender] = false;\n emit Revocation(msg.sender, transactionId);\n }\n\n /** @dev Allows anyone to execute a confirmed transaction.\n * @param transactionId Transaction ID.\n */\n function executeTransaction(uint256 transactionId)\n external\n ownerExists(msg.sender)\n notExecuted(transactionId)\n {\n require(block.timestamp >= unlockTimes[transactionId], \"TRANSACTION_NEED_TO_UNLOCK\");\n\n if (isConfirmed(transactionId)) {\n Transaction storage transaction = transactions[transactionId];\n transaction.executed = true;\n (bool success, ) = transaction.destination.call{value: transaction.value}(\n transaction.data\n );\n if (success) emit Execution(transactionId);\n else {\n emit ExecutionFailure(transactionId);\n transaction.executed = false;\n }\n }\n }\n\n /** @dev Returns the confirmation status of a transaction.\n * @param transactionId Transaction ID.\n * @return Confirmation status.\n */\n function isConfirmed(uint256 transactionId) public view returns (bool) {\n uint256 count = 0;\n\n for (uint256 i = 0; i < owners.length; i++) {\n if (confirmations[transactionId][owners[i]]) {\n count += 1;\n }\n\n if (count >= required) {\n return true;\n }\n }\n\n return false;\n }\n\n /* Web3 call functions */\n\n /** @dev Returns number of confirmations of a transaction.\n * @param transactionId Transaction ID.\n * @return count Number of confirmations.\n */\n function getConfirmationCount(uint256 transactionId) external view returns (uint256 count) {\n for (uint256 i = 0; i < owners.length; i++) {\n if (confirmations[transactionId][owners[i]]) {\n count += 1;\n }\n }\n }\n\n /** @dev Returns total number of transactions after filers are applied.\n * @param pending Include pending transactions.\n * @param executed Include executed transactions.\n * @return count Total number of transactions after filters are applied.\n */\n function getTransactionCount(bool pending, bool executed)\n external\n view\n returns (uint256 count)\n {\n for (uint256 i = 0; i < transactionCount; i++) {\n if ((pending && !transactions[i].executed) || (executed && transactions[i].executed)) {\n count += 1;\n }\n }\n }\n\n /** @dev Returns list of owners.\n * @return List of owner addresses.\n */\n function getOwners() external view returns (address[] memory) {\n return owners;\n }\n\n /** @dev Returns array with owner addresses, which confirmed transaction.\n * @param transactionId Transaction ID.\n * @return _confirmations Returns array of owner addresses.\n */\n function getConfirmations(uint256 transactionId)\n external\n view\n returns (address[] memory _confirmations)\n {\n address[] memory confirmationsTemp = new address[](owners.length);\n uint256 count = 0;\n uint256 i;\n\n for (i = 0; i < owners.length; i++) {\n if (confirmations[transactionId][owners[i]]) {\n confirmationsTemp[count] = owners[i];\n count += 1;\n }\n }\n\n _confirmations = new address[](count);\n\n for (i = 0; i < count; i++) {\n _confirmations[i] = confirmationsTemp[i];\n }\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MultiSig.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MultiSig.sol", + "exportedSymbols": { + "MultiSigWalletWithTimelock": [ + 3385 + ] + }, + "id": 3386, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2199, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "145:22:16" + }, + { + "id": 2200, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "168:33:16" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3385, + "linearizedBaseContracts": [ + 3385 + ], + "name": "MultiSigWalletWithTimelock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "d74f8edd", + "id": 2203, + "mutability": "constant", + "name": "MAX_OWNER_COUNT", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "246:44:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "246:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3530", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "288:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "bfa6fddb", + "id": 2206, + "mutability": "mutable", + "name": "lockSeconds", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "296:34:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2204, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "296:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3836343030", + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "325:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "86400" + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 2212, + "name": "Confirmation", + "nodeType": "EventDefinition", + "parameters": { + "id": 2211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2208, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2212, + "src": "356:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "356:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2210, + "indexed": true, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2212, + "src": "380:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "380:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "355:55:16" + }, + "src": "337:74:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2218, + "name": "Revocation", + "nodeType": "EventDefinition", + "parameters": { + "id": 2217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2214, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2218, + "src": "433:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "433:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2216, + "indexed": true, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2218, + "src": "457:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "457:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "432:55:16" + }, + "src": "416:72:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2222, + "name": "Submission", + "nodeType": "EventDefinition", + "parameters": { + "id": 2221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2220, + "indexed": true, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2222, + "src": "510:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "510:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "509:31:16" + }, + "src": "493:48:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2226, + "name": "Execution", + "nodeType": "EventDefinition", + "parameters": { + "id": 2225, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2224, + "indexed": true, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2226, + "src": "562:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "562:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "561:31:16" + }, + "src": "546:47:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2230, + "name": "ExecutionFailure", + "nodeType": "EventDefinition", + "parameters": { + "id": 2229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2228, + "indexed": true, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2230, + "src": "621:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "621:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "620:31:16" + }, + "src": "598:54:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2236, + "name": "Deposit", + "nodeType": "EventDefinition", + "parameters": { + "id": 2235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2232, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2236, + "src": "671:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2231, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "671:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2234, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2236, + "src": "695:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "695:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "670:39:16" + }, + "src": "657:53:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2240, + "name": "OwnerAddition", + "nodeType": "EventDefinition", + "parameters": { + "id": 2239, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2238, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2240, + "src": "735:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "735:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "734:23:16" + }, + "src": "715:43:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2244, + "name": "OwnerRemoval", + "nodeType": "EventDefinition", + "parameters": { + "id": 2243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2242, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2244, + "src": "782:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2241, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "782:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "781:23:16" + }, + "src": "763:42:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2248, + "name": "RequirementChange", + "nodeType": "EventDefinition", + "parameters": { + "id": 2247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2246, + "indexed": false, + "mutability": "mutable", + "name": "required", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2248, + "src": "834:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "834:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "833:18:16" + }, + "src": "810:42:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2254, + "name": "UnlockTimeSet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2250, + "indexed": true, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2254, + "src": "877:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2249, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "877:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2252, + "indexed": false, + "mutability": "mutable", + "name": "confirmationTime", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2254, + "src": "908:24:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "908:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "876:57:16" + }, + "src": "857:77:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2258, + "name": "LockSecondsChange", + "nodeType": "EventDefinition", + "parameters": { + "id": 2257, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2256, + "indexed": false, + "mutability": "mutable", + "name": "lockSeconds", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2258, + "src": "963:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "962:21:16" + }, + "src": "939:45:16" + }, + { + "constant": false, + "functionSelector": "9ace38c2", + "id": 2262, + "mutability": "mutable", + "name": "transactions", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "990:51:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction)" + }, + "typeName": { + "id": 2261, + "keyType": { + "id": 2259, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "998:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "990:31:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction)" + }, + "valueType": { + "contractScope": null, + "id": 2260, + "name": "Transaction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2292, + "src": "1009:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3411c81c", + "id": 2268, + "mutability": "mutable", + "name": "confirmations", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1047:65:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + }, + "typeName": { + "id": 2267, + "keyType": { + "id": 2263, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1055:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1047:44:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + }, + "valueType": { + "id": 2266, + "keyType": { + "id": 2264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1074:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1066:24:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2265, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1085:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "2f54bf6e", + "id": 2272, + "mutability": "mutable", + "name": "isOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1118:39:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 2271, + "keyType": { + "id": 2269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1126:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1118:24:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2270, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1137:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "76ac947a", + "id": 2276, + "mutability": "mutable", + "name": "unlockTimes", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1163:46:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 2275, + "keyType": { + "id": 2273, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1171:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1163:27:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 2274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1182:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "025e7c27", + "id": 2279, + "mutability": "mutable", + "name": "owners", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1216:23:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1216:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2278, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1216:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dc8452cd", + "id": 2281, + "mutability": "mutable", + "name": "required", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1245:23:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2280, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1245:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "b77bf600", + "id": 2283, + "mutability": "mutable", + "name": "transactionCount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1274:31:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1274:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "canonicalName": "MultiSigWalletWithTimelock.Transaction", + "id": 2292, + "members": [ + { + "constant": false, + "id": 2285, + "mutability": "mutable", + "name": "destination", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2292, + "src": "1341:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1341:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2287, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2292, + "src": "1370:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2286, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1370:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2292, + "src": "1393:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2288, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1393:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "executed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2292, + "src": "1413:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2290, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1413:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Transaction", + "nodeType": "StructDefinition", + "scope": 3385, + "src": "1312:121:16", + "visibility": "public" + }, + { + "canonicalName": "MultiSigWalletWithTimelock.EmergencyCall", + "id": 2297, + "members": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "selector", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2297, + "src": "1470:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2293, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1470:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2296, + "mutability": "mutable", + "name": "paramsBytesCount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2297, + "src": "1496:24:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2295, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1496:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "EmergencyCall", + "nodeType": "StructDefinition", + "scope": 3385, + "src": "1439:88:16", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "86384afc", + "id": 2300, + "mutability": "mutable", + "name": "emergencyCalls", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1579:37:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2298, + "name": "EmergencyCall", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2297, + "src": "1579:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall" + } + }, + "id": 2299, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1579:15:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2315, + "nodeType": "Block", + "src": "1645:88:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 2308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2302, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1659:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1659:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2306, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1681:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MultiSigWalletWithTimelock_$3385", + "typeString": "contract MultiSigWalletWithTimelock" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_MultiSigWalletWithTimelock_$3385", + "typeString": "contract MultiSigWalletWithTimelock" + } + ], + "id": 2305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1673:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1673:7:16", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1673:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1659:27:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2313, + "nodeType": "IfStatement", + "src": "1655:60:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4f4e4c595f57414c4c45545f4552524f52", + "id": 2310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1695:19:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_154c05d05b8b4fc5182b27cf8fc7d4edd12f98319c5a78b89a786d51471e8730", + "typeString": "literal_string \"ONLY_WALLET_ERROR\"" + }, + "value": "ONLY_WALLET_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_154c05d05b8b4fc5182b27cf8fc7d4edd12f98319c5a78b89a786d51471e8730", + "typeString": "literal_string \"ONLY_WALLET_ERROR\"" + } + ], + "id": 2309, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "1688:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1688:27:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2312, + "nodeType": "ExpressionStatement", + "src": "1688:27:16" + } + }, + { + "id": 2314, + "nodeType": "PlaceholderStatement", + "src": "1725:1:16" + } + ] + }, + "documentation": null, + "id": 2316, + "name": "onlyWallet", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2301, + "nodeType": "ParameterList", + "parameters": [], + "src": "1642:2:16" + }, + "src": "1623:110:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2329, + "nodeType": "Block", + "src": "1781:84:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2320, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "1795:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2322, + "indexExpression": { + "argumentTypes": null, + "id": 2321, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2318, + "src": "1803:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1795:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2327, + "nodeType": "IfStatement", + "src": "1791:56:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4f574e45525f444f45535f4e4f545f45584953545f4552524f52", + "id": 2324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1818:28:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0de49efc4c535b8cd13aa9de166b4db6f53a1ded9c131ce141ae0ef26adc35fb", + "typeString": "literal_string \"OWNER_DOES_NOT_EXIST_ERROR\"" + }, + "value": "OWNER_DOES_NOT_EXIST_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_0de49efc4c535b8cd13aa9de166b4db6f53a1ded9c131ce141ae0ef26adc35fb", + "typeString": "literal_string \"OWNER_DOES_NOT_EXIST_ERROR\"" + } + ], + "id": 2323, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "1811:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1811:36:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2326, + "nodeType": "ExpressionStatement", + "src": "1811:36:16" + } + }, + { + "id": 2328, + "nodeType": "PlaceholderStatement", + "src": "1857:1:16" + } + ] + }, + "documentation": null, + "id": 2330, + "name": "ownerDoesNotExist", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2318, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2330, + "src": "1766:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2317, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1766:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1765:15:16" + }, + "src": "1739:126:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2344, + "nodeType": "Block", + "src": "1907:77:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1921:15:16", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2334, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "1922:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2336, + "indexExpression": { + "argumentTypes": null, + "id": 2335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2332, + "src": "1930:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1922:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2342, + "nodeType": "IfStatement", + "src": "1917:49:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4f574e45525f4558495354535f4552524f52", + "id": 2339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1945:20:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5679e051834b8488b2a064e5d691d44ba5a73e92259d98f57c96ad80baf3fdf", + "typeString": "literal_string \"OWNER_EXISTS_ERROR\"" + }, + "value": "OWNER_EXISTS_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a5679e051834b8488b2a064e5d691d44ba5a73e92259d98f57c96ad80baf3fdf", + "typeString": "literal_string \"OWNER_EXISTS_ERROR\"" + } + ], + "id": 2338, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "1938:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1938:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2341, + "nodeType": "ExpressionStatement", + "src": "1938:28:16" + } + }, + { + "id": 2343, + "nodeType": "PlaceholderStatement", + "src": "1976:1:16" + } + ] + }, + "documentation": null, + "id": 2345, + "name": "ownerExists", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2345, + "src": "1892:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2331, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1892:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1891:15:16" + }, + "src": "1871:113:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2364, + "nodeType": "Block", + "src": "2040:133:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2349, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "2054:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 2351, + "indexExpression": { + "argumentTypes": null, + "id": 2350, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2347, + "src": "2067:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2054:27:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "id": 2352, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "destination", + "nodeType": "MemberAccess", + "referencedDeclaration": 2285, + "src": "2054:39:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2105:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2097:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2097:7:16", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2097:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2054:53:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2362, + "nodeType": "IfStatement", + "src": "2050:105:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "5452414e53414354494f4e5f4558495354535f4552524f52", + "id": 2359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2128:26:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0fa90d37b3d14dd2ae235c1fa2187af5b08c507d31134f0aa67ff6323c434990", + "typeString": "literal_string \"TRANSACTION_EXISTS_ERROR\"" + }, + "value": "TRANSACTION_EXISTS_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_0fa90d37b3d14dd2ae235c1fa2187af5b08c507d31134f0aa67ff6323c434990", + "typeString": "literal_string \"TRANSACTION_EXISTS_ERROR\"" + } + ], + "id": 2358, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "2121:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2121:34:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2361, + "nodeType": "ExpressionStatement", + "src": "2121:34:16" + } + }, + { + "id": 2363, + "nodeType": "PlaceholderStatement", + "src": "2165:1:16" + } + ] + }, + "documentation": null, + "id": 2365, + "name": "transactionExists", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2347, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2365, + "src": "2017:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2017:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2016:23:16" + }, + "src": "1990:183:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2383, + "nodeType": "Block", + "src": "2236:95:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 2376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2250:36:16", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2371, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "2251:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 2373, + "indexExpression": { + "argumentTypes": null, + "id": 2372, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2367, + "src": "2265:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2251:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2375, + "indexExpression": { + "argumentTypes": null, + "id": 2374, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "2280:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2251:35:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2381, + "nodeType": "IfStatement", + "src": "2246:67:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "434f4e4649524d45445f4552524f52", + "id": 2378, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2295:17:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_07011048ab4b644cae74fcaa058ba0ec4eb97750e69f4cfa039855b5807ab8eb", + "typeString": "literal_string \"CONFIRMED_ERROR\"" + }, + "value": "CONFIRMED_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_07011048ab4b644cae74fcaa058ba0ec4eb97750e69f4cfa039855b5807ab8eb", + "typeString": "literal_string \"CONFIRMED_ERROR\"" + } + ], + "id": 2377, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "2288:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2288:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2380, + "nodeType": "ExpressionStatement", + "src": "2288:25:16" + } + }, + { + "id": 2382, + "nodeType": "PlaceholderStatement", + "src": "2323:1:16" + } + ] + }, + "documentation": null, + "id": 2384, + "name": "confirmed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2367, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2384, + "src": "2198:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2198:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2369, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2384, + "src": "2221:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2368, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2221:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2197:38:16" + }, + "src": "2179:152:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2401, + "nodeType": "Block", + "src": "2397:98:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2390, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "2411:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 2392, + "indexExpression": { + "argumentTypes": null, + "id": 2391, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2386, + "src": "2425:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2411:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2394, + "indexExpression": { + "argumentTypes": null, + "id": 2393, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2388, + "src": "2440:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2411:35:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2399, + "nodeType": "IfStatement", + "src": "2407:70:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4e4f545f434f4e4649524d45445f4552524f52", + "id": 2396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2455:21:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b93c270f73799c5026e6575ecff3675a730a2cac46b17cbb393881d7e18763e2", + "typeString": "literal_string \"NOT_CONFIRMED_ERROR\"" + }, + "value": "NOT_CONFIRMED_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_b93c270f73799c5026e6575ecff3675a730a2cac46b17cbb393881d7e18763e2", + "typeString": "literal_string \"NOT_CONFIRMED_ERROR\"" + } + ], + "id": 2395, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "2448:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2448:29:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2398, + "nodeType": "ExpressionStatement", + "src": "2448:29:16" + } + }, + { + "id": 2400, + "nodeType": "PlaceholderStatement", + "src": "2487:1:16" + } + ] + }, + "documentation": null, + "id": 2402, + "name": "notConfirmed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2386, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2402, + "src": "2359:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2359:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2388, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2402, + "src": "2382:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2387, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2382:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2358:38:16" + }, + "src": "2337:158:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2416, + "nodeType": "Block", + "src": "2545:98:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2406, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "2559:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 2408, + "indexExpression": { + "argumentTypes": null, + "id": 2407, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2404, + "src": "2572:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2559:27:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "id": 2409, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 2291, + "src": "2559:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2414, + "nodeType": "IfStatement", + "src": "2555:70:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4e4f545f45584543555445445f4552524f52", + "id": 2411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2604:20:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_543cb05dbc23c4af907ca5a03a85c3d24cca2a1ba4a868fc8943b3b8ea69747d", + "typeString": "literal_string \"NOT_EXECUTED_ERROR\"" + }, + "value": "NOT_EXECUTED_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_543cb05dbc23c4af907ca5a03a85c3d24cca2a1ba4a868fc8943b3b8ea69747d", + "typeString": "literal_string \"NOT_EXECUTED_ERROR\"" + } + ], + "id": 2410, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "2597:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2597:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2413, + "nodeType": "ExpressionStatement", + "src": "2597:28:16" + } + }, + { + "id": 2415, + "nodeType": "PlaceholderStatement", + "src": "2635:1:16" + } + ] + }, + "documentation": null, + "id": 2417, + "name": "notExecuted", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2404, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2417, + "src": "2522:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2522:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2521:23:16" + }, + "src": "2501:142:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2433, + "nodeType": "Block", + "src": "2684:80:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2421, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2419, + "src": "2698:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2718:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2710:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:16", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2710:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2698:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2431, + "nodeType": "IfStatement", + "src": "2694:52:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4e4f545f4e554c4c5f4552524f52", + "id": 2428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2729:16:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ce3a403561f7436d6efa7d01af7869570afca7da394caf15c8ed863039e7b421", + "typeString": "literal_string \"NOT_NULL_ERROR\"" + }, + "value": "NOT_NULL_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_ce3a403561f7436d6efa7d01af7869570afca7da394caf15c8ed863039e7b421", + "typeString": "literal_string \"NOT_NULL_ERROR\"" + } + ], + "id": 2427, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "2722:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2722:24:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2430, + "nodeType": "ExpressionStatement", + "src": "2722:24:16" + } + }, + { + "id": 2432, + "nodeType": "PlaceholderStatement", + "src": "2756:1:16" + } + ] + }, + "documentation": null, + "id": 2434, + "name": "notNull", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2420, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2419, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2434, + "src": "2666:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2418, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2666:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2665:18:16" + }, + "src": "2649:115:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2461, + "nodeType": "Block", + "src": "2835:216:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2440, + "name": "ownerCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2436, + "src": "2862:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 2441, + "name": "MAX_OWNER_COUNT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2203, + "src": "2875:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2862:28:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2443, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2438, + "src": "2906:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 2444, + "name": "ownerCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2436, + "src": "2918:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2906:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2862:66:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2447, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2438, + "src": "2944:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2957:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2944:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2862:96:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2451, + "name": "ownerCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2436, + "src": "2974:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2988:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2974:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2862:127:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2459, + "nodeType": "IfStatement", + "src": "2845:188:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "56414c49445f524551554952454d454e545f4552524f52", + "id": 2456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3007:25:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f7c52332ec5db78e995be376b3733f9df721050c4817a36758c44295f63a1644", + "typeString": "literal_string \"VALID_REQUIREMENT_ERROR\"" + }, + "value": "VALID_REQUIREMENT_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_f7c52332ec5db78e995be376b3733f9df721050c4817a36758c44295f63a1644", + "typeString": "literal_string \"VALID_REQUIREMENT_ERROR\"" + } + ], + "id": 2455, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "3000:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3000:33:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2458, + "nodeType": "ExpressionStatement", + "src": "3000:33:16" + } + }, + { + "id": 2460, + "nodeType": "PlaceholderStatement", + "src": "3043:1:16" + } + ] + }, + "documentation": null, + "id": 2462, + "name": "validRequirement", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2436, + "mutability": "mutable", + "name": "ownerCount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2462, + "src": "2796:18:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2796:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2438, + "mutability": "mutable", + "name": "_required", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2462, + "src": "2816:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2816:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2795:39:16" + }, + "src": "2770:281:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2479, + "nodeType": "Block", + "src": "3144:95:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2466, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3158:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3158:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3170:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3158:13:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2478, + "nodeType": "IfStatement", + "src": "3154:79:16", + "trueBody": { + "id": 2477, + "nodeType": "Block", + "src": "3173:60:16", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2471, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3200:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3200:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2473, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3212:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3212:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2470, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2236, + "src": "3192:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3192:30:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2476, + "nodeType": "EmitStatement", + "src": "3187:35:16" + } + ] + } + } + ] + }, + "documentation": { + "id": 2463, + "nodeType": "StructuredDocumentation", + "src": "3057:54:16", + "text": "@dev Fallback function allows to deposit ether. " + }, + "id": 2480, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2464, + "nodeType": "ParameterList", + "parameters": [], + "src": "3124:2:16" + }, + "returnParameters": { + "id": 2465, + "nodeType": "ParameterList", + "parameters": [], + "src": "3144:0:16" + }, + "scope": 3385, + "src": "3116:123:16", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2496, + "nodeType": "Block", + "src": "3272:95:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3286:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3286:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3298:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3286:13:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2495, + "nodeType": "IfStatement", + "src": "3282:79:16", + "trueBody": { + "id": 2494, + "nodeType": "Block", + "src": "3301:60:16", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2488, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3328:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3328:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2490, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3340:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3340:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2487, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2236, + "src": "3320:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3320:30:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2493, + "nodeType": "EmitStatement", + "src": "3315:35:16" + } + ] + } + } + ] + }, + "documentation": null, + "id": 2497, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2481, + "nodeType": "ParameterList", + "parameters": [], + "src": "3252:2:16" + }, + "returnParameters": { + "id": 2482, + "nodeType": "ParameterList", + "parameters": [], + "src": "3272:0:16" + }, + "scope": 3385, + "src": "3245:122:16", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2602, + "nodeType": "Block", + "src": "3705:930:16", + "statements": [ + { + "body": { + "id": 2550, + "nodeType": "Block", + "src": "3760:172:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2522, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "3778:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2526, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2523, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "3786:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2525, + "indexExpression": { + "argumentTypes": null, + "id": 2524, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2512, + "src": "3794:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3786:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3778:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2527, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "3801:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2529, + "indexExpression": { + "argumentTypes": null, + "id": 2528, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2512, + "src": "3809:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3801:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3823:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3815:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3815:7:16", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3815:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3801:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3778:47:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2541, + "nodeType": "IfStatement", + "src": "3774:107:16", + "trueBody": { + "id": 2540, + "nodeType": "Block", + "src": "3827:54:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4f574e45525f4552524f52", + "id": 2537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3852:13:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50f5ffffd46b93fc4216a2fd08d8a742f987ab7f4a48d802983a9d879430368b", + "typeString": "literal_string \"OWNER_ERROR\"" + }, + "value": "OWNER_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_50f5ffffd46b93fc4216a2fd08d8a742f987ab7f4a48d802983a9d879430368b", + "typeString": "literal_string \"OWNER_ERROR\"" + } + ], + "id": 2536, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "3845:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3845:21:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2539, + "nodeType": "ExpressionStatement", + "src": "3845:21:16" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2542, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "3895:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2546, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2543, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "3903:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2545, + "indexExpression": { + "argumentTypes": null, + "id": 2544, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2512, + "src": "3911:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3903:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3895:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3917:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3895:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2549, + "nodeType": "ExpressionStatement", + "src": "3895:26:16" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2515, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2512, + "src": "3735:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2516, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "3739:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3739:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3735:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2551, + "initializationExpression": { + "assignments": [ + 2512 + ], + "declarations": [ + { + "constant": false, + "id": 2512, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2551, + "src": "3720:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2514, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3732:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3720:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 2520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3755:3:16", + "subExpression": { + "argumentTypes": null, + "id": 2519, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2512, + "src": "3755:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2521, + "nodeType": "ExpressionStatement", + "src": "3755:3:16" + }, + "nodeType": "ForStatement", + "src": "3715:217:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2552, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "3942:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2553, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "3951:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "src": "3942:16:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2555, + "nodeType": "ExpressionStatement", + "src": "3942:16:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2556, + "name": "required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2281, + "src": "3968:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2557, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2503, + "src": "3979:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3968:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2559, + "nodeType": "ExpressionStatement", + "src": "3968:20:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "636c61696d4f776e6572736869702829", + "id": 2567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4139:18:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4e71e0c8676e3746167a1acf5f45b9c4f9bfd01db4faa49dd539202eb4a76b23", + "typeString": "literal_string \"claimOwnership()\"" + }, + "value": "claimOwnership()" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_4e71e0c8676e3746167a1acf5f45b9c4f9bfd01db4faa49dd539202eb4a76b23", + "typeString": "literal_string \"claimOwnership()\"" + } + ], + "expression": { + "argumentTypes": null, + "id": 2565, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4122:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4122:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4122:36:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2564, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4112:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2569, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4112:47:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 2570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4195:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2563, + "name": "EmergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2297, + "src": "4070:13:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", + "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" + } + }, + "id": 2571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "selector", + "paramsBytesCount" + ], + "nodeType": "FunctionCall", + "src": "4070:141:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2560, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "4037:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4037:19:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", + "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" + } + }, + "id": 2572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4037:184:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2573, + "nodeType": "ExpressionStatement", + "src": "4037:184:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7365744b2875696e7432353629", + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4333:15:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_67de8be994f5e612024f208d2fe429438ed98f752dca627d14a952634dbd4ba7", + "typeString": "literal_string \"setK(uint256)\"" + }, + "value": "setK(uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_67de8be994f5e612024f208d2fe429438ed98f752dca627d14a952634dbd4ba7", + "typeString": "literal_string \"setK(uint256)\"" + } + ], + "expression": { + "argumentTypes": null, + "id": 2579, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4316:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4316:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4316:33:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2578, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4306:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4306:44:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "hexValue": "3634", + "id": 2584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4386:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + } + ], + "id": 2577, + "name": "EmergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2297, + "src": "4264:13:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", + "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" + } + }, + "id": 2585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "selector", + "paramsBytesCount" + ], + "nodeType": "FunctionCall", + "src": "4264:139:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2574, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "4231:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 2576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4231:19:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", + "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" + } + }, + "id": 2586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4231:182:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2587, + "nodeType": "ExpressionStatement", + "src": "4231:182:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7365744c697175696469747950726f7669646572466565526174652875696e7432353629", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4525:38:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5bb7552a97062da753264cd0b6de4cb510c3e7bc8360141372bd76876d44f10e", + "typeString": "literal_string \"setLiquidityProviderFeeRate(uint256)\"" + }, + "value": "setLiquidityProviderFeeRate(uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_5bb7552a97062da753264cd0b6de4cb510c3e7bc8360141372bd76876d44f10e", + "typeString": "literal_string \"setLiquidityProviderFeeRate(uint256)\"" + } + ], + "expression": { + "argumentTypes": null, + "id": 2593, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4508:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4508:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4508:56:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2592, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4498:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4498:67:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "hexValue": "3634", + "id": 2598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4601:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + } + ], + "id": 2591, + "name": "EmergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2297, + "src": "4456:13:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", + "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" + } + }, + "id": 2599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "selector", + "paramsBytesCount" + ], + "nodeType": "FunctionCall", + "src": "4456:162:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2588, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "4423:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 2590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4423:19:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", + "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" + } + }, + "id": 2600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4423:205:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2601, + "nodeType": "ExpressionStatement", + "src": "4423:205:16" + } + ] + }, + "documentation": { + "id": 2498, + "nodeType": "StructuredDocumentation", + "src": "3373:199:16", + "text": "@dev Contract constructor sets initial owners and required number of confirmations.\n @param _owners List of initial owners.\n @param _required Number of required confirmations." + }, + "id": 2603, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2506, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "3674:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3674:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2508, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2503, + "src": "3690:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2509, + "modifierName": { + "argumentTypes": null, + "id": 2505, + "name": "validRequirement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "3657:16:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3657:43:16" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2501, + "mutability": "mutable", + "name": "_owners", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2603, + "src": "3589:24:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3589:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2500, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3589:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2503, + "mutability": "mutable", + "name": "_required", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2603, + "src": "3615:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2502, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3615:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3588:45:16" + }, + "returnParameters": { + "id": 2510, + "nodeType": "ParameterList", + "parameters": [], + "src": "3705:0:16" + }, + "scope": 3385, + "src": "3577:1058:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2611, + "nodeType": "Block", + "src": "4713:45:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2608, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "4730:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 2609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4730:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2607, + "id": 2610, + "nodeType": "Return", + "src": "4723:28:16" + } + ] + }, + "documentation": null, + "functionSelector": "c0af0227", + "id": 2612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getEmergencyCallsCount", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2604, + "nodeType": "ParameterList", + "parameters": [], + "src": "4672:2:16" + }, + "returnParameters": { + "id": 2607, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "count", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2612, + "src": "4698:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2605, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4698:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4697:15:16" + }, + "scope": 3385, + "src": "4641:117:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2649, + "nodeType": "Block", + "src": "5075:101:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2633, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "5085:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2635, + "indexExpression": { + "argumentTypes": null, + "id": 2634, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "5093:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5085:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5102:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5085:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2638, + "nodeType": "ExpressionStatement", + "src": "5085:21:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2642, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "5128:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2639, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5116:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5116:11:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5116:18:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2644, + "nodeType": "ExpressionStatement", + "src": "5116:18:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2646, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "5163:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2645, + "name": "OwnerAddition", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "5149:13:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5149:20:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2648, + "nodeType": "EmitStatement", + "src": "5144:25:16" + } + ] + }, + "documentation": { + "id": 2613, + "nodeType": "StructuredDocumentation", + "src": "4764:123:16", + "text": "@dev Allows to add a new owner. Transaction has to be sent by wallet.\n @param owner Address of new owner." + }, + "functionSelector": "7065cb48", + "id": 2650, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2618, + "modifierName": { + "argumentTypes": null, + "id": 2617, + "name": "onlyWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "4950:10:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4950:10:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2620, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "4987:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2621, + "modifierName": { + "argumentTypes": null, + "id": 2619, + "name": "ownerDoesNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "4969:17:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4969:24:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2623, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "5010:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2624, + "modifierName": { + "argumentTypes": null, + "id": 2622, + "name": "notNull", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2434, + "src": "5002:7:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5002:14:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2626, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5042:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5042:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5058:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5042:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2630, + "name": "required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2281, + "src": "5061:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2631, + "modifierName": { + "argumentTypes": null, + "id": 2625, + "name": "validRequirement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "5025:16:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5025:45:16" + } + ], + "name": "addOwner", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2616, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2615, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2650, + "src": "4910:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2614, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4910:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4909:15:16" + }, + "returnParameters": { + "id": 2632, + "nodeType": "ParameterList", + "parameters": [], + "src": "5075:0:16" + }, + "scope": 3385, + "src": "4892:284:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2720, + "nodeType": "Block", + "src": "5381:390:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2661, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "5391:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2663, + "indexExpression": { + "argumentTypes": null, + "id": 2662, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2653, + "src": "5399:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5391:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5408:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "5391:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2666, + "nodeType": "ExpressionStatement", + "src": "5391:22:16" + }, + { + "body": { + "id": 2699, + "nodeType": "Block", + "src": "5471:141:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2680, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5489:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2682, + "indexExpression": { + "argumentTypes": null, + "id": 2681, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "5496:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5489:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2683, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2653, + "src": "5502:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5489:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2698, + "nodeType": "IfStatement", + "src": "5485:117:16", + "trueBody": { + "id": 2697, + "nodeType": "Block", + "src": "5509:93:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2685, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5527:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2687, + "indexExpression": { + "argumentTypes": null, + "id": 2686, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "5534:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5527:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2688, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5539:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2693, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2689, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5546:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5546:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5562:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5546:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5539:25:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5527:37:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2695, + "nodeType": "ExpressionStatement", + "src": "5527:37:16" + }, + { + "id": 2696, + "nodeType": "Break", + "src": "5582:5:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2671, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "5443:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2672, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5447:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5447:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5463:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5447:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5443:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2700, + "initializationExpression": { + "assignments": [ + 2668 + ], + "declarations": [ + { + "constant": false, + "id": 2668, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2700, + "src": "5428:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5428:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2670, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5440:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5428:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 2678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5466:3:16", + "subExpression": { + "argumentTypes": null, + "id": 2677, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "5466:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2679, + "nodeType": "ExpressionStatement", + "src": "5466:3:16" + }, + "nodeType": "ForStatement", + "src": "5423:189:16" + }, + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2701, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5622:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5622:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2704, + "nodeType": "ExpressionStatement", + "src": "5622:10:16" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2705, + "name": "required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2281, + "src": "5647:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2706, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5658:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5658:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5647:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2715, + "nodeType": "IfStatement", + "src": "5643:87:16", + "trueBody": { + "id": 2714, + "nodeType": "Block", + "src": "5673:57:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2710, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5705:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5705:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2709, + "name": "changeRequirement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2807, + "src": "5687:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 2712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5687:32:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2713, + "nodeType": "ExpressionStatement", + "src": "5687:32:16" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2717, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2653, + "src": "5758:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2716, + "name": "OwnerRemoval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2244, + "src": "5745:12:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5745:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2719, + "nodeType": "EmitStatement", + "src": "5740:24:16" + } + ] + }, + "documentation": { + "id": 2651, + "nodeType": "StructuredDocumentation", + "src": "5182:119:16", + "text": "@dev Allows to remove an owner. Transaction has to be sent by wallet.\n @param owner Address of owner." + }, + "functionSelector": "173825d9", + "id": 2721, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2656, + "modifierName": { + "argumentTypes": null, + "id": 2655, + "name": "onlyWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "5351:10:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5351:10:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2658, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2653, + "src": "5374:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2659, + "modifierName": { + "argumentTypes": null, + "id": 2657, + "name": "ownerExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "5362:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5362:18:16" + } + ], + "name": "removeOwner", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2721, + "src": "5327:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5327:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5326:15:16" + }, + "returnParameters": { + "id": 2660, + "nodeType": "ParameterList", + "parameters": [], + "src": "5381:0:16" + }, + "scope": 3385, + "src": "5306:465:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2784, + "nodeType": "Block", + "src": "6134:323:16", + "statements": [ + { + "body": { + "id": 2762, + "nodeType": "Block", + "src": "6188:124:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2748, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "6206:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2750, + "indexExpression": { + "argumentTypes": null, + "id": 2749, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2738, + "src": "6213:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6206:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2751, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2724, + "src": "6219:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6206:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2761, + "nodeType": "IfStatement", + "src": "6202:100:16", + "trueBody": { + "id": 2760, + "nodeType": "Block", + "src": "6226:76:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2753, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "6244:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2755, + "indexExpression": { + "argumentTypes": null, + "id": 2754, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2738, + "src": "6251:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6244:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2756, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2726, + "src": "6256:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6244:20:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2758, + "nodeType": "ExpressionStatement", + "src": "6244:20:16" + }, + { + "id": 2759, + "nodeType": "Break", + "src": "6282:5:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2741, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2738, + "src": "6164:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2742, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "6168:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6168:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6164:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2763, + "initializationExpression": { + "assignments": [ + 2738 + ], + "declarations": [ + { + "constant": false, + "id": 2738, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2763, + "src": "6149:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6149:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2740, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6161:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6149:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6183:3:16", + "subExpression": { + "argumentTypes": null, + "id": 2745, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2738, + "src": "6183:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2747, + "nodeType": "ExpressionStatement", + "src": "6183:3:16" + }, + "nodeType": "ForStatement", + "src": "6144:168:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2764, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "6322:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2766, + "indexExpression": { + "argumentTypes": null, + "id": 2765, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2724, + "src": "6330:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6322:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6339:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "6322:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2769, + "nodeType": "ExpressionStatement", + "src": "6322:22:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2770, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "6354:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2772, + "indexExpression": { + "argumentTypes": null, + "id": 2771, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2726, + "src": "6362:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6354:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6374:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6354:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2775, + "nodeType": "ExpressionStatement", + "src": "6354:24:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2777, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2724, + "src": "6406:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2776, + "name": "OwnerRemoval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2244, + "src": "6393:12:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6393:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2779, + "nodeType": "EmitStatement", + "src": "6388:24:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2781, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2726, + "src": "6441:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2780, + "name": "OwnerAddition", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "6427:13:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6427:23:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2783, + "nodeType": "EmitStatement", + "src": "6422:28:16" + } + ] + }, + "documentation": { + "id": 2722, + "nodeType": "StructuredDocumentation", + "src": "5777:194:16", + "text": "@dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.\n @param owner Address of owner to be replaced.\n @param owner Address of new owner." + }, + "functionSelector": "e20056e6", + "id": 2785, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2729, + "modifierName": { + "argumentTypes": null, + "id": 2728, + "name": "onlyWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "6056:10:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6056:10:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2731, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2724, + "src": "6087:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2732, + "modifierName": { + "argumentTypes": null, + "id": 2730, + "name": "ownerExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "6075:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "6075:18:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2734, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2726, + "src": "6120:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2735, + "modifierName": { + "argumentTypes": null, + "id": 2733, + "name": "ownerDoesNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "6102:17:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "6102:27:16" + } + ], + "name": "replaceOwner", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2724, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2785, + "src": "5998:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5998:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2726, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2785, + "src": "6013:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6013:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5997:33:16" + }, + "returnParameters": { + "id": 2736, + "nodeType": "ParameterList", + "parameters": [], + "src": "6134:0:16" + }, + "scope": 3385, + "src": "5976:481:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2806, + "nodeType": "Block", + "src": "6770:80:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2798, + "name": "required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2281, + "src": "6780:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2799, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2788, + "src": "6791:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6780:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2801, + "nodeType": "ExpressionStatement", + "src": "6780:20:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2803, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2788, + "src": "6833:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2802, + "name": "RequirementChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2248, + "src": "6815:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 2804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6815:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2805, + "nodeType": "EmitStatement", + "src": "6810:33:16" + } + ] + }, + "documentation": { + "id": 2786, + "nodeType": "StructuredDocumentation", + "src": "6463:167:16", + "text": "@dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n @param _required Number of required confirmations." + }, + "functionSelector": "ba51a6df", + "id": 2807, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2791, + "modifierName": { + "argumentTypes": null, + "id": 2790, + "name": "onlyWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "6704:10:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6704:10:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2793, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "6740:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6740:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2795, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2788, + "src": "6755:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2796, + "modifierName": { + "argumentTypes": null, + "id": 2792, + "name": "validRequirement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "6723:16:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "6723:42:16" + } + ], + "name": "changeRequirement", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2788, + "mutability": "mutable", + "name": "_required", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2807, + "src": "6662:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6662:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6661:19:16" + }, + "returnParameters": { + "id": 2797, + "nodeType": "ParameterList", + "parameters": [], + "src": "6770:0:16" + }, + "scope": 3385, + "src": "6635:215:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2823, + "nodeType": "Block", + "src": "7124:89:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2815, + "name": "lockSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2206, + "src": "7134:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2816, + "name": "_lockSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2810, + "src": "7148:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7134:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2818, + "nodeType": "ExpressionStatement", + "src": "7134:26:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2820, + "name": "_lockSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2810, + "src": "7193:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2819, + "name": "LockSecondsChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2258, + "src": "7175:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 2821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7175:31:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2822, + "nodeType": "EmitStatement", + "src": "7170:36:16" + } + ] + }, + "documentation": { + "id": 2808, + "nodeType": "StructuredDocumentation", + "src": "6856:194:16", + "text": "@dev Changes the duration of the time lock for transactions.\n @param _lockSeconds Duration needed after a transaction is confirmed and before it becomes executable, in seconds." + }, + "functionSelector": "8c22d5d3", + "id": 2824, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2813, + "modifierName": { + "argumentTypes": null, + "id": 2812, + "name": "onlyWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "7113:10:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7113:10:16" + } + ], + "name": "changeLockSeconds", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2810, + "mutability": "mutable", + "name": "_lockSeconds", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2824, + "src": "7082:20:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7082:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7081:22:16" + }, + "returnParameters": { + "id": 2814, + "nodeType": "ParameterList", + "parameters": [], + "src": "7124:0:16" + }, + "scope": 3385, + "src": "7055:158:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2870, + "nodeType": "Block", + "src": "7690:343:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2843, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "7700:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2844, + "name": "transactionCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2283, + "src": "7716:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7700:32:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2846, + "nodeType": "ExpressionStatement", + "src": "7700:32:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2847, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "7742:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 2849, + "indexExpression": { + "argumentTypes": null, + "id": 2848, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "7755:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7742:27:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2851, + "name": "destination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2827, + "src": "7811:11:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2852, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2829, + "src": "7843:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2853, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "7868:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7896:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2850, + "name": "Transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2292, + "src": "7772:11:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Transaction_$2292_storage_ptr_$", + "typeString": "type(struct MultiSigWalletWithTimelock.Transaction storage pointer)" + } + }, + "id": 2855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "destination", + "value", + "data", + "executed" + ], + "nodeType": "FunctionCall", + "src": "7772:140:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction memory" + } + }, + "src": "7742:170:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "id": 2857, + "nodeType": "ExpressionStatement", + "src": "7742:170:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2858, + "name": "transactionCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2283, + "src": "7922:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 2859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7942:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7922:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2861, + "nodeType": "ExpressionStatement", + "src": "7922:21:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2863, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "7969:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2862, + "name": "Submission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2222, + "src": "7958:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 2864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7958:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2865, + "nodeType": "EmitStatement", + "src": "7953:30:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2867, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "8012:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2866, + "name": "confirmTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2939, + "src": "7993:18:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7993:33:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2869, + "nodeType": "ExpressionStatement", + "src": "7993:33:16" + } + ] + }, + "documentation": { + "id": 2825, + "nodeType": "StructuredDocumentation", + "src": "7219:266:16", + "text": "@dev Allows an owner to submit and confirm a transaction.\n @param destination Transaction target address.\n @param value Transaction ether value.\n @param data Transaction data payload.\n @return transactionId Returns transaction ID." + }, + "functionSelector": "c6427474", + "id": 2871, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2834, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7625:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7625:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2836, + "modifierName": { + "argumentTypes": null, + "id": 2833, + "name": "ownerExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "7613:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7613:23:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2838, + "name": "destination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2827, + "src": "7645:11:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2839, + "modifierName": { + "argumentTypes": null, + "id": 2837, + "name": "notNull", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2434, + "src": "7637:7:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7637:20:16" + } + ], + "name": "submitTransaction", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2827, + "mutability": "mutable", + "name": "destination", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2871, + "src": "7526:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2826, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7526:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2829, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2871, + "src": "7555:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7555:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2831, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2871, + "src": "7578:19:16", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2830, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7578:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7516:87:16" + }, + "returnParameters": { + "id": 2842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2841, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2871, + "src": "7667:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2840, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7667:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7666:23:16" + }, + "scope": 3385, + "src": "7490:543:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2938, + "nodeType": "Block", + "src": "8337:463:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2889, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "8347:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 2893, + "indexExpression": { + "argumentTypes": null, + "id": 2890, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8361:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8347:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2894, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2891, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8376:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8376:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8347:40:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8390:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "8347:47:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2897, + "nodeType": "ExpressionStatement", + "src": "8347:47:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2899, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8422:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8422:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2901, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8434:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2898, + "name": "Confirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2212, + "src": "8409:12:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8409:39:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2903, + "nodeType": "EmitStatement", + "src": "8404:44:16" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2905, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8488:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2904, + "name": "isConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "8476:11:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8476:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2907, + "name": "unlockTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2276, + "src": "8518:11:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 2909, + "indexExpression": { + "argumentTypes": null, + "id": 2908, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8530:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8518:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8548:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8518:31:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8476:73:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 2916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8565:31:16", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2914, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8582:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2913, + "name": "isEmergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3027, + "src": "8566:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8566:30:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8476:120:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2937, + "nodeType": "IfStatement", + "src": "8459:335:16", + "trueBody": { + "id": 2936, + "nodeType": "Block", + "src": "8607:187:16", + "statements": [ + { + "assignments": [ + 2919 + ], + "declarations": [ + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "unlockTime", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2936, + "src": "8621:18:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8621:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2924, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2920, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "8642:5:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8642:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 2922, + "name": "lockSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2206, + "src": "8660:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8642:29:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8621:50:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2925, + "name": "unlockTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2276, + "src": "8685:11:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 2927, + "indexExpression": { + "argumentTypes": null, + "id": 2926, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8697:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8685:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2928, + "name": "unlockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "8714:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8685:39:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "8685:39:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2932, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8757:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2933, + "name": "unlockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "8772:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2931, + "name": "UnlockTimeSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2254, + "src": "8743:13:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8743:40:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2935, + "nodeType": "EmitStatement", + "src": "8738:45:16" + } + ] + } + } + ] + }, + "documentation": { + "id": 2872, + "nodeType": "StructuredDocumentation", + "src": "8039:102:16", + "text": "@dev Allows an owner to confirm a transaction.\n @param transactionId Transaction ID." + }, + "functionSelector": "c01a8c84", + "id": 2939, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2877, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8232:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8232:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2879, + "modifierName": { + "argumentTypes": null, + "id": 2876, + "name": "ownerExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "8220:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8220:23:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2881, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8270:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2882, + "modifierName": { + "argumentTypes": null, + "id": 2880, + "name": "transactionExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2365, + "src": "8252:17:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8252:32:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2884, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8306:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2885, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8321:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8321:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2887, + "modifierName": { + "argumentTypes": null, + "id": 2883, + "name": "notConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2402, + "src": "8293:12:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8293:39:16" + } + ], + "name": "confirmTransaction", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2874, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2939, + "src": "8174:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8174:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8173:23:16" + }, + "returnParameters": { + "id": 2888, + "nodeType": "ParameterList", + "parameters": [], + "src": "8337:0:16" + }, + "scope": 3385, + "src": "8146:654:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3026, + "nodeType": "Block", + "src": "8883:636:16", + "statements": [ + { + "assignments": [ + 2947 + ], + "declarations": [ + { + "constant": false, + "id": 2947, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3026, + "src": "8893:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2946, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8893:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2952, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2948, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "8913:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 2950, + "indexExpression": { + "argumentTypes": null, + "id": 2949, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2941, + "src": "8926:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8913:27:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "id": 2951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": 2289, + "src": "8913:32:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8893:52:16" + }, + { + "body": { + "id": 3022, + "nodeType": "Block", + "src": "9008:482:16", + "statements": [ + { + "assignments": [ + 2965 + ], + "declarations": [ + { + "constant": false, + "id": 2965, + "mutability": "mutable", + "name": "emergencyCall", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3022, + "src": "9022:34:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall" + }, + "typeName": { + "contractScope": null, + "id": 2964, + "name": "EmergencyCall", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2297, + "src": "9022:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2969, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2966, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "9059:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 2968, + "indexExpression": { + "argumentTypes": null, + "id": 2967, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "9074:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9059:17:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9022:54:16" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2970, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "9112:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9112:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2972, + "name": "emergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "9127:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + }, + "id": 2973, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "paramsBytesCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2296, + "src": "9127:30:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 2974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9160:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9127:34:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9112:49:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2977, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "9181:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9181:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 2979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9196:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9181:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9112:85:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 2989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2982, + "name": "emergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "9217:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + }, + "id": 2983, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "9217:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2985, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9240:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9217:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2986, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "9246:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2988, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9251:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9246:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "9217:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9112:141:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 2998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2991, + "name": "emergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "9273:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + }, + "id": 2992, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "9273:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2994, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9296:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9273:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2995, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "9302:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2997, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9307:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9302:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "9273:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9112:197:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 3007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3000, + "name": "emergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "9329:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + }, + "id": 3001, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "9329:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 3003, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 3002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9352:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9329:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3004, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "9358:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3006, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 3005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9363:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9358:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "9329:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9112:253:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 3016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3009, + "name": "emergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "9385:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + }, + "id": 3010, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "9385:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 3012, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 3011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9408:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9385:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3013, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "9414:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3015, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 3014, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9419:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9414:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "9385:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9112:309:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3021, + "nodeType": "IfStatement", + "src": "9091:389:16", + "trueBody": { + "id": 3020, + "nodeType": "Block", + "src": "9436:44:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9461:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2945, + "id": 3019, + "nodeType": "Return", + "src": "9454:11:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2957, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "8976:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2958, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "8980:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8980:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8976:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3023, + "initializationExpression": { + "assignments": [ + 2954 + ], + "declarations": [ + { + "constant": false, + "id": 2954, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3023, + "src": "8961:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8961:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2956, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8973:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8961:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 2962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9003:3:16", + "subExpression": { + "argumentTypes": null, + "id": 2961, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "9003:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2963, + "nodeType": "ExpressionStatement", + "src": "9003:3:16" + }, + "nodeType": "ForStatement", + "src": "8956:534:16" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9507:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2945, + "id": 3025, + "nodeType": "Return", + "src": "9500:12:16" + } + ] + }, + "documentation": null, + "id": 3027, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isEmergencyCall", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2941, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3027, + "src": "8831:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8831:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8830:23:16" + }, + "returnParameters": { + "id": 2945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3027, + "src": "8877:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2943, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8877:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8876:6:16" + }, + "scope": 3385, + "src": "8806:713:16", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3050, + "nodeType": "Block", + "src": "9620:207:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3043, + "name": "funcName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3029, + "src": "9732:8:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 3041, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "9715:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9715:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9715:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3040, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "9705:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9705:37:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3046, + "name": "_paramsBytesCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3031, + "src": "9778:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3039, + "name": "EmergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2297, + "src": "9663:13:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", + "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" + } + }, + "id": 3047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "selector", + "paramsBytesCount" + ], + "nodeType": "FunctionCall", + "src": "9663:147:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 3036, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "9630:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 3038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9630:19:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", + "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" + } + }, + "id": 3048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9630:190:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3049, + "nodeType": "ExpressionStatement", + "src": "9630:190:16" + } + ] + }, + "documentation": null, + "functionSelector": "f075fb90", + "id": 3051, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3034, + "modifierName": { + "argumentTypes": null, + "id": 3033, + "name": "onlyWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "9609:10:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9609:10:16" + } + ], + "name": "addEmergencyCall", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3029, + "mutability": "mutable", + "name": "funcName", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3051, + "src": "9551:22:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3028, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9551:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3031, + "mutability": "mutable", + "name": "_paramsBytesCount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3051, + "src": "9575:25:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9575:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9550:51:16" + }, + "returnParameters": { + "id": 3035, + "nodeType": "ParameterList", + "parameters": [], + "src": "9620:0:16" + }, + "scope": 3385, + "src": "9525:302:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "10142:117:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3069, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "10152:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 3073, + "indexExpression": { + "argumentTypes": null, + "id": 3070, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3054, + "src": "10166:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10152:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 3074, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3071, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10181:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10181:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10152:40:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10195:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "10152:48:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3077, + "nodeType": "ExpressionStatement", + "src": "10152:48:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3079, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10226:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10226:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3081, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3054, + "src": "10238:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3078, + "name": "Revocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2218, + "src": "10215:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10215:37:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3083, + "nodeType": "EmitStatement", + "src": "10210:42:16" + } + ] + }, + "documentation": { + "id": 3052, + "nodeType": "StructuredDocumentation", + "src": "9833:120:16", + "text": "@dev Allows an owner to revoke a confirmation for a transaction.\n @param transactionId Transaction ID." + }, + "functionSelector": "20ea8d86", + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3057, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10046:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10046:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 3059, + "modifierName": { + "argumentTypes": null, + "id": 3056, + "name": "ownerExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "10034:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "10034:23:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3061, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3054, + "src": "10076:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3062, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10091:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10091:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 3064, + "modifierName": { + "argumentTypes": null, + "id": 3060, + "name": "confirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "10066:9:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "10066:36:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3066, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3054, + "src": "10123:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3067, + "modifierName": { + "argumentTypes": null, + "id": 3065, + "name": "notExecuted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2417, + "src": "10111:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "10111:26:16" + } + ], + "name": "revokeConfirmation", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3055, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3054, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3085, + "src": "9986:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3053, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9986:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9985:23:16" + }, + "returnParameters": { + "id": 3068, + "nodeType": "ParameterList", + "parameters": [], + "src": "10142:0:16" + }, + "scope": 3385, + "src": "9958:301:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3154, + "nodeType": "Block", + "src": "10519:594:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3099, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "10537:5:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10537:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3101, + "name": "unlockTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2276, + "src": "10556:11:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 3103, + "indexExpression": { + "argumentTypes": null, + "id": 3102, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "10568:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10556:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10537:45:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5452414e53414354494f4e5f4e4545445f544f5f554e4c4f434b", + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10584:28:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0e775be8eed223e88abd3716be242e9114c0d3a20959ded3addfe470831caccb", + "typeString": "literal_string \"TRANSACTION_NEED_TO_UNLOCK\"" + }, + "value": "TRANSACTION_NEED_TO_UNLOCK" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0e775be8eed223e88abd3716be242e9114c0d3a20959ded3addfe470831caccb", + "typeString": "literal_string \"TRANSACTION_NEED_TO_UNLOCK\"" + } + ], + "id": 3098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10529:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10529:84:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3107, + "nodeType": "ExpressionStatement", + "src": "10529:84:16" + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3109, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "10640:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3108, + "name": "isConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "10628:11:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10628:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3153, + "nodeType": "IfStatement", + "src": "10624:483:16", + "trueBody": { + "id": 3152, + "nodeType": "Block", + "src": "10656:451:16", + "statements": [ + { + "assignments": [ + 3112 + ], + "declarations": [ + { + "constant": false, + "id": 3112, + "mutability": "mutable", + "name": "transaction", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3152, + "src": "10670:31:16", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction" + }, + "typeName": { + "contractScope": null, + "id": 3111, + "name": "Transaction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2292, + "src": "10670:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3116, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3113, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "10704:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 3115, + "indexExpression": { + "argumentTypes": null, + "id": 3114, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "10717:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10704:27:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10670:61:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 3121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3117, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3112, + "src": "10745:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 2291, + "src": "10745:20:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10768:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10745:27:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3122, + "nodeType": "ExpressionStatement", + "src": "10745:27:16" + }, + { + "assignments": [ + 3124, + null + ], + "declarations": [ + { + "constant": false, + "id": 3124, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3152, + "src": "10787:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3123, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10787:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 3134, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3131, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3112, + "src": "10877:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" + } + }, + "id": 3132, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": 2289, + "src": "10877:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3125, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3112, + "src": "10805:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" + } + }, + "id": 3126, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "destination", + "nodeType": "MemberAccess", + "referencedDeclaration": 2285, + "src": "10805:23:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10805:28:16", + "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": 3130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3128, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3112, + "src": "10841:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" + } + }, + "id": 3129, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2287, + "src": "10841:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "10805:54:16", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10805:102:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10786:121:16" + }, + { + "condition": { + "argumentTypes": null, + "id": 3135, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3124, + "src": "10925:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3150, + "nodeType": "Block", + "src": "10982:115:16", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3141, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "11022:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3140, + "name": "ExecutionFailure", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2230, + "src": "11005:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11005:31:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3143, + "nodeType": "EmitStatement", + "src": "11000:36:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 3148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3144, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3112, + "src": "11054:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" + } + }, + "id": 3146, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 2291, + "src": "11054:20:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11077:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "11054:28:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3149, + "nodeType": "ExpressionStatement", + "src": "11054:28:16" + } + ] + }, + "id": 3151, + "nodeType": "IfStatement", + "src": "10921:176:16", + "trueBody": { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3137, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "10949:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3136, + "name": "Execution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2226, + "src": "10939:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10939:24:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3139, + "nodeType": "EmitStatement", + "src": "10934:29:16" + } + } + ] + } + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "10265:110:16", + "text": "@dev Allows anyone to execute a confirmed transaction.\n @param transactionId Transaction ID." + }, + "functionSelector": "ee22610b", + "id": 3155, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3091, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10468:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10468:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 3093, + "modifierName": { + "argumentTypes": null, + "id": 3090, + "name": "ownerExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "10456:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "10456:23:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3095, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "10500:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3096, + "modifierName": { + "argumentTypes": null, + "id": 3094, + "name": "notExecuted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2417, + "src": "10488:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "10488:26:16" + } + ], + "name": "executeTransaction", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3155, + "src": "10408:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10408:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10407:23:16" + }, + "returnParameters": { + "id": 3097, + "nodeType": "ParameterList", + "parameters": [], + "src": "10519:0:16" + }, + "scope": 3385, + "src": "10380:733:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3202, + "nodeType": "Block", + "src": "11341:304:16", + "statements": [ + { + "assignments": [ + 3164 + ], + "declarations": [ + { + "constant": false, + "id": 3164, + "mutability": "mutable", + "name": "count", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3202, + "src": "11351:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3163, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11351:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3166, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11367:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11351:17:16" + }, + { + "body": { + "id": 3198, + "nodeType": "Block", + "src": "11423:193:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3178, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "11441:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 3180, + "indexExpression": { + "argumentTypes": null, + "id": 3179, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3158, + "src": "11455:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11441:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 3184, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3181, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "11470:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3183, + "indexExpression": { + "argumentTypes": null, + "id": 3182, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3168, + "src": "11477:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11470:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11441:39:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3190, + "nodeType": "IfStatement", + "src": "11437:88:16", + "trueBody": { + "id": 3189, + "nodeType": "Block", + "src": "11482:43:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3185, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3164, + "src": "11500:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11509:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11500:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "11500:10:16" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3191, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3164, + "src": "11543:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3192, + "name": "required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2281, + "src": "11552:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11543:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3197, + "nodeType": "IfStatement", + "src": "11539:67:16", + "trueBody": { + "id": 3196, + "nodeType": "Block", + "src": "11562:44:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11587:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3162, + "id": 3195, + "nodeType": "Return", + "src": "11580:11:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3171, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3168, + "src": "11399:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3172, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "11403:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11403:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11399:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3199, + "initializationExpression": { + "assignments": [ + 3168 + ], + "declarations": [ + { + "constant": false, + "id": 3168, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3199, + "src": "11384:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11384:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3170, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11396:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11384:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11418:3:16", + "subExpression": { + "argumentTypes": null, + "id": 3175, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3168, + "src": "11418:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3177, + "nodeType": "ExpressionStatement", + "src": "11418:3:16" + }, + "nodeType": "ForStatement", + "src": "11379:237:16" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11633:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 3162, + "id": 3201, + "nodeType": "Return", + "src": "11626:12:16" + } + ] + }, + "documentation": { + "id": 3156, + "nodeType": "StructuredDocumentation", + "src": "11119:146:16", + "text": "@dev Returns the confirmation status of a transaction.\n @param transactionId Transaction ID.\n @return Confirmation status." + }, + "functionSelector": "784547a7", + "id": 3203, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isConfirmed", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3159, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3158, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3203, + "src": "11291:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11291:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11290:23:16" + }, + "returnParameters": { + "id": 3162, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3161, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3203, + "src": "11335:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3160, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11335:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:6:16" + }, + "scope": 3385, + "src": "11270:375:16", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3237, + "nodeType": "Block", + "src": "11934:172:16", + "statements": [ + { + "body": { + "id": 3235, + "nodeType": "Block", + "src": "11988:112:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3222, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "12006:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 3224, + "indexExpression": { + "argumentTypes": null, + "id": 3223, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "12020:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12006:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 3228, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3225, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "12035:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3227, + "indexExpression": { + "argumentTypes": null, + "id": 3226, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3212, + "src": "12042:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12035:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12006:39:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3234, + "nodeType": "IfStatement", + "src": "12002:88:16", + "trueBody": { + "id": 3233, + "nodeType": "Block", + "src": "12047:43:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3229, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3209, + "src": "12065:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 3230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12074:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12065:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3232, + "nodeType": "ExpressionStatement", + "src": "12065:10:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3215, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3212, + "src": "11964:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3216, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "11968:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11968:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11964:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3236, + "initializationExpression": { + "assignments": [ + 3212 + ], + "declarations": [ + { + "constant": false, + "id": 3212, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3236, + "src": "11949:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11949:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3214, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11961:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11949:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11983:3:16", + "subExpression": { + "argumentTypes": null, + "id": 3219, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3212, + "src": "11983:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3221, + "nodeType": "ExpressionStatement", + "src": "11983:3:16" + }, + "nodeType": "ForStatement", + "src": "11944:156:16" + } + ] + }, + "documentation": { + "id": 3204, + "nodeType": "StructuredDocumentation", + "src": "11682:156:16", + "text": "@dev Returns number of confirmations of a transaction.\n @param transactionId Transaction ID.\n @return count Number of confirmations." + }, + "functionSelector": "8b51d13f", + "id": 3238, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getConfirmationCount", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3207, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3206, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3238, + "src": "11873:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11873:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11872:23:16" + }, + "returnParameters": { + "id": 3210, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3209, + "mutability": "mutable", + "name": "count", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3238, + "src": "11919:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3208, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11918:15:16" + }, + "scope": 3385, + "src": "11843:263:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3282, + "nodeType": "Block", + "src": "12503:216:16", + "statements": [ + { + "body": { + "id": 3280, + "nodeType": "Block", + "src": "12560:153:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3258, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3241, + "src": "12579:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 3263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12590:25:16", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3259, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "12591:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 3261, + "indexExpression": { + "argumentTypes": null, + "id": 3260, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3249, + "src": "12604:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12591:15:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "id": 3262, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 2291, + "src": "12591:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12579:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3265, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12578:38:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3266, + "name": "executed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3243, + "src": "12621:8:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3267, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "12633:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 3269, + "indexExpression": { + "argumentTypes": null, + "id": 3268, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3249, + "src": "12646:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12633:15:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "id": 3270, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 2291, + "src": "12633:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12621:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3272, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12620:38:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12578:80:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3279, + "nodeType": "IfStatement", + "src": "12574:129:16", + "trueBody": { + "id": 3278, + "nodeType": "Block", + "src": "12660:43:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3274, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3246, + "src": "12678:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12687:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12678:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3277, + "nodeType": "ExpressionStatement", + "src": "12678:10:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3252, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3249, + "src": "12533:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3253, + "name": "transactionCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2283, + "src": "12537:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12533:20:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3281, + "initializationExpression": { + "assignments": [ + 3249 + ], + "declarations": [ + { + "constant": false, + "id": 3249, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3281, + "src": "12518:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3248, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12518:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3251, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12530:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12518:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "12555:3:16", + "subExpression": { + "argumentTypes": null, + "id": 3255, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3249, + "src": "12555:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3257, + "nodeType": "ExpressionStatement", + "src": "12555:3:16" + }, + "nodeType": "ForStatement", + "src": "12513:200:16" + } + ] + }, + "documentation": { + "id": 3239, + "nodeType": "StructuredDocumentation", + "src": "12112:262:16", + "text": "@dev Returns total number of transactions after filers are applied.\n @param pending Include pending transactions.\n @param executed Include executed transactions.\n @return count Total number of transactions after filters are applied." + }, + "functionSelector": "54741525", + "id": 3283, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTransactionCount", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3241, + "mutability": "mutable", + "name": "pending", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3283, + "src": "12408:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3240, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12408:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3243, + "mutability": "mutable", + "name": "executed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3283, + "src": "12422:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3242, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12422:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12407:29:16" + }, + "returnParameters": { + "id": 3247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3246, + "mutability": "mutable", + "name": "count", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3283, + "src": "12484:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12484:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12483:15:16" + }, + "scope": 3385, + "src": "12379:340:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3292, + "nodeType": "Block", + "src": "12872:30:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3290, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "12889:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 3289, + "id": 3291, + "nodeType": "Return", + "src": "12882:13:16" + } + ] + }, + "documentation": { + "id": 3284, + "nodeType": "StructuredDocumentation", + "src": "12725:80:16", + "text": "@dev Returns list of owners.\n @return List of owner addresses." + }, + "functionSelector": "a0e67e2b", + "id": 3293, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getOwners", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3285, + "nodeType": "ParameterList", + "parameters": [], + "src": "12828:2:16" + }, + "returnParameters": { + "id": 3289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3288, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3293, + "src": "12854:16:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3286, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12854:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3287, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12854:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12853:18:16" + }, + "scope": 3385, + "src": "12810:92:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3383, + "nodeType": "Block", + "src": "13235:491:16", + "statements": [ + { + "assignments": [ + 3306 + ], + "declarations": [ + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "confirmationsTemp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3383, + "src": "13245:34:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13245:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3305, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13245:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3313, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3310, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "13296:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13296:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "13282: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": 3307, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13286:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3308, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13286:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 3312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13282:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13245:65:16" + }, + { + "assignments": [ + 3315 + ], + "declarations": [ + { + "constant": false, + "id": 3315, + "mutability": "mutable", + "name": "count", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3383, + "src": "13320:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3314, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13320:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3317, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13336:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13320:17:16" + }, + { + "assignments": [ + 3319 + ], + "declarations": [ + { + "constant": false, + "id": 3319, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3383, + "src": "13347:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3318, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13347:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3320, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "13347:9:16" + }, + { + "body": { + "id": 3353, + "nodeType": "Block", + "src": "13403:166:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3332, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "13421:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 3334, + "indexExpression": { + "argumentTypes": null, + "id": 3333, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3296, + "src": "13435:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13421:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 3338, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3335, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "13450:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3337, + "indexExpression": { + "argumentTypes": null, + "id": 3336, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13457:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13450:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13421:39:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3352, + "nodeType": "IfStatement", + "src": "13417:142:16", + "trueBody": { + "id": 3351, + "nodeType": "Block", + "src": "13462:97:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3339, + "name": "confirmationsTemp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "13480:17:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 3341, + "indexExpression": { + "argumentTypes": null, + "id": 3340, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3315, + "src": "13498:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13480:24:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3342, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "13507:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3344, + "indexExpression": { + "argumentTypes": null, + "id": 3343, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13514:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13507:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13480:36:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3346, + "nodeType": "ExpressionStatement", + "src": "13480:36:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 3349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3347, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3315, + "src": "13534:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13543:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13534:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3350, + "nodeType": "ExpressionStatement", + "src": "13534:10:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3325, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13379:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3326, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "13383:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13383:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13379:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3354, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3321, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13372:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13376:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13372:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3324, + "nodeType": "ExpressionStatement", + "src": "13372:5:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13398:3:16", + "subExpression": { + "argumentTypes": null, + "id": 3329, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13398:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3331, + "nodeType": "ExpressionStatement", + "src": "13398:3:16" + }, + "nodeType": "ForStatement", + "src": "13367:202:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 3361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3355, + "name": "_confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3300, + "src": "13579:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3359, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3315, + "src": "13610:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "13596: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": 3356, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13600:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3357, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13600:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 3360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13596:20:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "src": "13579:37:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 3362, + "nodeType": "ExpressionStatement", + "src": "13579:37:16" + }, + { + "body": { + "id": 3381, + "nodeType": "Block", + "src": "13655:65:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3373, + "name": "_confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3300, + "src": "13669:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 3375, + "indexExpression": { + "argumentTypes": null, + "id": 3374, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13684:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13669:17:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3376, + "name": "confirmationsTemp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "13689:17:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 3378, + "indexExpression": { + "argumentTypes": null, + "id": 3377, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13707:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13689:20:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13669:40:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3380, + "nodeType": "ExpressionStatement", + "src": "13669:40:16" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3367, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13639:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3368, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3315, + "src": "13643:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13639:9:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3382, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 3365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3363, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13632:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 3364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13636:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13632:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3366, + "nodeType": "ExpressionStatement", + "src": "13632:5:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13650:3:16", + "subExpression": { + "argumentTypes": null, + "id": 3370, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13650:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3372, + "nodeType": "ExpressionStatement", + "src": "13650:3:16" + }, + "nodeType": "ForStatement", + "src": "13627:93:16" + } + ] + }, + "documentation": { + "id": 3294, + "nodeType": "StructuredDocumentation", + "src": "12908:189:16", + "text": "@dev Returns array with owner addresses, which confirmed transaction.\n @param transactionId Transaction ID.\n @return _confirmations Returns array of owner addresses." + }, + "functionSelector": "b5dc40c3", + "id": 3384, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getConfirmations", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3296, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3384, + "src": "13128:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3295, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13128:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13127:23:16" + }, + "returnParameters": { + "id": 3301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3300, + "mutability": "mutable", + "name": "_confirmations", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3384, + "src": "13198:31:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3298, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13198:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3299, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13198:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13197:33:16" + }, + "scope": 3385, + "src": "13102:624:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3386, + "src": "204:13524:16" + } + ], + "src": "145:13584:16" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/MultiSig.sol", + "exportedSymbols": { + "MultiSigWalletWithTimelock": [ + 3385 + ] + }, + "id": 3386, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2199, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "145:22:16" + }, + { + "id": 2200, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "168:33:16" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3385, + "linearizedBaseContracts": [ + 3385 + ], + "name": "MultiSigWalletWithTimelock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "functionSelector": "d74f8edd", + "id": 2203, + "mutability": "constant", + "name": "MAX_OWNER_COUNT", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "246:44:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "246:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3530", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "288:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "50" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "bfa6fddb", + "id": 2206, + "mutability": "mutable", + "name": "lockSeconds", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "296:34:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2204, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "296:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3836343030", + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "325:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "86400" + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 2212, + "name": "Confirmation", + "nodeType": "EventDefinition", + "parameters": { + "id": 2211, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2208, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2212, + "src": "356:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "356:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2210, + "indexed": true, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2212, + "src": "380:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "380:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "355:55:16" + }, + "src": "337:74:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2218, + "name": "Revocation", + "nodeType": "EventDefinition", + "parameters": { + "id": 2217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2214, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2218, + "src": "433:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "433:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2216, + "indexed": true, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2218, + "src": "457:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "457:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "432:55:16" + }, + "src": "416:72:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2222, + "name": "Submission", + "nodeType": "EventDefinition", + "parameters": { + "id": 2221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2220, + "indexed": true, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2222, + "src": "510:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "510:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "509:31:16" + }, + "src": "493:48:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2226, + "name": "Execution", + "nodeType": "EventDefinition", + "parameters": { + "id": 2225, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2224, + "indexed": true, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2226, + "src": "562:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "562:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "561:31:16" + }, + "src": "546:47:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2230, + "name": "ExecutionFailure", + "nodeType": "EventDefinition", + "parameters": { + "id": 2229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2228, + "indexed": true, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2230, + "src": "621:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "621:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "620:31:16" + }, + "src": "598:54:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2236, + "name": "Deposit", + "nodeType": "EventDefinition", + "parameters": { + "id": 2235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2232, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2236, + "src": "671:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2231, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "671:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2234, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2236, + "src": "695:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "695:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "670:39:16" + }, + "src": "657:53:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2240, + "name": "OwnerAddition", + "nodeType": "EventDefinition", + "parameters": { + "id": 2239, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2238, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2240, + "src": "735:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "735:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "734:23:16" + }, + "src": "715:43:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2244, + "name": "OwnerRemoval", + "nodeType": "EventDefinition", + "parameters": { + "id": 2243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2242, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2244, + "src": "782:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2241, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "782:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "781:23:16" + }, + "src": "763:42:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2248, + "name": "RequirementChange", + "nodeType": "EventDefinition", + "parameters": { + "id": 2247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2246, + "indexed": false, + "mutability": "mutable", + "name": "required", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2248, + "src": "834:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "834:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "833:18:16" + }, + "src": "810:42:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2254, + "name": "UnlockTimeSet", + "nodeType": "EventDefinition", + "parameters": { + "id": 2253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2250, + "indexed": true, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2254, + "src": "877:29:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2249, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "877:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2252, + "indexed": false, + "mutability": "mutable", + "name": "confirmationTime", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2254, + "src": "908:24:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "908:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "876:57:16" + }, + "src": "857:77:16" + }, + { + "anonymous": false, + "documentation": null, + "id": 2258, + "name": "LockSecondsChange", + "nodeType": "EventDefinition", + "parameters": { + "id": 2257, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2256, + "indexed": false, + "mutability": "mutable", + "name": "lockSeconds", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2258, + "src": "963:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "962:21:16" + }, + "src": "939:45:16" + }, + { + "constant": false, + "functionSelector": "9ace38c2", + "id": 2262, + "mutability": "mutable", + "name": "transactions", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "990:51:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction)" + }, + "typeName": { + "id": 2261, + "keyType": { + "id": 2259, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "998:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "990:31:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction)" + }, + "valueType": { + "contractScope": null, + "id": 2260, + "name": "Transaction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2292, + "src": "1009:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3411c81c", + "id": 2268, + "mutability": "mutable", + "name": "confirmations", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1047:65:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + }, + "typeName": { + "id": 2267, + "keyType": { + "id": 2263, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1055:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1047:44:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + }, + "valueType": { + "id": 2266, + "keyType": { + "id": 2264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1074:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1066:24:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2265, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1085:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "2f54bf6e", + "id": 2272, + "mutability": "mutable", + "name": "isOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1118:39:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 2271, + "keyType": { + "id": 2269, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1126:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1118:24:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2270, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1137:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "76ac947a", + "id": 2276, + "mutability": "mutable", + "name": "unlockTimes", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1163:46:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "typeName": { + "id": 2275, + "keyType": { + "id": 2273, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1171:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1163:27:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + }, + "valueType": { + "id": 2274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1182:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "025e7c27", + "id": 2279, + "mutability": "mutable", + "name": "owners", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1216:23:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1216:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2278, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1216:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dc8452cd", + "id": 2281, + "mutability": "mutable", + "name": "required", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1245:23:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2280, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1245:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "b77bf600", + "id": 2283, + "mutability": "mutable", + "name": "transactionCount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1274:31:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1274:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "canonicalName": "MultiSigWalletWithTimelock.Transaction", + "id": 2292, + "members": [ + { + "constant": false, + "id": 2285, + "mutability": "mutable", + "name": "destination", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2292, + "src": "1341:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1341:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2287, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2292, + "src": "1370:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2286, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1370:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2292, + "src": "1393:10:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2288, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1393:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "executed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2292, + "src": "1413:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2290, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1413:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Transaction", + "nodeType": "StructDefinition", + "scope": 3385, + "src": "1312:121:16", + "visibility": "public" + }, + { + "canonicalName": "MultiSigWalletWithTimelock.EmergencyCall", + "id": 2297, + "members": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "selector", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2297, + "src": "1470:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2293, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1470:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2296, + "mutability": "mutable", + "name": "paramsBytesCount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2297, + "src": "1496:24:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2295, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1496:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "EmergencyCall", + "nodeType": "StructDefinition", + "scope": 3385, + "src": "1439:88:16", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "86384afc", + "id": 2300, + "mutability": "mutable", + "name": "emergencyCalls", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3385, + "src": "1579:37:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2298, + "name": "EmergencyCall", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2297, + "src": "1579:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall" + } + }, + "id": 2299, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1579:15:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2315, + "nodeType": "Block", + "src": "1645:88:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 2308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2302, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1659:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1659:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2306, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1681:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MultiSigWalletWithTimelock_$3385", + "typeString": "contract MultiSigWalletWithTimelock" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_MultiSigWalletWithTimelock_$3385", + "typeString": "contract MultiSigWalletWithTimelock" + } + ], + "id": 2305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1673:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1673:7:16", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1673:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1659:27:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2313, + "nodeType": "IfStatement", + "src": "1655:60:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4f4e4c595f57414c4c45545f4552524f52", + "id": 2310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1695:19:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_154c05d05b8b4fc5182b27cf8fc7d4edd12f98319c5a78b89a786d51471e8730", + "typeString": "literal_string \"ONLY_WALLET_ERROR\"" + }, + "value": "ONLY_WALLET_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_154c05d05b8b4fc5182b27cf8fc7d4edd12f98319c5a78b89a786d51471e8730", + "typeString": "literal_string \"ONLY_WALLET_ERROR\"" + } + ], + "id": 2309, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "1688:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1688:27:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2312, + "nodeType": "ExpressionStatement", + "src": "1688:27:16" + } + }, + { + "id": 2314, + "nodeType": "PlaceholderStatement", + "src": "1725:1:16" + } + ] + }, + "documentation": null, + "id": 2316, + "name": "onlyWallet", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2301, + "nodeType": "ParameterList", + "parameters": [], + "src": "1642:2:16" + }, + "src": "1623:110:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2329, + "nodeType": "Block", + "src": "1781:84:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2320, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "1795:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2322, + "indexExpression": { + "argumentTypes": null, + "id": 2321, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2318, + "src": "1803:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1795:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2327, + "nodeType": "IfStatement", + "src": "1791:56:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4f574e45525f444f45535f4e4f545f45584953545f4552524f52", + "id": 2324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1818:28:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0de49efc4c535b8cd13aa9de166b4db6f53a1ded9c131ce141ae0ef26adc35fb", + "typeString": "literal_string \"OWNER_DOES_NOT_EXIST_ERROR\"" + }, + "value": "OWNER_DOES_NOT_EXIST_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_0de49efc4c535b8cd13aa9de166b4db6f53a1ded9c131ce141ae0ef26adc35fb", + "typeString": "literal_string \"OWNER_DOES_NOT_EXIST_ERROR\"" + } + ], + "id": 2323, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "1811:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1811:36:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2326, + "nodeType": "ExpressionStatement", + "src": "1811:36:16" + } + }, + { + "id": 2328, + "nodeType": "PlaceholderStatement", + "src": "1857:1:16" + } + ] + }, + "documentation": null, + "id": 2330, + "name": "ownerDoesNotExist", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2318, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2330, + "src": "1766:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2317, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1766:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1765:15:16" + }, + "src": "1739:126:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2344, + "nodeType": "Block", + "src": "1907:77:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1921:15:16", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2334, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "1922:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2336, + "indexExpression": { + "argumentTypes": null, + "id": 2335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2332, + "src": "1930:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1922:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2342, + "nodeType": "IfStatement", + "src": "1917:49:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4f574e45525f4558495354535f4552524f52", + "id": 2339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1945:20:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5679e051834b8488b2a064e5d691d44ba5a73e92259d98f57c96ad80baf3fdf", + "typeString": "literal_string \"OWNER_EXISTS_ERROR\"" + }, + "value": "OWNER_EXISTS_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a5679e051834b8488b2a064e5d691d44ba5a73e92259d98f57c96ad80baf3fdf", + "typeString": "literal_string \"OWNER_EXISTS_ERROR\"" + } + ], + "id": 2338, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "1938:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1938:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2341, + "nodeType": "ExpressionStatement", + "src": "1938:28:16" + } + }, + { + "id": 2343, + "nodeType": "PlaceholderStatement", + "src": "1976:1:16" + } + ] + }, + "documentation": null, + "id": 2345, + "name": "ownerExists", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2345, + "src": "1892:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2331, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1892:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1891:15:16" + }, + "src": "1871:113:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2364, + "nodeType": "Block", + "src": "2040:133:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2349, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "2054:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 2351, + "indexExpression": { + "argumentTypes": null, + "id": 2350, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2347, + "src": "2067:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2054:27:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "id": 2352, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "destination", + "nodeType": "MemberAccess", + "referencedDeclaration": 2285, + "src": "2054:39:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2105:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2097:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2097:7:16", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2097:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2054:53:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2362, + "nodeType": "IfStatement", + "src": "2050:105:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "5452414e53414354494f4e5f4558495354535f4552524f52", + "id": 2359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2128:26:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0fa90d37b3d14dd2ae235c1fa2187af5b08c507d31134f0aa67ff6323c434990", + "typeString": "literal_string \"TRANSACTION_EXISTS_ERROR\"" + }, + "value": "TRANSACTION_EXISTS_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_0fa90d37b3d14dd2ae235c1fa2187af5b08c507d31134f0aa67ff6323c434990", + "typeString": "literal_string \"TRANSACTION_EXISTS_ERROR\"" + } + ], + "id": 2358, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "2121:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2121:34:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2361, + "nodeType": "ExpressionStatement", + "src": "2121:34:16" + } + }, + { + "id": 2363, + "nodeType": "PlaceholderStatement", + "src": "2165:1:16" + } + ] + }, + "documentation": null, + "id": 2365, + "name": "transactionExists", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2347, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2365, + "src": "2017:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2017:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2016:23:16" + }, + "src": "1990:183:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2383, + "nodeType": "Block", + "src": "2236:95:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 2376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2250:36:16", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2371, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "2251:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 2373, + "indexExpression": { + "argumentTypes": null, + "id": 2372, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2367, + "src": "2265:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2251:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2375, + "indexExpression": { + "argumentTypes": null, + "id": 2374, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2369, + "src": "2280:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2251:35:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2381, + "nodeType": "IfStatement", + "src": "2246:67:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "434f4e4649524d45445f4552524f52", + "id": 2378, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2295:17:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_07011048ab4b644cae74fcaa058ba0ec4eb97750e69f4cfa039855b5807ab8eb", + "typeString": "literal_string \"CONFIRMED_ERROR\"" + }, + "value": "CONFIRMED_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_07011048ab4b644cae74fcaa058ba0ec4eb97750e69f4cfa039855b5807ab8eb", + "typeString": "literal_string \"CONFIRMED_ERROR\"" + } + ], + "id": 2377, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "2288:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2288:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2380, + "nodeType": "ExpressionStatement", + "src": "2288:25:16" + } + }, + { + "id": 2382, + "nodeType": "PlaceholderStatement", + "src": "2323:1:16" + } + ] + }, + "documentation": null, + "id": 2384, + "name": "confirmed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2370, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2367, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2384, + "src": "2198:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2198:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2369, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2384, + "src": "2221:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2368, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2221:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2197:38:16" + }, + "src": "2179:152:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2401, + "nodeType": "Block", + "src": "2397:98:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2390, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "2411:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 2392, + "indexExpression": { + "argumentTypes": null, + "id": 2391, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2386, + "src": "2425:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2411:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2394, + "indexExpression": { + "argumentTypes": null, + "id": 2393, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2388, + "src": "2440:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2411:35:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2399, + "nodeType": "IfStatement", + "src": "2407:70:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4e4f545f434f4e4649524d45445f4552524f52", + "id": 2396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2455:21:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b93c270f73799c5026e6575ecff3675a730a2cac46b17cbb393881d7e18763e2", + "typeString": "literal_string \"NOT_CONFIRMED_ERROR\"" + }, + "value": "NOT_CONFIRMED_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_b93c270f73799c5026e6575ecff3675a730a2cac46b17cbb393881d7e18763e2", + "typeString": "literal_string \"NOT_CONFIRMED_ERROR\"" + } + ], + "id": 2395, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "2448:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2448:29:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2398, + "nodeType": "ExpressionStatement", + "src": "2448:29:16" + } + }, + { + "id": 2400, + "nodeType": "PlaceholderStatement", + "src": "2487:1:16" + } + ] + }, + "documentation": null, + "id": 2402, + "name": "notConfirmed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2386, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2402, + "src": "2359:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2385, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2359:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2388, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2402, + "src": "2382:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2387, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2382:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2358:38:16" + }, + "src": "2337:158:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2416, + "nodeType": "Block", + "src": "2545:98:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2406, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "2559:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 2408, + "indexExpression": { + "argumentTypes": null, + "id": 2407, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2404, + "src": "2572:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2559:27:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "id": 2409, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 2291, + "src": "2559:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2414, + "nodeType": "IfStatement", + "src": "2555:70:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4e4f545f45584543555445445f4552524f52", + "id": 2411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2604:20:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_543cb05dbc23c4af907ca5a03a85c3d24cca2a1ba4a868fc8943b3b8ea69747d", + "typeString": "literal_string \"NOT_EXECUTED_ERROR\"" + }, + "value": "NOT_EXECUTED_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_543cb05dbc23c4af907ca5a03a85c3d24cca2a1ba4a868fc8943b3b8ea69747d", + "typeString": "literal_string \"NOT_EXECUTED_ERROR\"" + } + ], + "id": 2410, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "2597:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2597:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2413, + "nodeType": "ExpressionStatement", + "src": "2597:28:16" + } + }, + { + "id": 2415, + "nodeType": "PlaceholderStatement", + "src": "2635:1:16" + } + ] + }, + "documentation": null, + "id": 2417, + "name": "notExecuted", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2404, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2417, + "src": "2522:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2522:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2521:23:16" + }, + "src": "2501:142:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2433, + "nodeType": "Block", + "src": "2684:80:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2421, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2419, + "src": "2698:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2718:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2710:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2710:7:16", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2710:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2698:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2431, + "nodeType": "IfStatement", + "src": "2694:52:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4e4f545f4e554c4c5f4552524f52", + "id": 2428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2729:16:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ce3a403561f7436d6efa7d01af7869570afca7da394caf15c8ed863039e7b421", + "typeString": "literal_string \"NOT_NULL_ERROR\"" + }, + "value": "NOT_NULL_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_ce3a403561f7436d6efa7d01af7869570afca7da394caf15c8ed863039e7b421", + "typeString": "literal_string \"NOT_NULL_ERROR\"" + } + ], + "id": 2427, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "2722:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2722:24:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2430, + "nodeType": "ExpressionStatement", + "src": "2722:24:16" + } + }, + { + "id": 2432, + "nodeType": "PlaceholderStatement", + "src": "2756:1:16" + } + ] + }, + "documentation": null, + "id": 2434, + "name": "notNull", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2420, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2419, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2434, + "src": "2666:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2418, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2666:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2665:18:16" + }, + "src": "2649:115:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2461, + "nodeType": "Block", + "src": "2835:216:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2440, + "name": "ownerCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2436, + "src": "2862:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 2441, + "name": "MAX_OWNER_COUNT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2203, + "src": "2875:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2862:28:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2443, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2438, + "src": "2906:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 2444, + "name": "ownerCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2436, + "src": "2918:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2906:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2862:66:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2447, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2438, + "src": "2944:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2957:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2944:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2862:96:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2451, + "name": "ownerCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2436, + "src": "2974:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2988:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2974:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2862:127:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2459, + "nodeType": "IfStatement", + "src": "2845:188:16", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "56414c49445f524551554952454d454e545f4552524f52", + "id": 2456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3007:25:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f7c52332ec5db78e995be376b3733f9df721050c4817a36758c44295f63a1644", + "typeString": "literal_string \"VALID_REQUIREMENT_ERROR\"" + }, + "value": "VALID_REQUIREMENT_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_f7c52332ec5db78e995be376b3733f9df721050c4817a36758c44295f63a1644", + "typeString": "literal_string \"VALID_REQUIREMENT_ERROR\"" + } + ], + "id": 2455, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "3000:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3000:33:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2458, + "nodeType": "ExpressionStatement", + "src": "3000:33:16" + } + }, + { + "id": 2460, + "nodeType": "PlaceholderStatement", + "src": "3043:1:16" + } + ] + }, + "documentation": null, + "id": 2462, + "name": "validRequirement", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 2439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2436, + "mutability": "mutable", + "name": "ownerCount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2462, + "src": "2796:18:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2796:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2438, + "mutability": "mutable", + "name": "_required", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2462, + "src": "2816:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2816:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2795:39:16" + }, + "src": "2770:281:16", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2479, + "nodeType": "Block", + "src": "3144:95:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2466, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3158:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3158:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3170:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3158:13:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2478, + "nodeType": "IfStatement", + "src": "3154:79:16", + "trueBody": { + "id": 2477, + "nodeType": "Block", + "src": "3173:60:16", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2471, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3200:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3200:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2473, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3212:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3212:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2470, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2236, + "src": "3192:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3192:30:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2476, + "nodeType": "EmitStatement", + "src": "3187:35:16" + } + ] + } + } + ] + }, + "documentation": { + "id": 2463, + "nodeType": "StructuredDocumentation", + "src": "3057:54:16", + "text": "@dev Fallback function allows to deposit ether. " + }, + "id": 2480, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2464, + "nodeType": "ParameterList", + "parameters": [], + "src": "3124:2:16" + }, + "returnParameters": { + "id": 2465, + "nodeType": "ParameterList", + "parameters": [], + "src": "3144:0:16" + }, + "scope": 3385, + "src": "3116:123:16", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2496, + "nodeType": "Block", + "src": "3272:95:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3286:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3286:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3298:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3286:13:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2495, + "nodeType": "IfStatement", + "src": "3282:79:16", + "trueBody": { + "id": 2494, + "nodeType": "Block", + "src": "3301:60:16", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2488, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3328:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3328:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2490, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3340:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3340:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2487, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2236, + "src": "3320:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3320:30:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2493, + "nodeType": "EmitStatement", + "src": "3315:35:16" + } + ] + } + } + ] + }, + "documentation": null, + "id": 2497, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2481, + "nodeType": "ParameterList", + "parameters": [], + "src": "3252:2:16" + }, + "returnParameters": { + "id": 2482, + "nodeType": "ParameterList", + "parameters": [], + "src": "3272:0:16" + }, + "scope": 3385, + "src": "3245:122:16", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2602, + "nodeType": "Block", + "src": "3705:930:16", + "statements": [ + { + "body": { + "id": 2550, + "nodeType": "Block", + "src": "3760:172:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2522, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "3778:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2526, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2523, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "3786:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2525, + "indexExpression": { + "argumentTypes": null, + "id": 2524, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2512, + "src": "3794:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3786:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3778:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2527, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "3801:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2529, + "indexExpression": { + "argumentTypes": null, + "id": 2528, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2512, + "src": "3809:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3801:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3823:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3815:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3815:7:16", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3815:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3801:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3778:47:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2541, + "nodeType": "IfStatement", + "src": "3774:107:16", + "trueBody": { + "id": 2540, + "nodeType": "Block", + "src": "3827:54:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "4f574e45525f4552524f52", + "id": 2537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3852:13:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50f5ffffd46b93fc4216a2fd08d8a742f987ab7f4a48d802983a9d879430368b", + "typeString": "literal_string \"OWNER_ERROR\"" + }, + "value": "OWNER_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_50f5ffffd46b93fc4216a2fd08d8a742f987ab7f4a48d802983a9d879430368b", + "typeString": "literal_string \"OWNER_ERROR\"" + } + ], + "id": 2536, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "3845:6:16", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3845:21:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2539, + "nodeType": "ExpressionStatement", + "src": "3845:21:16" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2542, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "3895:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2546, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2543, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "3903:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2545, + "indexExpression": { + "argumentTypes": null, + "id": 2544, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2512, + "src": "3911:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3903:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3895:19:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3917:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3895:26:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2549, + "nodeType": "ExpressionStatement", + "src": "3895:26:16" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2515, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2512, + "src": "3735:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2516, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "3739:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3739:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3735:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2551, + "initializationExpression": { + "assignments": [ + 2512 + ], + "declarations": [ + { + "constant": false, + "id": 2512, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2551, + "src": "3720:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2514, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3732:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3720:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 2520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3755:3:16", + "subExpression": { + "argumentTypes": null, + "id": 2519, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2512, + "src": "3755:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2521, + "nodeType": "ExpressionStatement", + "src": "3755:3:16" + }, + "nodeType": "ForStatement", + "src": "3715:217:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2552, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "3942:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2553, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "3951:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "src": "3942:16:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2555, + "nodeType": "ExpressionStatement", + "src": "3942:16:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2556, + "name": "required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2281, + "src": "3968:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2557, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2503, + "src": "3979:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3968:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2559, + "nodeType": "ExpressionStatement", + "src": "3968:20:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "636c61696d4f776e6572736869702829", + "id": 2567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4139:18:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4e71e0c8676e3746167a1acf5f45b9c4f9bfd01db4faa49dd539202eb4a76b23", + "typeString": "literal_string \"claimOwnership()\"" + }, + "value": "claimOwnership()" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_4e71e0c8676e3746167a1acf5f45b9c4f9bfd01db4faa49dd539202eb4a76b23", + "typeString": "literal_string \"claimOwnership()\"" + } + ], + "expression": { + "argumentTypes": null, + "id": 2565, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4122:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4122:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4122:36:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2564, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4112:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2569, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4112:47:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 2570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4195:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2563, + "name": "EmergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2297, + "src": "4070:13:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", + "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" + } + }, + "id": 2571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "selector", + "paramsBytesCount" + ], + "nodeType": "FunctionCall", + "src": "4070:141:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2560, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "4037:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4037:19:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", + "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" + } + }, + "id": 2572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4037:184:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2573, + "nodeType": "ExpressionStatement", + "src": "4037:184:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7365744b2875696e7432353629", + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4333:15:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_67de8be994f5e612024f208d2fe429438ed98f752dca627d14a952634dbd4ba7", + "typeString": "literal_string \"setK(uint256)\"" + }, + "value": "setK(uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_67de8be994f5e612024f208d2fe429438ed98f752dca627d14a952634dbd4ba7", + "typeString": "literal_string \"setK(uint256)\"" + } + ], + "expression": { + "argumentTypes": null, + "id": 2579, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4316:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4316:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4316:33:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2578, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4306:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4306:44:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "hexValue": "3634", + "id": 2584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4386:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + } + ], + "id": 2577, + "name": "EmergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2297, + "src": "4264:13:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", + "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" + } + }, + "id": 2585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "selector", + "paramsBytesCount" + ], + "nodeType": "FunctionCall", + "src": "4264:139:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2574, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "4231:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 2576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4231:19:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", + "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" + } + }, + "id": 2586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4231:182:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2587, + "nodeType": "ExpressionStatement", + "src": "4231:182:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7365744c697175696469747950726f7669646572466565526174652875696e7432353629", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4525:38:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5bb7552a97062da753264cd0b6de4cb510c3e7bc8360141372bd76876d44f10e", + "typeString": "literal_string \"setLiquidityProviderFeeRate(uint256)\"" + }, + "value": "setLiquidityProviderFeeRate(uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_5bb7552a97062da753264cd0b6de4cb510c3e7bc8360141372bd76876d44f10e", + "typeString": "literal_string \"setLiquidityProviderFeeRate(uint256)\"" + } + ], + "expression": { + "argumentTypes": null, + "id": 2593, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4508:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4508:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4508:56:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2592, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4498:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4498:67:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "hexValue": "3634", + "id": 2598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4601:2:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + } + ], + "id": 2591, + "name": "EmergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2297, + "src": "4456:13:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", + "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" + } + }, + "id": 2599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "selector", + "paramsBytesCount" + ], + "nodeType": "FunctionCall", + "src": "4456:162:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2588, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "4423:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 2590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4423:19:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", + "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" + } + }, + "id": 2600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4423:205:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2601, + "nodeType": "ExpressionStatement", + "src": "4423:205:16" + } + ] + }, + "documentation": { + "id": 2498, + "nodeType": "StructuredDocumentation", + "src": "3373:199:16", + "text": "@dev Contract constructor sets initial owners and required number of confirmations.\n @param _owners List of initial owners.\n @param _required Number of required confirmations." + }, + "id": 2603, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2506, + "name": "_owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "3674:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3674:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2508, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2503, + "src": "3690:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2509, + "modifierName": { + "argumentTypes": null, + "id": 2505, + "name": "validRequirement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "3657:16:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3657:43:16" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2501, + "mutability": "mutable", + "name": "_owners", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2603, + "src": "3589:24:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3589:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2500, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3589:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2503, + "mutability": "mutable", + "name": "_required", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2603, + "src": "3615:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2502, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3615:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3588:45:16" + }, + "returnParameters": { + "id": 2510, + "nodeType": "ParameterList", + "parameters": [], + "src": "3705:0:16" + }, + "scope": 3385, + "src": "3577:1058:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2611, + "nodeType": "Block", + "src": "4713:45:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2608, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "4730:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 2609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4730:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2607, + "id": 2610, + "nodeType": "Return", + "src": "4723:28:16" + } + ] + }, + "documentation": null, + "functionSelector": "c0af0227", + "id": 2612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getEmergencyCallsCount", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2604, + "nodeType": "ParameterList", + "parameters": [], + "src": "4672:2:16" + }, + "returnParameters": { + "id": 2607, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "count", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2612, + "src": "4698:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2605, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4698:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4697:15:16" + }, + "scope": 3385, + "src": "4641:117:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2649, + "nodeType": "Block", + "src": "5075:101:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2633, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "5085:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2635, + "indexExpression": { + "argumentTypes": null, + "id": 2634, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "5093:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5085:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5102:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5085:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2638, + "nodeType": "ExpressionStatement", + "src": "5085:21:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2642, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "5128:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 2639, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5116:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5116:11:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5116:18:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2644, + "nodeType": "ExpressionStatement", + "src": "5116:18:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2646, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "5163:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2645, + "name": "OwnerAddition", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "5149:13:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5149:20:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2648, + "nodeType": "EmitStatement", + "src": "5144:25:16" + } + ] + }, + "documentation": { + "id": 2613, + "nodeType": "StructuredDocumentation", + "src": "4764:123:16", + "text": "@dev Allows to add a new owner. Transaction has to be sent by wallet.\n @param owner Address of new owner." + }, + "functionSelector": "7065cb48", + "id": 2650, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2618, + "modifierName": { + "argumentTypes": null, + "id": 2617, + "name": "onlyWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "4950:10:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4950:10:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2620, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "4987:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2621, + "modifierName": { + "argumentTypes": null, + "id": 2619, + "name": "ownerDoesNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "4969:17:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4969:24:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2623, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2615, + "src": "5010:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2624, + "modifierName": { + "argumentTypes": null, + "id": 2622, + "name": "notNull", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2434, + "src": "5002:7:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5002:14:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2626, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5042:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5042:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5058:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5042:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2630, + "name": "required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2281, + "src": "5061:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2631, + "modifierName": { + "argumentTypes": null, + "id": 2625, + "name": "validRequirement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "5025:16:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5025:45:16" + } + ], + "name": "addOwner", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2616, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2615, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2650, + "src": "4910:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2614, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4910:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4909:15:16" + }, + "returnParameters": { + "id": 2632, + "nodeType": "ParameterList", + "parameters": [], + "src": "5075:0:16" + }, + "scope": 3385, + "src": "4892:284:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2720, + "nodeType": "Block", + "src": "5381:390:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2661, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "5391:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2663, + "indexExpression": { + "argumentTypes": null, + "id": 2662, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2653, + "src": "5399:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5391:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5408:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "5391:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2666, + "nodeType": "ExpressionStatement", + "src": "5391:22:16" + }, + { + "body": { + "id": 2699, + "nodeType": "Block", + "src": "5471:141:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2680, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5489:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2682, + "indexExpression": { + "argumentTypes": null, + "id": 2681, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "5496:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5489:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2683, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2653, + "src": "5502:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5489:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2698, + "nodeType": "IfStatement", + "src": "5485:117:16", + "trueBody": { + "id": 2697, + "nodeType": "Block", + "src": "5509:93:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2685, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5527:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2687, + "indexExpression": { + "argumentTypes": null, + "id": 2686, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "5534:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5527:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2688, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5539:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2693, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2689, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5546:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5546:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5562:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5546:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5539:25:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5527:37:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2695, + "nodeType": "ExpressionStatement", + "src": "5527:37:16" + }, + { + "id": 2696, + "nodeType": "Break", + "src": "5582:5:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2671, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "5443:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2672, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5447:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5447:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5463:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "5447:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5443:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2700, + "initializationExpression": { + "assignments": [ + 2668 + ], + "declarations": [ + { + "constant": false, + "id": 2668, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2700, + "src": "5428:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5428:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2670, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5440:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "5428:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 2678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5466:3:16", + "subExpression": { + "argumentTypes": null, + "id": 2677, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "5466:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2679, + "nodeType": "ExpressionStatement", + "src": "5466:3:16" + }, + "nodeType": "ForStatement", + "src": "5423:189:16" + }, + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2701, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5622:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5622:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2704, + "nodeType": "ExpressionStatement", + "src": "5622:10:16" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2705, + "name": "required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2281, + "src": "5647:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2706, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5658:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5658:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5647:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2715, + "nodeType": "IfStatement", + "src": "5643:87:16", + "trueBody": { + "id": 2714, + "nodeType": "Block", + "src": "5673:57:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2710, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "5705:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5705:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2709, + "name": "changeRequirement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2807, + "src": "5687:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 2712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5687:32:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2713, + "nodeType": "ExpressionStatement", + "src": "5687:32:16" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2717, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2653, + "src": "5758:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2716, + "name": "OwnerRemoval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2244, + "src": "5745:12:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5745:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2719, + "nodeType": "EmitStatement", + "src": "5740:24:16" + } + ] + }, + "documentation": { + "id": 2651, + "nodeType": "StructuredDocumentation", + "src": "5182:119:16", + "text": "@dev Allows to remove an owner. Transaction has to be sent by wallet.\n @param owner Address of owner." + }, + "functionSelector": "173825d9", + "id": 2721, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2656, + "modifierName": { + "argumentTypes": null, + "id": 2655, + "name": "onlyWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "5351:10:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5351:10:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2658, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2653, + "src": "5374:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2659, + "modifierName": { + "argumentTypes": null, + "id": 2657, + "name": "ownerExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "5362:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "5362:18:16" + } + ], + "name": "removeOwner", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2721, + "src": "5327:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5327:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5326:15:16" + }, + "returnParameters": { + "id": 2660, + "nodeType": "ParameterList", + "parameters": [], + "src": "5381:0:16" + }, + "scope": 3385, + "src": "5306:465:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2784, + "nodeType": "Block", + "src": "6134:323:16", + "statements": [ + { + "body": { + "id": 2762, + "nodeType": "Block", + "src": "6188:124:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2748, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "6206:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2750, + "indexExpression": { + "argumentTypes": null, + "id": 2749, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2738, + "src": "6213:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6206:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2751, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2724, + "src": "6219:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6206:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2761, + "nodeType": "IfStatement", + "src": "6202:100:16", + "trueBody": { + "id": 2760, + "nodeType": "Block", + "src": "6226:76:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2753, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "6244:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2755, + "indexExpression": { + "argumentTypes": null, + "id": 2754, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2738, + "src": "6251:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6244:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2756, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2726, + "src": "6256:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6244:20:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2758, + "nodeType": "ExpressionStatement", + "src": "6244:20:16" + }, + { + "id": 2759, + "nodeType": "Break", + "src": "6282:5:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2741, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2738, + "src": "6164:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2742, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "6168:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6168:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6164:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2763, + "initializationExpression": { + "assignments": [ + 2738 + ], + "declarations": [ + { + "constant": false, + "id": 2738, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2763, + "src": "6149:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6149:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2740, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6161:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6149:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6183:3:16", + "subExpression": { + "argumentTypes": null, + "id": 2745, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2738, + "src": "6183:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2747, + "nodeType": "ExpressionStatement", + "src": "6183:3:16" + }, + "nodeType": "ForStatement", + "src": "6144:168:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2764, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "6322:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2766, + "indexExpression": { + "argumentTypes": null, + "id": 2765, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2724, + "src": "6330:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6322:14:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6339:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "6322:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2769, + "nodeType": "ExpressionStatement", + "src": "6322:22:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2770, + "name": "isOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2272, + "src": "6354:7:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2772, + "indexExpression": { + "argumentTypes": null, + "id": 2771, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2726, + "src": "6362:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6354:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6374:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6354:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2775, + "nodeType": "ExpressionStatement", + "src": "6354:24:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2777, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2724, + "src": "6406:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2776, + "name": "OwnerRemoval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2244, + "src": "6393:12:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6393:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2779, + "nodeType": "EmitStatement", + "src": "6388:24:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2781, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2726, + "src": "6441:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2780, + "name": "OwnerAddition", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "6427:13:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 2782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6427:23:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2783, + "nodeType": "EmitStatement", + "src": "6422:28:16" + } + ] + }, + "documentation": { + "id": 2722, + "nodeType": "StructuredDocumentation", + "src": "5777:194:16", + "text": "@dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.\n @param owner Address of owner to be replaced.\n @param owner Address of new owner." + }, + "functionSelector": "e20056e6", + "id": 2785, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2729, + "modifierName": { + "argumentTypes": null, + "id": 2728, + "name": "onlyWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "6056:10:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6056:10:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2731, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2724, + "src": "6087:5:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2732, + "modifierName": { + "argumentTypes": null, + "id": 2730, + "name": "ownerExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "6075:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "6075:18:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2734, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2726, + "src": "6120:8:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2735, + "modifierName": { + "argumentTypes": null, + "id": 2733, + "name": "ownerDoesNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2330, + "src": "6102:17:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "6102:27:16" + } + ], + "name": "replaceOwner", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2724, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2785, + "src": "5998:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5998:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2726, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2785, + "src": "6013:16:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6013:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5997:33:16" + }, + "returnParameters": { + "id": 2736, + "nodeType": "ParameterList", + "parameters": [], + "src": "6134:0:16" + }, + "scope": 3385, + "src": "5976:481:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2806, + "nodeType": "Block", + "src": "6770:80:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2798, + "name": "required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2281, + "src": "6780:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2799, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2788, + "src": "6791:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6780:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2801, + "nodeType": "ExpressionStatement", + "src": "6780:20:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2803, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2788, + "src": "6833:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2802, + "name": "RequirementChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2248, + "src": "6815:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 2804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6815:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2805, + "nodeType": "EmitStatement", + "src": "6810:33:16" + } + ] + }, + "documentation": { + "id": 2786, + "nodeType": "StructuredDocumentation", + "src": "6463:167:16", + "text": "@dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.\n @param _required Number of required confirmations." + }, + "functionSelector": "ba51a6df", + "id": 2807, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2791, + "modifierName": { + "argumentTypes": null, + "id": 2790, + "name": "onlyWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "6704:10:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6704:10:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2793, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "6740:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6740:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2795, + "name": "_required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2788, + "src": "6755:9:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2796, + "modifierName": { + "argumentTypes": null, + "id": 2792, + "name": "validRequirement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "6723:16:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "6723:42:16" + } + ], + "name": "changeRequirement", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2788, + "mutability": "mutable", + "name": "_required", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2807, + "src": "6662:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6662:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6661:19:16" + }, + "returnParameters": { + "id": 2797, + "nodeType": "ParameterList", + "parameters": [], + "src": "6770:0:16" + }, + "scope": 3385, + "src": "6635:215:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2823, + "nodeType": "Block", + "src": "7124:89:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2815, + "name": "lockSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2206, + "src": "7134:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2816, + "name": "_lockSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2810, + "src": "7148:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7134:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2818, + "nodeType": "ExpressionStatement", + "src": "7134:26:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2820, + "name": "_lockSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2810, + "src": "7193:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2819, + "name": "LockSecondsChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2258, + "src": "7175:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 2821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7175:31:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2822, + "nodeType": "EmitStatement", + "src": "7170:36:16" + } + ] + }, + "documentation": { + "id": 2808, + "nodeType": "StructuredDocumentation", + "src": "6856:194:16", + "text": "@dev Changes the duration of the time lock for transactions.\n @param _lockSeconds Duration needed after a transaction is confirmed and before it becomes executable, in seconds." + }, + "functionSelector": "8c22d5d3", + "id": 2824, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2813, + "modifierName": { + "argumentTypes": null, + "id": 2812, + "name": "onlyWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "7113:10:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7113:10:16" + } + ], + "name": "changeLockSeconds", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2810, + "mutability": "mutable", + "name": "_lockSeconds", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2824, + "src": "7082:20:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7082:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7081:22:16" + }, + "returnParameters": { + "id": 2814, + "nodeType": "ParameterList", + "parameters": [], + "src": "7124:0:16" + }, + "scope": 3385, + "src": "7055:158:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2870, + "nodeType": "Block", + "src": "7690:343:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2843, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "7700:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2844, + "name": "transactionCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2283, + "src": "7716:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7700:32:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2846, + "nodeType": "ExpressionStatement", + "src": "7700:32:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2847, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "7742:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 2849, + "indexExpression": { + "argumentTypes": null, + "id": 2848, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "7755:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7742:27:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2851, + "name": "destination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2827, + "src": "7811:11:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2852, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2829, + "src": "7843:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2853, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "7868:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7896:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2850, + "name": "Transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2292, + "src": "7772:11:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Transaction_$2292_storage_ptr_$", + "typeString": "type(struct MultiSigWalletWithTimelock.Transaction storage pointer)" + } + }, + "id": 2855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "destination", + "value", + "data", + "executed" + ], + "nodeType": "FunctionCall", + "src": "7772:140:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction memory" + } + }, + "src": "7742:170:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "id": 2857, + "nodeType": "ExpressionStatement", + "src": "7742:170:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2858, + "name": "transactionCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2283, + "src": "7922:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 2859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7942:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7922:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2861, + "nodeType": "ExpressionStatement", + "src": "7922:21:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2863, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "7969:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2862, + "name": "Submission", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2222, + "src": "7958:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 2864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7958:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2865, + "nodeType": "EmitStatement", + "src": "7953:30:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2867, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "8012:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2866, + "name": "confirmTransaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2939, + "src": "7993:18:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7993:33:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2869, + "nodeType": "ExpressionStatement", + "src": "7993:33:16" + } + ] + }, + "documentation": { + "id": 2825, + "nodeType": "StructuredDocumentation", + "src": "7219:266:16", + "text": "@dev Allows an owner to submit and confirm a transaction.\n @param destination Transaction target address.\n @param value Transaction ether value.\n @param data Transaction data payload.\n @return transactionId Returns transaction ID." + }, + "functionSelector": "c6427474", + "id": 2871, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2834, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7625:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7625:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2836, + "modifierName": { + "argumentTypes": null, + "id": 2833, + "name": "ownerExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "7613:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7613:23:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2838, + "name": "destination", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2827, + "src": "7645:11:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 2839, + "modifierName": { + "argumentTypes": null, + "id": 2837, + "name": "notNull", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2434, + "src": "7637:7:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7637:20:16" + } + ], + "name": "submitTransaction", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2827, + "mutability": "mutable", + "name": "destination", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2871, + "src": "7526:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2826, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7526:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2829, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2871, + "src": "7555:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7555:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2831, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2871, + "src": "7578:19:16", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2830, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7578:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7516:87:16" + }, + "returnParameters": { + "id": 2842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2841, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2871, + "src": "7667:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2840, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7667:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7666:23:16" + }, + "scope": 3385, + "src": "7490:543:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2938, + "nodeType": "Block", + "src": "8337:463:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2889, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "8347:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 2893, + "indexExpression": { + "argumentTypes": null, + "id": 2890, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8361:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8347:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2894, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2891, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8376:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8376:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8347:40:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8390:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "8347:47:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2897, + "nodeType": "ExpressionStatement", + "src": "8347:47:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2899, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8422:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8422:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2901, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8434:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2898, + "name": "Confirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2212, + "src": "8409:12:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8409:39:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2903, + "nodeType": "EmitStatement", + "src": "8404:44:16" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2905, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8488:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2904, + "name": "isConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "8476:11:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8476:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2907, + "name": "unlockTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2276, + "src": "8518:11:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 2909, + "indexExpression": { + "argumentTypes": null, + "id": 2908, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8530:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8518:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8548:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8518:31:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8476:73:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 2916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8565:31:16", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2914, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8582:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2913, + "name": "isEmergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3027, + "src": "8566:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8566:30:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8476:120:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2937, + "nodeType": "IfStatement", + "src": "8459:335:16", + "trueBody": { + "id": 2936, + "nodeType": "Block", + "src": "8607:187:16", + "statements": [ + { + "assignments": [ + 2919 + ], + "declarations": [ + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "unlockTime", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2936, + "src": "8621:18:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8621:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2924, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2920, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "8642:5:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 2921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8642:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 2922, + "name": "lockSeconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2206, + "src": "8660:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8642:29:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8621:50:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2925, + "name": "unlockTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2276, + "src": "8685:11:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 2927, + "indexExpression": { + "argumentTypes": null, + "id": 2926, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8697:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8685:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2928, + "name": "unlockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "8714:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8685:39:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "8685:39:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2932, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8757:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2933, + "name": "unlockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "8772:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2931, + "name": "UnlockTimeSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2254, + "src": "8743:13:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 2934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8743:40:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2935, + "nodeType": "EmitStatement", + "src": "8738:45:16" + } + ] + } + } + ] + }, + "documentation": { + "id": 2872, + "nodeType": "StructuredDocumentation", + "src": "8039:102:16", + "text": "@dev Allows an owner to confirm a transaction.\n @param transactionId Transaction ID." + }, + "functionSelector": "c01a8c84", + "id": 2939, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2877, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8232:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8232:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2879, + "modifierName": { + "argumentTypes": null, + "id": 2876, + "name": "ownerExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "8220:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8220:23:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2881, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8270:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2882, + "modifierName": { + "argumentTypes": null, + "id": 2880, + "name": "transactionExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2365, + "src": "8252:17:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8252:32:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 2884, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "8306:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2885, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8321:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8321:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2887, + "modifierName": { + "argumentTypes": null, + "id": 2883, + "name": "notConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2402, + "src": "8293:12:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "8293:39:16" + } + ], + "name": "confirmTransaction", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2874, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2939, + "src": "8174:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8174:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8173:23:16" + }, + "returnParameters": { + "id": 2888, + "nodeType": "ParameterList", + "parameters": [], + "src": "8337:0:16" + }, + "scope": 3385, + "src": "8146:654:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3026, + "nodeType": "Block", + "src": "8883:636:16", + "statements": [ + { + "assignments": [ + 2947 + ], + "declarations": [ + { + "constant": false, + "id": 2947, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3026, + "src": "8893:17:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2946, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8893:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2952, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2948, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "8913:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 2950, + "indexExpression": { + "argumentTypes": null, + "id": 2949, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2941, + "src": "8926:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8913:27:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "id": 2951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": 2289, + "src": "8913:32:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8893:52:16" + }, + { + "body": { + "id": 3022, + "nodeType": "Block", + "src": "9008:482:16", + "statements": [ + { + "assignments": [ + 2965 + ], + "declarations": [ + { + "constant": false, + "id": 2965, + "mutability": "mutable", + "name": "emergencyCall", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3022, + "src": "9022:34:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall" + }, + "typeName": { + "contractScope": null, + "id": 2964, + "name": "EmergencyCall", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2297, + "src": "9022:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2969, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2966, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "9059:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 2968, + "indexExpression": { + "argumentTypes": null, + "id": 2967, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "9074:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9059:17:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9022:54:16" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2970, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "9112:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9112:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2972, + "name": "emergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "9127:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + }, + "id": 2973, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "paramsBytesCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2296, + "src": "9127:30:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 2974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9160:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9127:34:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9112:49:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2977, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "9181:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9181:11:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 2979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9196:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "9181:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9112:85:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 2989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2982, + "name": "emergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "9217:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + }, + "id": 2983, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "9217:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2985, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9240:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9217:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2986, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "9246:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2988, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9251:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9246:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "9217:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9112:141:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 2998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2991, + "name": "emergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "9273:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + }, + "id": 2992, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "9273:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 2994, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9296:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9273:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2995, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "9302:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2997, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 2996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9307:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9302:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "9273:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9112:197:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 3007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3000, + "name": "emergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "9329:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + }, + "id": 3001, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "9329:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 3003, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 3002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9352:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9329:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3004, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "9358:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3006, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 3005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9363:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9358:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "9329:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9112:253:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 3016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3009, + "name": "emergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2965, + "src": "9385:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + }, + "id": 3010, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": 2294, + "src": "9385:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 3012, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 3011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9408:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9385:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3013, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2947, + "src": "9414:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3015, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 3014, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9419:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9414:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "9385:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9112:309:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3021, + "nodeType": "IfStatement", + "src": "9091:389:16", + "trueBody": { + "id": 3020, + "nodeType": "Block", + "src": "9436:44:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9461:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2945, + "id": 3019, + "nodeType": "Return", + "src": "9454:11:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2957, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "8976:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2958, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "8980:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8980:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8976:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3023, + "initializationExpression": { + "assignments": [ + 2954 + ], + "declarations": [ + { + "constant": false, + "id": 2954, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3023, + "src": "8961:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8961:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2956, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8973:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8961:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 2962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9003:3:16", + "subExpression": { + "argumentTypes": null, + "id": 2961, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2954, + "src": "9003:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2963, + "nodeType": "ExpressionStatement", + "src": "9003:3:16" + }, + "nodeType": "ForStatement", + "src": "8956:534:16" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9507:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2945, + "id": 3025, + "nodeType": "Return", + "src": "9500:12:16" + } + ] + }, + "documentation": null, + "id": 3027, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isEmergencyCall", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2941, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3027, + "src": "8831:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8831:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8830:23:16" + }, + "returnParameters": { + "id": 2945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3027, + "src": "8877:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2943, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8877:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8876:6:16" + }, + "scope": 3385, + "src": "8806:713:16", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3050, + "nodeType": "Block", + "src": "9620:207:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3043, + "name": "funcName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3029, + "src": "9732:8:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 3041, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "9715:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9715:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 3044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9715:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3040, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "9705:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 3045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9705:37:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 3046, + "name": "_paramsBytesCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3031, + "src": "9778:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3039, + "name": "EmergencyCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2297, + "src": "9663:13:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_EmergencyCall_$2297_storage_ptr_$", + "typeString": "type(struct MultiSigWalletWithTimelock.EmergencyCall storage pointer)" + } + }, + "id": 3047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "selector", + "paramsBytesCount" + ], + "nodeType": "FunctionCall", + "src": "9663:147:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_EmergencyCall_$2297_memory_ptr", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 3036, + "name": "emergencyCalls", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2300, + "src": "9630:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_EmergencyCall_$2297_storage_$dyn_storage", + "typeString": "struct MultiSigWalletWithTimelock.EmergencyCall storage ref[] storage ref" + } + }, + "id": 3038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9630:19:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_EmergencyCall_$2297_storage_$returns$__$", + "typeString": "function (struct MultiSigWalletWithTimelock.EmergencyCall storage ref)" + } + }, + "id": 3048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9630:190:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3049, + "nodeType": "ExpressionStatement", + "src": "9630:190:16" + } + ] + }, + "documentation": null, + "functionSelector": "f075fb90", + "id": 3051, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3034, + "modifierName": { + "argumentTypes": null, + "id": 3033, + "name": "onlyWallet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "9609:10:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9609:10:16" + } + ], + "name": "addEmergencyCall", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3029, + "mutability": "mutable", + "name": "funcName", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3051, + "src": "9551:22:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3028, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9551:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3031, + "mutability": "mutable", + "name": "_paramsBytesCount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3051, + "src": "9575:25:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9575:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9550:51:16" + }, + "returnParameters": { + "id": 3035, + "nodeType": "ParameterList", + "parameters": [], + "src": "9620:0:16" + }, + "scope": 3385, + "src": "9525:302:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "10142:117:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3069, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "10152:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 3073, + "indexExpression": { + "argumentTypes": null, + "id": 3070, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3054, + "src": "10166:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10152:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 3074, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3071, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10181:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10181:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10152:40:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10195:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "10152:48:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3077, + "nodeType": "ExpressionStatement", + "src": "10152:48:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3079, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10226:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10226:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3081, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3054, + "src": "10238:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3078, + "name": "Revocation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2218, + "src": "10215:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10215:37:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3083, + "nodeType": "EmitStatement", + "src": "10210:42:16" + } + ] + }, + "documentation": { + "id": 3052, + "nodeType": "StructuredDocumentation", + "src": "9833:120:16", + "text": "@dev Allows an owner to revoke a confirmation for a transaction.\n @param transactionId Transaction ID." + }, + "functionSelector": "20ea8d86", + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3057, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10046:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10046:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 3059, + "modifierName": { + "argumentTypes": null, + "id": 3056, + "name": "ownerExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "10034:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "10034:23:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3061, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3054, + "src": "10076:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3062, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10091:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10091:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 3064, + "modifierName": { + "argumentTypes": null, + "id": 3060, + "name": "confirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "10066:9:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_address_$", + "typeString": "modifier (uint256,address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "10066:36:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3066, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3054, + "src": "10123:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3067, + "modifierName": { + "argumentTypes": null, + "id": 3065, + "name": "notExecuted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2417, + "src": "10111:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "10111:26:16" + } + ], + "name": "revokeConfirmation", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3055, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3054, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3085, + "src": "9986:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3053, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9986:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9985:23:16" + }, + "returnParameters": { + "id": 3068, + "nodeType": "ParameterList", + "parameters": [], + "src": "10142:0:16" + }, + "scope": 3385, + "src": "9958:301:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3154, + "nodeType": "Block", + "src": "10519:594:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3099, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "10537:5:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10537:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3101, + "name": "unlockTimes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2276, + "src": "10556:11:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", + "typeString": "mapping(uint256 => uint256)" + } + }, + "id": 3103, + "indexExpression": { + "argumentTypes": null, + "id": 3102, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "10568:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10556:26:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10537:45:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5452414e53414354494f4e5f4e4545445f544f5f554e4c4f434b", + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10584:28:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0e775be8eed223e88abd3716be242e9114c0d3a20959ded3addfe470831caccb", + "typeString": "literal_string \"TRANSACTION_NEED_TO_UNLOCK\"" + }, + "value": "TRANSACTION_NEED_TO_UNLOCK" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0e775be8eed223e88abd3716be242e9114c0d3a20959ded3addfe470831caccb", + "typeString": "literal_string \"TRANSACTION_NEED_TO_UNLOCK\"" + } + ], + "id": 3098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10529:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10529:84:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3107, + "nodeType": "ExpressionStatement", + "src": "10529:84:16" + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3109, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "10640:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3108, + "name": "isConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "10628:11:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10628:26:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3153, + "nodeType": "IfStatement", + "src": "10624:483:16", + "trueBody": { + "id": 3152, + "nodeType": "Block", + "src": "10656:451:16", + "statements": [ + { + "assignments": [ + 3112 + ], + "declarations": [ + { + "constant": false, + "id": 3112, + "mutability": "mutable", + "name": "transaction", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3152, + "src": "10670:31:16", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction" + }, + "typeName": { + "contractScope": null, + "id": 3111, + "name": "Transaction", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2292, + "src": "10670:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3116, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3113, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "10704:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 3115, + "indexExpression": { + "argumentTypes": null, + "id": 3114, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "10717:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10704:27:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10670:61:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 3121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3117, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3112, + "src": "10745:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 2291, + "src": "10745:20:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10768:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10745:27:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3122, + "nodeType": "ExpressionStatement", + "src": "10745:27:16" + }, + { + "assignments": [ + 3124, + null + ], + "declarations": [ + { + "constant": false, + "id": 3124, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3152, + "src": "10787:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3123, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10787:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 3134, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3131, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3112, + "src": "10877:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" + } + }, + "id": 3132, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": 2289, + "src": "10877:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_storage", + "typeString": "bytes storage ref" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3125, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3112, + "src": "10805:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" + } + }, + "id": 3126, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "destination", + "nodeType": "MemberAccess", + "referencedDeclaration": 2285, + "src": "10805:23:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10805:28:16", + "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": 3130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3128, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3112, + "src": "10841:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" + } + }, + "id": 3129, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2287, + "src": "10841:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "10805:54:16", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 3133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10805:102:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10786:121:16" + }, + { + "condition": { + "argumentTypes": null, + "id": 3135, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3124, + "src": "10925:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3150, + "nodeType": "Block", + "src": "10982:115:16", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3141, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "11022:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3140, + "name": "ExecutionFailure", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2230, + "src": "11005:16:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11005:31:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3143, + "nodeType": "EmitStatement", + "src": "11000:36:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 3148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3144, + "name": "transaction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3112, + "src": "11054:11:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage_ptr", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage pointer" + } + }, + "id": 3146, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 2291, + "src": "11054:20:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11077:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "11054:28:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3149, + "nodeType": "ExpressionStatement", + "src": "11054:28:16" + } + ] + }, + "id": 3151, + "nodeType": "IfStatement", + "src": "10921:176:16", + "trueBody": { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3137, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "10949:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3136, + "name": "Execution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2226, + "src": "10939:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10939:24:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3139, + "nodeType": "EmitStatement", + "src": "10934:29:16" + } + } + ] + } + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "10265:110:16", + "text": "@dev Allows anyone to execute a confirmed transaction.\n @param transactionId Transaction ID." + }, + "functionSelector": "ee22610b", + "id": 3155, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3091, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10468:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10468:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 3093, + "modifierName": { + "argumentTypes": null, + "id": 3090, + "name": "ownerExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "10456:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "10456:23:16" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3095, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "10500:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3096, + "modifierName": { + "argumentTypes": null, + "id": 3094, + "name": "notExecuted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2417, + "src": "10488:11:16", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "10488:26:16" + } + ], + "name": "executeTransaction", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3155, + "src": "10408:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10408:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10407:23:16" + }, + "returnParameters": { + "id": 3097, + "nodeType": "ParameterList", + "parameters": [], + "src": "10519:0:16" + }, + "scope": 3385, + "src": "10380:733:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3202, + "nodeType": "Block", + "src": "11341:304:16", + "statements": [ + { + "assignments": [ + 3164 + ], + "declarations": [ + { + "constant": false, + "id": 3164, + "mutability": "mutable", + "name": "count", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3202, + "src": "11351:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3163, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11351:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3166, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11367:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11351:17:16" + }, + { + "body": { + "id": 3198, + "nodeType": "Block", + "src": "11423:193:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3178, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "11441:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 3180, + "indexExpression": { + "argumentTypes": null, + "id": 3179, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3158, + "src": "11455:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11441:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 3184, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3181, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "11470:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3183, + "indexExpression": { + "argumentTypes": null, + "id": 3182, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3168, + "src": "11477:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11470:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11441:39:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3190, + "nodeType": "IfStatement", + "src": "11437:88:16", + "trueBody": { + "id": 3189, + "nodeType": "Block", + "src": "11482:43:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3185, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3164, + "src": "11500:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11509:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11500:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "11500:10:16" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3191, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3164, + "src": "11543:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3192, + "name": "required", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2281, + "src": "11552:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11543:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3197, + "nodeType": "IfStatement", + "src": "11539:67:16", + "trueBody": { + "id": 3196, + "nodeType": "Block", + "src": "11562:44:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11587:4:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3162, + "id": 3195, + "nodeType": "Return", + "src": "11580:11:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3171, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3168, + "src": "11399:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3172, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "11403:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11403:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11399:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3199, + "initializationExpression": { + "assignments": [ + 3168 + ], + "declarations": [ + { + "constant": false, + "id": 3168, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3199, + "src": "11384:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11384:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3170, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11396:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11384:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11418:3:16", + "subExpression": { + "argumentTypes": null, + "id": 3175, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3168, + "src": "11418:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3177, + "nodeType": "ExpressionStatement", + "src": "11418:3:16" + }, + "nodeType": "ForStatement", + "src": "11379:237:16" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11633:5:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 3162, + "id": 3201, + "nodeType": "Return", + "src": "11626:12:16" + } + ] + }, + "documentation": { + "id": 3156, + "nodeType": "StructuredDocumentation", + "src": "11119:146:16", + "text": "@dev Returns the confirmation status of a transaction.\n @param transactionId Transaction ID.\n @return Confirmation status." + }, + "functionSelector": "784547a7", + "id": 3203, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isConfirmed", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3159, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3158, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3203, + "src": "11291:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11291:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11290:23:16" + }, + "returnParameters": { + "id": 3162, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3161, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3203, + "src": "11335:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3160, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11335:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:6:16" + }, + "scope": 3385, + "src": "11270:375:16", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3237, + "nodeType": "Block", + "src": "11934:172:16", + "statements": [ + { + "body": { + "id": 3235, + "nodeType": "Block", + "src": "11988:112:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3222, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "12006:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 3224, + "indexExpression": { + "argumentTypes": null, + "id": 3223, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "12020:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12006:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 3228, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3225, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "12035:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3227, + "indexExpression": { + "argumentTypes": null, + "id": 3226, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3212, + "src": "12042:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12035:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12006:39:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3234, + "nodeType": "IfStatement", + "src": "12002:88:16", + "trueBody": { + "id": 3233, + "nodeType": "Block", + "src": "12047:43:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3229, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3209, + "src": "12065:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 3230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12074:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12065:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3232, + "nodeType": "ExpressionStatement", + "src": "12065:10:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3215, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3212, + "src": "11964:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3216, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "11968:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11968:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11964:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3236, + "initializationExpression": { + "assignments": [ + 3212 + ], + "declarations": [ + { + "constant": false, + "id": 3212, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3236, + "src": "11949:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11949:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3214, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11961:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11949:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11983:3:16", + "subExpression": { + "argumentTypes": null, + "id": 3219, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3212, + "src": "11983:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3221, + "nodeType": "ExpressionStatement", + "src": "11983:3:16" + }, + "nodeType": "ForStatement", + "src": "11944:156:16" + } + ] + }, + "documentation": { + "id": 3204, + "nodeType": "StructuredDocumentation", + "src": "11682:156:16", + "text": "@dev Returns number of confirmations of a transaction.\n @param transactionId Transaction ID.\n @return count Number of confirmations." + }, + "functionSelector": "8b51d13f", + "id": 3238, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getConfirmationCount", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3207, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3206, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3238, + "src": "11873:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11873:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11872:23:16" + }, + "returnParameters": { + "id": 3210, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3209, + "mutability": "mutable", + "name": "count", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3238, + "src": "11919:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3208, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11918:15:16" + }, + "scope": 3385, + "src": "11843:263:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3282, + "nodeType": "Block", + "src": "12503:216:16", + "statements": [ + { + "body": { + "id": 3280, + "nodeType": "Block", + "src": "12560:153:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3258, + "name": "pending", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3241, + "src": "12579:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 3263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12590:25:16", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3259, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "12591:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 3261, + "indexExpression": { + "argumentTypes": null, + "id": 3260, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3249, + "src": "12604:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12591:15:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "id": 3262, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 2291, + "src": "12591:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12579:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3265, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12578:38:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3266, + "name": "executed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3243, + "src": "12621:8:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3267, + "name": "transactions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2262, + "src": "12633:12:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Transaction_$2292_storage_$", + "typeString": "mapping(uint256 => struct MultiSigWalletWithTimelock.Transaction storage ref)" + } + }, + "id": 3269, + "indexExpression": { + "argumentTypes": null, + "id": 3268, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3249, + "src": "12646:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12633:15:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Transaction_$2292_storage", + "typeString": "struct MultiSigWalletWithTimelock.Transaction storage ref" + } + }, + "id": 3270, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "executed", + "nodeType": "MemberAccess", + "referencedDeclaration": 2291, + "src": "12633:24:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12621:36:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3272, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12620:38:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12578:80:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3279, + "nodeType": "IfStatement", + "src": "12574:129:16", + "trueBody": { + "id": 3278, + "nodeType": "Block", + "src": "12660:43:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3274, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3246, + "src": "12678:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 3275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12687:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12678:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3277, + "nodeType": "ExpressionStatement", + "src": "12678:10:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3252, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3249, + "src": "12533:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3253, + "name": "transactionCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2283, + "src": "12537:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12533:20:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3281, + "initializationExpression": { + "assignments": [ + 3249 + ], + "declarations": [ + { + "constant": false, + "id": 3249, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3281, + "src": "12518:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3248, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12518:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3251, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12530:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12518:13:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "12555:3:16", + "subExpression": { + "argumentTypes": null, + "id": 3255, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3249, + "src": "12555:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3257, + "nodeType": "ExpressionStatement", + "src": "12555:3:16" + }, + "nodeType": "ForStatement", + "src": "12513:200:16" + } + ] + }, + "documentation": { + "id": 3239, + "nodeType": "StructuredDocumentation", + "src": "12112:262:16", + "text": "@dev Returns total number of transactions after filers are applied.\n @param pending Include pending transactions.\n @param executed Include executed transactions.\n @return count Total number of transactions after filters are applied." + }, + "functionSelector": "54741525", + "id": 3283, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTransactionCount", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3241, + "mutability": "mutable", + "name": "pending", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3283, + "src": "12408:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3240, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12408:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3243, + "mutability": "mutable", + "name": "executed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3283, + "src": "12422:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3242, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12422:4:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12407:29:16" + }, + "returnParameters": { + "id": 3247, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3246, + "mutability": "mutable", + "name": "count", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3283, + "src": "12484:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12484:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12483:15:16" + }, + "scope": 3385, + "src": "12379:340:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3292, + "nodeType": "Block", + "src": "12872:30:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3290, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "12889:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 3289, + "id": 3291, + "nodeType": "Return", + "src": "12882:13:16" + } + ] + }, + "documentation": { + "id": 3284, + "nodeType": "StructuredDocumentation", + "src": "12725:80:16", + "text": "@dev Returns list of owners.\n @return List of owner addresses." + }, + "functionSelector": "a0e67e2b", + "id": 3293, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getOwners", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3285, + "nodeType": "ParameterList", + "parameters": [], + "src": "12828:2:16" + }, + "returnParameters": { + "id": 3289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3288, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3293, + "src": "12854:16:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3286, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12854:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3287, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12854:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12853:18:16" + }, + "scope": 3385, + "src": "12810:92:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3383, + "nodeType": "Block", + "src": "13235:491:16", + "statements": [ + { + "assignments": [ + 3306 + ], + "declarations": [ + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "confirmationsTemp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3383, + "src": "13245:34:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13245:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3305, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13245:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3313, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3310, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "13296:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13296:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "13282: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": 3307, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13286:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3308, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13286:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 3312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13282:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13245:65:16" + }, + { + "assignments": [ + 3315 + ], + "declarations": [ + { + "constant": false, + "id": 3315, + "mutability": "mutable", + "name": "count", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3383, + "src": "13320:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3314, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13320:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3317, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13336:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13320:17:16" + }, + { + "assignments": [ + 3319 + ], + "declarations": [ + { + "constant": false, + "id": 3319, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3383, + "src": "13347:9:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3318, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13347:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3320, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "13347:9:16" + }, + { + "body": { + "id": 3353, + "nodeType": "Block", + "src": "13403:166:16", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3332, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2268, + "src": "13421:13:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(address => bool))" + } + }, + "id": 3334, + "indexExpression": { + "argumentTypes": null, + "id": 3333, + "name": "transactionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3296, + "src": "13435:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13421:28:16", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 3338, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3335, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "13450:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3337, + "indexExpression": { + "argumentTypes": null, + "id": 3336, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13457:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13450:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13421:39:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3352, + "nodeType": "IfStatement", + "src": "13417:142:16", + "trueBody": { + "id": 3351, + "nodeType": "Block", + "src": "13462:97:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3339, + "name": "confirmationsTemp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "13480:17:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 3341, + "indexExpression": { + "argumentTypes": null, + "id": 3340, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3315, + "src": "13498:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13480:24:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3342, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "13507:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3344, + "indexExpression": { + "argumentTypes": null, + "id": 3343, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13514:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13507:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13480:36:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3346, + "nodeType": "ExpressionStatement", + "src": "13480:36:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 3349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3347, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3315, + "src": "13534:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13543:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13534:10:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3350, + "nodeType": "ExpressionStatement", + "src": "13534:10:16" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3325, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13379:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3326, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "13383:6:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13383:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13379:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3354, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3321, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13372:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13376:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13372:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3324, + "nodeType": "ExpressionStatement", + "src": "13372:5:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13398:3:16", + "subExpression": { + "argumentTypes": null, + "id": 3329, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13398:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3331, + "nodeType": "ExpressionStatement", + "src": "13398:3:16" + }, + "nodeType": "ForStatement", + "src": "13367:202:16" + }, + { + "expression": { + "argumentTypes": null, + "id": 3361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3355, + "name": "_confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3300, + "src": "13579:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3359, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3315, + "src": "13610:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "13596: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": 3356, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13600:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3357, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13600:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "id": 3360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13596:20:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "src": "13579:37:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 3362, + "nodeType": "ExpressionStatement", + "src": "13579:37:16" + }, + { + "body": { + "id": 3381, + "nodeType": "Block", + "src": "13655:65:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3373, + "name": "_confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3300, + "src": "13669:14:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 3375, + "indexExpression": { + "argumentTypes": null, + "id": 3374, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13684:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13669:17:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3376, + "name": "confirmationsTemp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "13689:17:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 3378, + "indexExpression": { + "argumentTypes": null, + "id": 3377, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13707:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13689:20:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13669:40:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3380, + "nodeType": "ExpressionStatement", + "src": "13669:40:16" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3367, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13639:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3368, + "name": "count", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3315, + "src": "13643:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13639:9:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3382, + "initializationExpression": { + "expression": { + "argumentTypes": null, + "id": 3365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3363, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13632:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 3364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13636:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13632:5:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3366, + "nodeType": "ExpressionStatement", + "src": "13632:5:16" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13650:3:16", + "subExpression": { + "argumentTypes": null, + "id": 3370, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3319, + "src": "13650:1:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3372, + "nodeType": "ExpressionStatement", + "src": "13650:3:16" + }, + "nodeType": "ForStatement", + "src": "13627:93:16" + } + ] + }, + "documentation": { + "id": 3294, + "nodeType": "StructuredDocumentation", + "src": "12908:189:16", + "text": "@dev Returns array with owner addresses, which confirmed transaction.\n @param transactionId Transaction ID.\n @return _confirmations Returns array of owner addresses." + }, + "functionSelector": "b5dc40c3", + "id": 3384, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getConfirmations", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3296, + "mutability": "mutable", + "name": "transactionId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3384, + "src": "13128:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3295, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13128:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13127:23:16" + }, + "returnParameters": { + "id": 3301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3300, + "mutability": "mutable", + "name": "_confirmations", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3384, + "src": "13198:31:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 3298, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13198:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3299, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13198:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13197:33:16" + }, + "scope": 3385, + "src": "13102:624:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3386, + "src": "204:13524:16" + } + ], + "src": "145:13584:16" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.513Z", + "devdoc": { + "methods": { + "addOwner(address)": { + "details": "Allows to add a new owner. Transaction has to be sent by wallet.", + "params": { + "owner": "Address of new owner." + } + }, + "changeLockSeconds(uint256)": { + "details": "Changes the duration of the time lock for transactions.", + "params": { + "_lockSeconds": "Duration needed after a transaction is confirmed and before it becomes executable, in seconds." + } + }, + "changeRequirement(uint256)": { + "details": "Allows to change the number of required confirmations. Transaction has to be sent by wallet.", + "params": { + "_required": "Number of required confirmations." + } + }, + "confirmTransaction(uint256)": { + "details": "Allows an owner to confirm a transaction.", + "params": { + "transactionId": "Transaction ID." + } + }, + "constructor": { + "details": "Contract constructor sets initial owners and required number of confirmations.", + "params": { + "_owners": "List of initial owners.", + "_required": "Number of required confirmations." + } + }, + "executeTransaction(uint256)": { + "details": "Allows anyone to execute a confirmed transaction.", + "params": { + "transactionId": "Transaction ID." + } + }, + "getConfirmationCount(uint256)": { + "details": "Returns number of confirmations of a transaction.", + "params": { + "transactionId": "Transaction ID." + }, + "returns": { + "count": "Number of confirmations." + } + }, + "getConfirmations(uint256)": { + "details": "Returns array with owner addresses, which confirmed transaction.", + "params": { + "transactionId": "Transaction ID." + }, + "returns": { + "_confirmations": "Returns array of owner addresses." + } + }, + "getOwners()": { + "details": "Returns list of owners.", + "returns": { + "_0": "List of owner addresses." + } + }, + "getTransactionCount(bool,bool)": { + "details": "Returns total number of transactions after filers are applied.", + "params": { + "executed": "Include executed transactions.", + "pending": "Include pending transactions." + }, + "returns": { + "count": "Total number of transactions after filters are applied." + } + }, + "isConfirmed(uint256)": { + "details": "Returns the confirmation status of a transaction.", + "params": { + "transactionId": "Transaction ID." + }, + "returns": { + "_0": "Confirmation status." + } + }, + "removeOwner(address)": { + "details": "Allows to remove an owner. Transaction has to be sent by wallet.", + "params": { + "owner": "Address of owner." + } + }, + "replaceOwner(address,address)": { + "details": "Allows to replace an owner with a new owner. Transaction has to be sent by wallet.", + "params": { + "owner": "Address of new owner." + } + }, + "revokeConfirmation(uint256)": { + "details": "Allows an owner to revoke a confirmation for a transaction.", + "params": { + "transactionId": "Transaction ID." + } + }, + "submitTransaction(address,uint256,bytes)": { + "details": "Allows an owner to submit and confirm a transaction.", + "params": { + "data": "Transaction data payload.", + "destination": "Transaction target address.", + "value": "Transaction ether value." + }, + "returns": { + "transactionId": "Returns transaction ID." + } + } + } + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/NaiveOracle.json b/build-v1/contracts/NaiveOracle.json new file mode 100644 index 0000000..478faa4 --- /dev/null +++ b/build-v1/contracts/NaiveOracle.json @@ -0,0 +1,835 @@ +{ + "contractName": "NaiveOracle", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "tokenPrice", + "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": "uint256", + "name": "newPrice", + "type": "uint256" + } + ], + "name": "setPrice", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"setPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/NaiveOracle.sol\":\"NaiveOracle\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/NaiveOracle.sol\":{\"keccak256\":\"0x32518fb42af0c68be8e7473f8afe6f6528e3ae7dfd232ba45d64f44d4bcaaf3e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e921f3e064f4c641a93a266d398434a9956b8a93f92d3465117fc30051424077\",\"dweb:/ipfs/QmPCsEvxRdXh1wpAdhKdmq5Qk4i1JKoQbxt6g2p89iBHw1\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol\":{\"keccak256\":\"0xb7a2ca6570834e4784e86d19fd5a4b6b1eff22a4586dc240659943396a365aa5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5855a493c78e787d7effd87d9c661acbcd19ca1e1ba72dbeaa91c3c8db29cbb4\",\"dweb:/ipfs/QmSddEexZ5okMatgoQ5JZRoJqe7BwsJwwWA2o1kKx7vbTH\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a361039a806100696000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638456db151161005b5780638456db15146100bf57806391b7f5ed146100c757806398d5fdca146100da578063f2fde38b146100e25761007d565b806316048bc4146100825780634e71e0c8146100a05780637ff9b596146100aa575b600080fd5b61008a6100f5565b60405161009791906102d6565b60405180910390f35b6100a8610104565b005b6100b261019b565b604051610097919061035b565b61008a6101a1565b6100a86100d53660046102be565b6101b0565b6100b26101df565b6100a86100f0366004610290565b6101e5565b6000546001600160a01b031681565b6001546001600160a01b031633146101375760405162461bcd60e51b815260040161012e906102ea565b60405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60025481565b6001546001600160a01b031681565b6000546001600160a01b031633146101da5760405162461bcd60e51b815260040161012e90610338565b600255565b60025490565b6000546001600160a01b0316331461020f5760405162461bcd60e51b815260040161012e90610338565b6001600160a01b0381166102355760405162461bcd60e51b815260040161012e90610311565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156102a1578081fd5b81356001600160a01b03811681146102b7578182fd5b9392505050565b6000602082840312156102cf578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b9081526020019056fea2646970667358221220e2351ef8fdb9b0d64fa4d0ceb202d1c149b0081b555f4c9e3d8b25d28074b54664736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638456db151161005b5780638456db15146100bf57806391b7f5ed146100c757806398d5fdca146100da578063f2fde38b146100e25761007d565b806316048bc4146100825780634e71e0c8146100a05780637ff9b596146100aa575b600080fd5b61008a6100f5565b60405161009791906102d6565b60405180910390f35b6100a8610104565b005b6100b261019b565b604051610097919061035b565b61008a6101a1565b6100a86100d53660046102be565b6101b0565b6100b26101df565b6100a86100f0366004610290565b6101e5565b6000546001600160a01b031681565b6001546001600160a01b031633146101375760405162461bcd60e51b815260040161012e906102ea565b60405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60025481565b6001546001600160a01b031681565b6000546001600160a01b031633146101da5760405162461bcd60e51b815260040161012e90610338565b600255565b60025490565b6000546001600160a01b0316331461020f5760405162461bcd60e51b815260040161012e90610338565b6001600160a01b0381166102355760405162461bcd60e51b815260040161012e90610311565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000602082840312156102a1578081fd5b81356001600160a01b03811681146102b7578182fd5b9392505050565b6000602082840312156102cf578081fd5b5035919050565b6001600160a01b0391909116815260200190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b9081526020019056fea2646970667358221220e2351ef8fdb9b0d64fa4d0ceb202d1c149b0081b555f4c9e3d8b25d28074b54664736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "206:257:17:-:0;;;;;;;;;;;;-1:-1:-1;757:7:38;:20;;-1:-1:-1;;;;;;757:20:38;767:10;757:20;;;;792:41;;-1:-1:-1;;;;;825:7:38;;;;;757;792:41;;757:7;;792:41;206:257:17;;;;;;", + "deployedSourceMap": "206:257:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;251:22:38;;;:::i;:::-;;;;;;;;;;;;;;;;1072:225;;;:::i;:::-;;244:25:17;;;:::i;:::-;;;;;;;;279:26:38;;;:::i;276:93:17:-;;;;;;;;;:::i;375:86::-;;;:::i;846:220:38:-;;;;;;;;;:::i;251:22::-;;;-1:-1:-1;;;;;251:22:38;;:::o;1072:225::-;1139:11;;-1:-1:-1;;;;;1139:11:38;1125:10;:25;1117:51;;;;-1:-1:-1;;;1117:51:38;;;;;;;;;;;;;;;;;1213:11;;;1204:7;;1183:42;;-1:-1:-1;;;;;1213:11:38;;;;1204:7;;;;1183:42;;;1245:11;;;;1235:21;;-1:-1:-1;;;;;;1235:21:38;;;-1:-1:-1;;;;;1245:11:38;;1235:21;;;;1266:24;;;1072:225::o;244:25:17:-;;;;:::o;279:26:38:-;;;-1:-1:-1;;;;;279:26:38;;:::o;276:93:17:-;635:7:38;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;341:10:17::1;:21:::0;276:93::o;375:86::-;444:10;;375:86;:::o;846:220:38:-;635:7;;-1:-1:-1;;;;;635:7:38;621:10;:21;613:43;;;;-1:-1:-1;;;613:43:38;;;;;;;;;-1:-1:-1;;;;;928:22:38;::::1;920:48;;;;-1:-1:-1::0;;;920:48:38::1;;;;;;;;;1009:7;::::0;;983:44:::1;::::0;-1:-1:-1;;;;;983:44:38;;::::1;::::0;1009:7;::::1;::::0;983:44:::1;::::0;::::1;1037:11;:22:::0;;-1:-1:-1;;;;;;1037:22:38::1;-1:-1:-1::0;;;;;1037:22:38;;;::::1;::::0;;;::::1;::::0;;846:220::o;279:241:-1:-;;383:2;371:9;362:7;358:23;354:32;351:2;;;-1:-1;;389:12;351:2;72:20;;-1:-1;;;;;4035:54;;4239:35;;4229:2;;-1:-1;;4278:12;4229:2;441:63;345:175;-1:-1;;;345:175;527:241;;631:2;619:9;610:7;606:23;602:32;599:2;;;-1:-1;;637:12;599:2;-1:-1;209:20;;593:175;-1:-1;593:175;1976:222;-1:-1;;;;;4035:54;;;;846:37;;2103:2;2088:18;;2074:124;2205:416;2405:2;2419:47;;;1120:2;2390:18;;;3807:19;-1:-1;;;3847:14;;;1136:36;1191:12;;;2376:245;2628:416;2828:2;2842:47;;;1442:2;2813:18;;;3807:19;-1:-1;;;3847:14;;;1458:36;1513:12;;;2799:245;3051:416;3251:2;3265:47;;;1764:1;3236:18;;;3807:19;-1:-1;;;3847:14;;;1779:32;1830:12;;;3222:245;3474:222;1927:37;;;3601:2;3586:18;;3572:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {Ownable} from \"../lib/Ownable.sol\";\n\n\n// Oracle only for test\ncontract NaiveOracle is Ownable {\n uint256 public tokenPrice;\n\n function setPrice(uint256 newPrice) external onlyOwner {\n tokenPrice = newPrice;\n }\n\n function getPrice() external view returns (uint256) {\n return tokenPrice;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/NaiveOracle.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/NaiveOracle.sol", + "exportedSymbols": { + "NaiveOracle": [ + 3415 + ] + }, + "id": 3416, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3387, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:17" + }, + { + "id": 3388, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:17" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 3390, + "nodeType": "ImportDirective", + "scope": 3416, + "sourceUnit": 11272, + "src": "136:43:17", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3389, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:17", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3391, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "230:7:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 3392, + "nodeType": "InheritanceSpecifier", + "src": "230:7:17" + } + ], + "contractDependencies": [ + 11271 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3415, + "linearizedBaseContracts": [ + 3415, + 11271 + ], + "name": "NaiveOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "7ff9b596", + "id": 3394, + "mutability": "mutable", + "name": "tokenPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3415, + "src": "244:25:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3393, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "244:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3405, + "nodeType": "Block", + "src": "331:38:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3401, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3394, + "src": "341:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3402, + "name": "newPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "354:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "341:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3404, + "nodeType": "ExpressionStatement", + "src": "341:21:17" + } + ] + }, + "documentation": null, + "functionSelector": "91b7f5ed", + "id": 3406, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3399, + "modifierName": { + "argumentTypes": null, + "id": 3398, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "321:9:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "321:9:17" + } + ], + "name": "setPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "newPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3406, + "src": "294:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3395, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "294:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "293:18:17" + }, + "returnParameters": { + "id": 3400, + "nodeType": "ParameterList", + "parameters": [], + "src": "331:0:17" + }, + "scope": 3415, + "src": "276:93:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3413, + "nodeType": "Block", + "src": "427:34:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3411, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3394, + "src": "444:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3410, + "id": 3412, + "nodeType": "Return", + "src": "437:17:17" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 3414, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3407, + "nodeType": "ParameterList", + "parameters": [], + "src": "392:2:17" + }, + "returnParameters": { + "id": 3410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3414, + "src": "418:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3408, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "418:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "417:9:17" + }, + "scope": 3415, + "src": "375:86:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3416, + "src": "206:257:17" + } + ], + "src": "78:386:17" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/NaiveOracle.sol", + "exportedSymbols": { + "NaiveOracle": [ + 3415 + ] + }, + "id": 3416, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3387, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:17" + }, + { + "id": 3388, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:17" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 3390, + "nodeType": "ImportDirective", + "scope": 3416, + "sourceUnit": 11272, + "src": "136:43:17", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3389, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:17", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3391, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11271, + "src": "230:7:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$11271", + "typeString": "contract Ownable" + } + }, + "id": 3392, + "nodeType": "InheritanceSpecifier", + "src": "230:7:17" + } + ], + "contractDependencies": [ + 11271 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3415, + "linearizedBaseContracts": [ + 3415, + 11271 + ], + "name": "NaiveOracle", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "7ff9b596", + "id": 3394, + "mutability": "mutable", + "name": "tokenPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3415, + "src": "244:25:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3393, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "244:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3405, + "nodeType": "Block", + "src": "331:38:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3401, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3394, + "src": "341:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3402, + "name": "newPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "354:8:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "341:21:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3404, + "nodeType": "ExpressionStatement", + "src": "341:21:17" + } + ] + }, + "documentation": null, + "functionSelector": "91b7f5ed", + "id": 3406, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3399, + "modifierName": { + "argumentTypes": null, + "id": 3398, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "321:9:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "321:9:17" + } + ], + "name": "setPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "newPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3406, + "src": "294:16:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3395, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "294:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "293:18:17" + }, + "returnParameters": { + "id": 3400, + "nodeType": "ParameterList", + "parameters": [], + "src": "331:0:17" + }, + "scope": 3415, + "src": "276:93:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3413, + "nodeType": "Block", + "src": "427:34:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3411, + "name": "tokenPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3394, + "src": "444:10:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3410, + "id": 3412, + "nodeType": "Return", + "src": "437:17:17" + } + ] + }, + "documentation": null, + "functionSelector": "98d5fdca", + "id": 3414, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3407, + "nodeType": "ParameterList", + "parameters": [], + "src": "392:2:17" + }, + "returnParameters": { + "id": 3410, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3414, + "src": "418:7:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3408, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "418:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "417:9:17" + }, + "scope": 3415, + "src": "375:86:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3416, + "src": "206:257:17" + } + ], + "src": "78:386:17" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.522Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/Ownable.json b/build-v1/contracts/Ownable.json new file mode 100644 index 0000000..8a2ea71 --- /dev/null +++ b/build-v1/contracts/Ownable.json @@ -0,0 +1,2895 @@ +{ + "contractName": "Ownable", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"Ownable\"},\"userdoc\":{\"methods\":{},\"notice\":\"Ownership related functions\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol\":{\"keccak256\":\"0xb7a2ca6570834e4784e86d19fd5a4b6b1eff22a4586dc240659943396a365aa5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5855a493c78e787d7effd87d9c661acbcd19ca1e1ba72dbeaa91c3c8db29cbb4\",\"dweb:/ipfs/QmSddEexZ5okMatgoQ5JZRoJqe7BwsJwwWA2o1kKx7vbTH\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n/**\n * @title Ownable\n * @author DODO Breeder\n *\n * @notice Ownership related functions\n */\ncontract Ownable {\n address public _OWNER_;\n address public _NEW_OWNER_;\n\n // ============ Events ============\n\n event OwnershipTransferPrepared(address indexed previousOwner, address indexed newOwner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n // ============ Modifiers ============\n\n modifier onlyOwner() {\n require(msg.sender == _OWNER_, \"NOT_OWNER\");\n _;\n }\n\n // ============ Functions ============\n\n constructor() internal {\n _OWNER_ = msg.sender;\n emit OwnershipTransferred(address(0), _OWNER_);\n }\n\n function transferOwnership(address newOwner) external onlyOwner {\n require(newOwner != address(0), \"INVALID_OWNER\");\n emit OwnershipTransferPrepared(_OWNER_, newOwner);\n _NEW_OWNER_ = newOwner;\n }\n\n function claimOwnership() external {\n require(msg.sender == _NEW_OWNER_, \"INVALID_CLAIM\");\n emit OwnershipTransferred(_OWNER_, _NEW_OWNER_);\n _OWNER_ = _NEW_OWNER_;\n _NEW_OWNER_ = address(0);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "exportedSymbols": { + "Ownable": [ + 11271 + ] + }, + "id": 11272, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11168, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:38" + }, + { + "id": 11169, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:38" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 11170, + "nodeType": "StructuredDocumentation", + "src": "136:91:38", + "text": " @title Ownable\n @author DODO Breeder\n @notice Ownership related functions" + }, + "fullyImplemented": true, + "id": 11271, + "linearizedBaseContracts": [ + 11271 + ], + "name": "Ownable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "16048bc4", + "id": 11172, + "mutability": "mutable", + "name": "_OWNER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11271, + "src": "251:22:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11171, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "251:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "8456db15", + "id": 11174, + "mutability": "mutable", + "name": "_NEW_OWNER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11271, + "src": "279:26:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "279:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 11180, + "name": "OwnershipTransferPrepared", + "nodeType": "EventDefinition", + "parameters": { + "id": 11179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11176, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11180, + "src": "385:29:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11175, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "385:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11178, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11180, + "src": "416:24:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11177, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "416:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "384:57:38" + }, + "src": "353:89:38" + }, + { + "anonymous": false, + "documentation": null, + "id": 11186, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 11185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11182, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11186, + "src": "475:29:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "475:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11184, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11186, + "src": "506:24:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11183, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "506:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "474:57:38" + }, + "src": "448:84:38" + }, + { + "body": { + "id": 11197, + "nodeType": "Block", + "src": "603:71:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11189, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "621:3:38", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "621:10:38", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 11191, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "635:7:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "621:21:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f4f574e4552", + "id": 11193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "644:11:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + }, + "value": "NOT_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + } + ], + "id": 11188, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "613:7:38", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "613:43:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11195, + "nodeType": "ExpressionStatement", + "src": "613:43:38" + }, + { + "id": 11196, + "nodeType": "PlaceholderStatement", + "src": "666:1:38" + } + ] + }, + "documentation": null, + "id": 11198, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 11187, + "nodeType": "ParameterList", + "parameters": [], + "src": "600:2:38" + }, + "src": "582:92:38", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11214, + "nodeType": "Block", + "src": "747:93:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11201, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "757:7:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "767:3:38", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "767:10:38", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "757:20:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11205, + "nodeType": "ExpressionStatement", + "src": "757:20:38" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 11209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "821:1:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "813:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "813:7:38", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "813:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 11211, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "825:7:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11206, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11186, + "src": "792:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 11212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "792:41:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11213, + "nodeType": "EmitStatement", + "src": "787:46:38" + } + ] + }, + "documentation": null, + "id": 11215, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11199, + "nodeType": "ParameterList", + "parameters": [], + "src": "735:2:38" + }, + "returnParameters": { + "id": 11200, + "nodeType": "ParameterList", + "parameters": [], + "src": "747:0:38" + }, + "scope": 11271, + "src": "724:116:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11241, + "nodeType": "Block", + "src": "910:156:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11223, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11217, + "src": "928:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 11226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "948:1:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "940:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "940:7:38", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "940:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "928:22:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "494e56414c49445f4f574e4552", + "id": 11229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:15:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + }, + "value": "INVALID_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + } + ], + "id": 11222, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "920:7:38", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "920:48:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11231, + "nodeType": "ExpressionStatement", + "src": "920:48:38" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11233, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "1009:7:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11234, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11217, + "src": "1018:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11232, + "name": "OwnershipTransferPrepared", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11180, + "src": "983:25:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 11235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "983:44:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11236, + "nodeType": "EmitStatement", + "src": "978:49:38" + }, + { + "expression": { + "argumentTypes": null, + "id": 11239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11237, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "1037:11:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11238, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11217, + "src": "1051:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1037:22:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11240, + "nodeType": "ExpressionStatement", + "src": "1037:22:38" + } + ] + }, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 11242, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 11220, + "modifierName": { + "argumentTypes": null, + "id": 11219, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "900:9:38", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "900:9:38" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11217, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11242, + "src": "873:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11216, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "873:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "872:18:38" + }, + "returnParameters": { + "id": 11221, + "nodeType": "ParameterList", + "parameters": [], + "src": "910:0:38" + }, + "scope": 11271, + "src": "846:220:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 11269, + "nodeType": "Block", + "src": "1107:190:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11246, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1125:3:38", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1125:10:38", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 11248, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "1139:11:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1125:25:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "494e56414c49445f434c41494d", + "id": 11250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1152:15:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1a7d37d176cef23e7f8e2f25c843c5298bb47032880ff77a8bf2eecb0d19b22b", + "typeString": "literal_string \"INVALID_CLAIM\"" + }, + "value": "INVALID_CLAIM" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1a7d37d176cef23e7f8e2f25c843c5298bb47032880ff77a8bf2eecb0d19b22b", + "typeString": "literal_string \"INVALID_CLAIM\"" + } + ], + "id": 11245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1117:7:38", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1117:51:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11252, + "nodeType": "ExpressionStatement", + "src": "1117:51:38" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11254, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "1204:7:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11255, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "1213:11:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11253, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11186, + "src": "1183:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 11256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1183:42:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11257, + "nodeType": "EmitStatement", + "src": "1178:47:38" + }, + { + "expression": { + "argumentTypes": null, + "id": 11260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11258, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "1235:7:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11259, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "1245:11:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1235:21:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11261, + "nodeType": "ExpressionStatement", + "src": "1235:21:38" + }, + { + "expression": { + "argumentTypes": null, + "id": 11267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11262, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "1266:11:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 11265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1288:1:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1280:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1280:7:38", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1280:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1266:24:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11268, + "nodeType": "ExpressionStatement", + "src": "1266:24:38" + } + ] + }, + "documentation": null, + "functionSelector": "4e71e0c8", + "id": 11270, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claimOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11243, + "nodeType": "ParameterList", + "parameters": [], + "src": "1095:2:38" + }, + "returnParameters": { + "id": 11244, + "nodeType": "ParameterList", + "parameters": [], + "src": "1107:0:38" + }, + "scope": 11271, + "src": "1072:225:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11272, + "src": "228:1071:38" + } + ], + "src": "78:1222:38" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "exportedSymbols": { + "Ownable": [ + 11271 + ] + }, + "id": 11272, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11168, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:38" + }, + { + "id": 11169, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:38" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 11170, + "nodeType": "StructuredDocumentation", + "src": "136:91:38", + "text": " @title Ownable\n @author DODO Breeder\n @notice Ownership related functions" + }, + "fullyImplemented": true, + "id": 11271, + "linearizedBaseContracts": [ + 11271 + ], + "name": "Ownable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "16048bc4", + "id": 11172, + "mutability": "mutable", + "name": "_OWNER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11271, + "src": "251:22:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11171, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "251:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "8456db15", + "id": 11174, + "mutability": "mutable", + "name": "_NEW_OWNER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11271, + "src": "279:26:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "279:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 11180, + "name": "OwnershipTransferPrepared", + "nodeType": "EventDefinition", + "parameters": { + "id": 11179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11176, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11180, + "src": "385:29:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11175, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "385:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11178, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11180, + "src": "416:24:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11177, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "416:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "384:57:38" + }, + "src": "353:89:38" + }, + { + "anonymous": false, + "documentation": null, + "id": 11186, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 11185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11182, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11186, + "src": "475:29:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "475:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11184, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11186, + "src": "506:24:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11183, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "506:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "474:57:38" + }, + "src": "448:84:38" + }, + { + "body": { + "id": 11197, + "nodeType": "Block", + "src": "603:71:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11189, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "621:3:38", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "621:10:38", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 11191, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "635:7:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "621:21:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f4f574e4552", + "id": 11193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "644:11:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + }, + "value": "NOT_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d4d6719c9f6bf1f398a61e7ceb8dff26d48346602421236409d0fb0b222f65b2", + "typeString": "literal_string \"NOT_OWNER\"" + } + ], + "id": 11188, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "613:7:38", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "613:43:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11195, + "nodeType": "ExpressionStatement", + "src": "613:43:38" + }, + { + "id": 11196, + "nodeType": "PlaceholderStatement", + "src": "666:1:38" + } + ] + }, + "documentation": null, + "id": 11198, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 11187, + "nodeType": "ParameterList", + "parameters": [], + "src": "600:2:38" + }, + "src": "582:92:38", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11214, + "nodeType": "Block", + "src": "747:93:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11201, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "757:7:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "767:3:38", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "767:10:38", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "757:20:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11205, + "nodeType": "ExpressionStatement", + "src": "757:20:38" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 11209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "821:1:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "813:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "813:7:38", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "813:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 11211, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "825:7:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11206, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11186, + "src": "792:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 11212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "792:41:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11213, + "nodeType": "EmitStatement", + "src": "787:46:38" + } + ] + }, + "documentation": null, + "id": 11215, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11199, + "nodeType": "ParameterList", + "parameters": [], + "src": "735:2:38" + }, + "returnParameters": { + "id": 11200, + "nodeType": "ParameterList", + "parameters": [], + "src": "747:0:38" + }, + "scope": 11271, + "src": "724:116:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11241, + "nodeType": "Block", + "src": "910:156:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11223, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11217, + "src": "928:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 11226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "948:1:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "940:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "940:7:38", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "940:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "928:22:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "494e56414c49445f4f574e4552", + "id": 11229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:15:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + }, + "value": "INVALID_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a30e2b4f22d955e30086ae3aef0adfd87eec9d0d3f055d6aa9af61f522dda886", + "typeString": "literal_string \"INVALID_OWNER\"" + } + ], + "id": 11222, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "920:7:38", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "920:48:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11231, + "nodeType": "ExpressionStatement", + "src": "920:48:38" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11233, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "1009:7:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11234, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11217, + "src": "1018:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11232, + "name": "OwnershipTransferPrepared", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11180, + "src": "983:25:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 11235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "983:44:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11236, + "nodeType": "EmitStatement", + "src": "978:49:38" + }, + { + "expression": { + "argumentTypes": null, + "id": 11239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11237, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "1037:11:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11238, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11217, + "src": "1051:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1037:22:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11240, + "nodeType": "ExpressionStatement", + "src": "1037:22:38" + } + ] + }, + "documentation": null, + "functionSelector": "f2fde38b", + "id": 11242, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 11220, + "modifierName": { + "argumentTypes": null, + "id": 11219, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11198, + "src": "900:9:38", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "900:9:38" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11217, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11242, + "src": "873:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11216, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "873:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "872:18:38" + }, + "returnParameters": { + "id": 11221, + "nodeType": "ParameterList", + "parameters": [], + "src": "910:0:38" + }, + "scope": 11271, + "src": "846:220:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 11269, + "nodeType": "Block", + "src": "1107:190:38", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 11249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11246, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1125:3:38", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 11247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1125:10:38", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 11248, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "1139:11:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1125:25:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "494e56414c49445f434c41494d", + "id": 11250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1152:15:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1a7d37d176cef23e7f8e2f25c843c5298bb47032880ff77a8bf2eecb0d19b22b", + "typeString": "literal_string \"INVALID_CLAIM\"" + }, + "value": "INVALID_CLAIM" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1a7d37d176cef23e7f8e2f25c843c5298bb47032880ff77a8bf2eecb0d19b22b", + "typeString": "literal_string \"INVALID_CLAIM\"" + } + ], + "id": 11245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1117:7:38", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1117:51:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11252, + "nodeType": "ExpressionStatement", + "src": "1117:51:38" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11254, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "1204:7:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11255, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "1213:11:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 11253, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11186, + "src": "1183:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 11256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1183:42:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11257, + "nodeType": "EmitStatement", + "src": "1178:47:38" + }, + { + "expression": { + "argumentTypes": null, + "id": 11260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11258, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11172, + "src": "1235:7:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11259, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "1245:11:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1235:21:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11261, + "nodeType": "ExpressionStatement", + "src": "1235:21:38" + }, + { + "expression": { + "argumentTypes": null, + "id": 11267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11262, + "name": "_NEW_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "1266:11:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 11265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1288:1:38", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 11264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1280:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1280:7:38", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1280:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1266:24:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11268, + "nodeType": "ExpressionStatement", + "src": "1266:24:38" + } + ] + }, + "documentation": null, + "functionSelector": "4e71e0c8", + "id": 11270, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "claimOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11243, + "nodeType": "ParameterList", + "parameters": [], + "src": "1095:2:38" + }, + "returnParameters": { + "id": 11244, + "nodeType": "ParameterList", + "parameters": [], + "src": "1107:0:38" + }, + "scope": 11271, + "src": "1072:225:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 11272, + "src": "228:1071:38" + } + ], + "src": "78:1222:38" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.722Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "Ownable" + }, + "userdoc": { + "methods": {}, + "notice": "Ownership related functions" + } +} \ No newline at end of file diff --git a/build-v1/contracts/Pricing.json b/build-v1/contracts/Pricing.json new file mode 100644 index 0000000..4a327ad --- /dev/null +++ b/build-v1/contracts/Pricing.json @@ -0,0 +1,14277 @@ +{ + "contractName": "Pricing", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BUYING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "_CLAIMED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_CLOSED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_BASE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_GAS_PRICE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_K_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_LP_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MAINTAINER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MT_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_ORACLE_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_R_STATUS_", + "outputs": [ + { + "internalType": "enum Types.RStatus", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SELLING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SUPERVISOR_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TRADE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getBaseCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getQuoteCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalBaseCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalQuoteCapital", + "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": "version", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getExpectedTarget", + "outputs": [ + { + "internalType": "uint256", + "name": "baseTarget", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quoteTarget", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMidPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "midPrice", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_RECEIVE_QUOTE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BUYING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_CLAIMED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_CLOSED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_BASE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_QUOTE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_GAS_PRICE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_K_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_LP_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MAINTAINER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MT_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_ORACLE_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_RECEIVE_BASE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_R_STATUS_\",\"outputs\":[{\"internalType\":\"enum Types.RStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SELLING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SUPERVISOR_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_BASE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_QUOTE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TRADE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getBaseCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExpectedTarget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"baseTarget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quoteTarget\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMidPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"midPrice\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOraclePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getQuoteCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalBaseCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalQuoteCapital\",\"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\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"Pricing\"},\"userdoc\":{\"methods\":{},\"notice\":\"DODO Pricing model\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Pricing.sol\":\"Pricing\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Pricing.sol\":{\"keccak256\":\"0xaec47be06aa7f8994923c80f2c2318304423666300a48f03a43265787f27c708\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e187f46639dd1127abc81439896e67e21338e9eee8707996606b0c9c8ede68a1\",\"dweb:/ipfs/QmPSfPbZuyM3haHZtWVFknZLAMqg2Jy613jQ36JGuCm7LS\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol\":{\"keccak256\":\"0xbf15f2a72d59bbf0ed32b2a24fc4a68d45ffaa60dd2b2c1cc555d03ec1cd2f0a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7289884a2a8939295c4f61aeb7754bd3ce49e9d09188a1eddb762342589f36be\",\"dweb:/ipfs/QmaHYH51wieAyxBDASyHyfYSeu6UJNV7adD3AceeZXCgcZ\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol\":{\"keccak256\":\"0x2183977c7a3cf5aa8d2f56d2167bf59515e34a8e4ebd2402efa85b612631955f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://61766578f8d1bef7f51912a5327e8d4e95e3d9adb509e9486b4e2c8cf179f5e6\",\"dweb:/ipfs/QmXJRK4JKMrJkdn7BFVueoNRixsu26shnX3Dxeb5T9JKK4\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol\":{\"keccak256\":\"0xed4a31155c30a764366aba2244e42406269e59618088f93c02f1b4c9fec9e53c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bd3d50110c9120d942f7713e1cfced848ba7721ea336b2d9c4a87a6eb2a82ca9\",\"dweb:/ipfs/QmTYFeDcAyA2JpfoL1LsGLgj4TeRJxNV1rM27vdcaZSwpF\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol\":{\"keccak256\":\"0xe3f63c53706f21ad68ebeff69321682ffa83bb0552db7e4453dff9772724f657\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://64e385f8c3fbe9e485d0b1b0f90f9621bf50fe02ee7cb95a44828a255db3581f\",\"dweb:/ipfs/QmNesw9cspw1fDDumDy1BSrCeGVij1BAfAVXpfajKHGUcn\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":{\"keccak256\":\"0x9a093cbac4e37ed4ee5e27495dae08754bbfec81f7c0ceb57a5a7ac4f362208f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ddd9e5de1c555f0d1232e148fe18574e6adaa348e792844d9011bbd39bf908f\",\"dweb:/ipfs/QmSgZNwPNqCrQC4kJNdwH3iQNasbTfw2cbTtAtNVcpqnYc\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol\":{\"keccak256\":\"0xf462d86a85221f424c5a40f3c0d4a699c72a61b31ed07091ffb0e0b28b3cd137\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3d92b79f4527b3d7812395c41e5d0786309a121b99af3bff5cd7663f7255d335\",\"dweb:/ipfs/QmYkQANWtKsJNHKeD6PrtUFeC3D6uWAxhXjB97eBHwqtzK\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol\":{\"keccak256\":\"0xc9c3fc946350fd72083a9d5b1327ff923533ef37b054bc7b6007562b20b0faaf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fc140417457139fb240427629673bfaf970c5d4568ad1cfe582764c6e4855bbb\",\"dweb:/ipfs/Qmd7ESYe5kyM6NYiSzeFE74f1YGGPXzpdVd5qnYg2AvgH8\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol\":{\"keccak256\":\"0x0aebcc897b4de833e87e46a11e5a70d2b6e1d2fd99ebdf9e32e6421924f18b15\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a1098dace4f0664b0e3f5c3b6ce535ad2aba52e68fb6d1ea94b09debc06ed33c\",\"dweb:/ipfs/QmRbiq7M3Y8utAXaPWmVooGmoYF27N5dKVn6QYTaDFwqdP\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610ec7806100206000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c80638456db151161013b578063c6b73cf9116100b8578063ec2fd46d1161007c578063ec2fd46d146103a7578063ee27c689146103af578063f2fde38b146103b7578063f67ed448146103ca578063ffa64225146103dd5761023d565b8063c6b73cf91461037f578063d4b9704614610387578063d689107c1461038f578063dd58b41c14610397578063eab5d20e1461039f5761023d565b8063ab44a7a3116100ff578063ab44a7a314610357578063ac1fbc981461035f578063b2094fd314610367578063c0ffa1781461036f578063c5bbffe8146103775761023d565b80638456db151461032f5780638ff5e742146103375780639b020fba1461033f578063a3161a5614610347578063a598aca71461034f5761023d565b80634a248d2a116101c95780636ec6a58d1161018d5780636ec6a58d146102fc57806373a2ab7c14610304578063796da7af1461030c5780637aed942d146103145780637c9b8e89146103275761023d565b80634a248d2a146102ba5780634de4527e146102c25780634e71e0c8146102ca57806354fd4d50146102d457806368be20ad146102dc5761023d565b806317be952e1161021057806317be952e14610285578063245c96851461029a5780632aa82c65146102a25780633960f142146102aa5780634322ec83146102b25761023d565b80630cd1667d146102425780630e6518e91461026057806316048bc4146102685780631769ddaa1461027d575b600080fd5b61024a6103f3565b6040516102579190610e7a565b60405180910390f35b61024a610476565b61027061047c565b6040516102579190610d45565b61024a61048b565b61028d610491565b6040516102579190610d64565b61024a61049a565b61024a6104a0565b6102706104e5565b6102706104f4565b610270610503565b61024a610512565b6102d2610518565b005b61024a6105af565b6102ef6102ea366004610d06565b6105b4565b6040516102579190610d59565b6102ef6105c9565b6102706105d9565b61024a6105e8565b61024a610322366004610d06565b61062d565b61024a6106b4565b6102706106ba565b6102ef6106c9565b61024a6106d7565b6102ef6106dd565b6102ef6106e6565b61024a6106f6565b6102706106fc565b61024a61070b565b61024a610711565b6102ef610717565b61024a610727565b61027061072d565b61027061073c565b6102ef61074b565b61024a61075b565b61024a610761565b61024a610767565b6102d26103c5366004610d06565b610864565b61024a6103d8366004610d06565b61090f565b6103e5610940565b604051610257929190610e83565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561043857600080fd5b505afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104709190610d2d565b90505b90565b60165481565b6000546001600160a01b031681565b60055481565b600e5460ff1681565b60105481565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561043857600080fd5b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b0316331461054b5760405162461bcd60e51b815260040161054290610d78565b60405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561043857600080fd5b6013546040516370a0823160e01b81526000916001600160a01b0316906370a082319061065e908590600401610d45565b60206040518083038186803b15801561067657600080fd5b505afa15801561068a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ae9190610d2d565b92915050565b60125481565b6001546001600160a01b031681565b600354610100900460ff1681565b60045481565b60035460ff1681565b600154600160c01b900460ff1681565b600b5481565b6014546001600160a01b031681565b600f5481565b600c5481565b600154600160b81b900460ff1681565b60155481565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b60115481565b600d5481565b6000806000610774610940565b90925090506002600e5460ff16600281111561078c57fe5b141561081a5760006107c46107bc6012546107b08586610a0490919063ffffffff16565b9063ffffffff610a4516565b601254610a77565b90506107fd6107d5600d5483610a95565b600d546107f190670de0b6b3a76400009063ffffffff610ab716565b9063ffffffff610adf16565b905061081061080a6105e8565b82610a77565b9350505050610473565b60006108406108386011546107b08687610a0490919063ffffffff16565b601154610a77565b90506108516107d5600d5483610a95565b905061081061085e6105e8565b82610a95565b6000546001600160a01b0316331461088e5760405162461bcd60e51b815260040161054290610e11565b6001600160a01b0381166108b45760405162461bcd60e51b815260040161054290610dea565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a082319061065e908590600401610d45565b601254601154600091829182600e5460ff16600281111561095d57fe5b141561097457600f54601054935093505050610a00565b6002600e5460ff16600281111561098757fe5b14156109b9576000610997610b04565b600f549091506109ad848363ffffffff610adf16565b94509450505050610a00565b6001600e5460ff1660028111156109cc57fe5b14156109fd5760006109dc610b6b565b90506109ee828263ffffffff610adf16565b60105494509450505050610a00565b50505b9091565b600082610a13575060006106ae565b82820282848281610a2057fe5b0414610a3e5760405162461bcd60e51b815260040161054290610e57565b9392505050565b6000808211610a665760405162461bcd60e51b815260040161054290610d9f565b818381610a6f57fe5b049392505050565b6000610a3e826107b085670de0b6b3a764000063ffffffff610a0416565b6000670de0b6b3a7640000610ab0848463ffffffff610a0416565b81610a6f57fe5b600082821115610ad95760405162461bcd60e51b815260040161054290610dc7565b50900390565b600082820183811015610a3e5760405162461bcd60e51b815260040161054290610e34565b600080610b1e600f54601154610ab790919063ffffffff16565b90506000610b2a6105e8565b90506000610b388383610a95565b90506000610b4b601254600d5484610bc9565b9050610b6260125482610ab790919063ffffffff16565b94505050505090565b600080610b85601054601254610ab790919063ffffffff16565b90506000610b916105e8565b90506000610b9f8383610a77565b90506000610bb2601154600d5484610bc9565b9050610b6260115482610ab790919063ffffffff16565b600080610bf0610bea6004610bde8787610a95565b9063ffffffff610a0416565b86610c78565b9050610c16610c11670de0b6b3a7640000610bde848263ffffffff610adf16565b610ca2565b90506000610c4b610c3583670de0b6b3a764000063ffffffff610ab716565b610c4687600263ffffffff610a0416565b610c78565b9050610c6e86610c69670de0b6b3a76400008463ffffffff610adf16565b610a95565b9695505050505050565b6000610a3e82610c9685670de0b6b3a764000063ffffffff610a0416565b9063ffffffff610cd916565b80600160028204015b81811015610cd357809150600281828581610cc257fe5b040181610ccb57fe5b049050610cab565b50919050565b600080610ce68484610a45565b905082810284038015610cfe575060010190506106ae565b5090506106ae565b600060208284031215610d17578081fd5b81356001600160a01b0381168114610a3e578182fd5b600060208284031215610d3e578081fd5b5051919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6020810160038310610d7257fe5b91905290565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b91825260208201526040019056fea264697066735822122015504639ba866f736aae2392c0b00473f18b005220704b493962a458c6d65db064736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061023d5760003560e01c80638456db151161013b578063c6b73cf9116100b8578063ec2fd46d1161007c578063ec2fd46d146103a7578063ee27c689146103af578063f2fde38b146103b7578063f67ed448146103ca578063ffa64225146103dd5761023d565b8063c6b73cf91461037f578063d4b9704614610387578063d689107c1461038f578063dd58b41c14610397578063eab5d20e1461039f5761023d565b8063ab44a7a3116100ff578063ab44a7a314610357578063ac1fbc981461035f578063b2094fd314610367578063c0ffa1781461036f578063c5bbffe8146103775761023d565b80638456db151461032f5780638ff5e742146103375780639b020fba1461033f578063a3161a5614610347578063a598aca71461034f5761023d565b80634a248d2a116101c95780636ec6a58d1161018d5780636ec6a58d146102fc57806373a2ab7c14610304578063796da7af1461030c5780637aed942d146103145780637c9b8e89146103275761023d565b80634a248d2a146102ba5780634de4527e146102c25780634e71e0c8146102ca57806354fd4d50146102d457806368be20ad146102dc5761023d565b806317be952e1161021057806317be952e14610285578063245c96851461029a5780632aa82c65146102a25780633960f142146102aa5780634322ec83146102b25761023d565b80630cd1667d146102425780630e6518e91461026057806316048bc4146102685780631769ddaa1461027d575b600080fd5b61024a6103f3565b6040516102579190610e7a565b60405180910390f35b61024a610476565b61027061047c565b6040516102579190610d45565b61024a61048b565b61028d610491565b6040516102579190610d64565b61024a61049a565b61024a6104a0565b6102706104e5565b6102706104f4565b610270610503565b61024a610512565b6102d2610518565b005b61024a6105af565b6102ef6102ea366004610d06565b6105b4565b6040516102579190610d59565b6102ef6105c9565b6102706105d9565b61024a6105e8565b61024a610322366004610d06565b61062d565b61024a6106b4565b6102706106ba565b6102ef6106c9565b61024a6106d7565b6102ef6106dd565b6102ef6106e6565b61024a6106f6565b6102706106fc565b61024a61070b565b61024a610711565b6102ef610717565b61024a610727565b61027061072d565b61027061073c565b6102ef61074b565b61024a61075b565b61024a610761565b61024a610767565b6102d26103c5366004610d06565b610864565b61024a6103d8366004610d06565b61090f565b6103e5610940565b604051610257929190610e83565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561043857600080fd5b505afa15801561044c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104709190610d2d565b90505b90565b60165481565b6000546001600160a01b031681565b60055481565b600e5460ff1681565b60105481565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561043857600080fd5b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b0316331461054b5760405162461bcd60e51b815260040161054290610d78565b60405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561043857600080fd5b6013546040516370a0823160e01b81526000916001600160a01b0316906370a082319061065e908590600401610d45565b60206040518083038186803b15801561067657600080fd5b505afa15801561068a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ae9190610d2d565b92915050565b60125481565b6001546001600160a01b031681565b600354610100900460ff1681565b60045481565b60035460ff1681565b600154600160c01b900460ff1681565b600b5481565b6014546001600160a01b031681565b600f5481565b600c5481565b600154600160b81b900460ff1681565b60155481565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b60115481565b600d5481565b6000806000610774610940565b90925090506002600e5460ff16600281111561078c57fe5b141561081a5760006107c46107bc6012546107b08586610a0490919063ffffffff16565b9063ffffffff610a4516565b601254610a77565b90506107fd6107d5600d5483610a95565b600d546107f190670de0b6b3a76400009063ffffffff610ab716565b9063ffffffff610adf16565b905061081061080a6105e8565b82610a77565b9350505050610473565b60006108406108386011546107b08687610a0490919063ffffffff16565b601154610a77565b90506108516107d5600d5483610a95565b905061081061085e6105e8565b82610a95565b6000546001600160a01b0316331461088e5760405162461bcd60e51b815260040161054290610e11565b6001600160a01b0381166108b45760405162461bcd60e51b815260040161054290610dea565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a082319061065e908590600401610d45565b601254601154600091829182600e5460ff16600281111561095d57fe5b141561097457600f54601054935093505050610a00565b6002600e5460ff16600281111561098757fe5b14156109b9576000610997610b04565b600f549091506109ad848363ffffffff610adf16565b94509450505050610a00565b6001600e5460ff1660028111156109cc57fe5b14156109fd5760006109dc610b6b565b90506109ee828263ffffffff610adf16565b60105494509450505050610a00565b50505b9091565b600082610a13575060006106ae565b82820282848281610a2057fe5b0414610a3e5760405162461bcd60e51b815260040161054290610e57565b9392505050565b6000808211610a665760405162461bcd60e51b815260040161054290610d9f565b818381610a6f57fe5b049392505050565b6000610a3e826107b085670de0b6b3a764000063ffffffff610a0416565b6000670de0b6b3a7640000610ab0848463ffffffff610a0416565b81610a6f57fe5b600082821115610ad95760405162461bcd60e51b815260040161054290610dc7565b50900390565b600082820183811015610a3e5760405162461bcd60e51b815260040161054290610e34565b600080610b1e600f54601154610ab790919063ffffffff16565b90506000610b2a6105e8565b90506000610b388383610a95565b90506000610b4b601254600d5484610bc9565b9050610b6260125482610ab790919063ffffffff16565b94505050505090565b600080610b85601054601254610ab790919063ffffffff16565b90506000610b916105e8565b90506000610b9f8383610a77565b90506000610bb2601154600d5484610bc9565b9050610b6260115482610ab790919063ffffffff16565b600080610bf0610bea6004610bde8787610a95565b9063ffffffff610a0416565b86610c78565b9050610c16610c11670de0b6b3a7640000610bde848263ffffffff610adf16565b610ca2565b90506000610c4b610c3583670de0b6b3a764000063ffffffff610ab716565b610c4687600263ffffffff610a0416565b610c78565b9050610c6e86610c69670de0b6b3a76400008463ffffffff610adf16565b610a95565b9695505050505050565b6000610a3e82610c9685670de0b6b3a764000063ffffffff610a0416565b9063ffffffff610cd916565b80600160028204015b81811015610cd357809150600281828581610cc257fe5b040181610ccb57fe5b049050610cab565b50919050565b600080610ce68484610a45565b905082810284038015610cfe575060010190506106ae565b5090506106ae565b600060208284031215610d17578081fd5b81356001600160a01b0381168114610a3e578182fd5b600060208284031215610d3e578081fd5b5051919050565b6001600160a01b0391909116815260200190565b901515815260200190565b6020810160038310610d7257fe5b91905290565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b91825260208201526040019056fea264697066735822122015504639ba866f736aae2392c0b00473f18b005220704b493962a458c6d65db064736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "444:6425:25:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "444:6425:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2949:133:27;;;:::i;:::-;;;;;;;;;;;;;;;;2006:43;;;:::i;264:22:37:-;;;:::i;:::-;;;;;;;;1112:36:27;;;:::i;1604:31::-;;;:::i;:::-;;;;;;;;1688:42;;;:::i;3243:135::-;;;:::i;1202:27::-;;;:::i;1271:::-;;;:::i;1352:::-;;;:::i;912:32::-;;;:::i;963:225:37:-;;;:::i;:::-;;3433:87:27;;;:::i;2055:41::-;;;;;;;;;:::i;:::-;;;;;;;;772:20;;;:::i;1419:23::-;;;:::i;2682:108::-;;;:::i;2796:147::-;;;;;;;;;:::i;1771:30::-;;;:::i;292:26:37:-;;;:::i;1036:29:27:-;;;:::i;1071:35::-;;;:::i;1002:28::-;;;:::i;839:34::-;;;:::i;1511:28::-;;;:::i;1849:36::-;;;:::i;1641:41::-;;;:::i;1545:28::-;;;:::i;798:35::-;;;:::i;1957:43::-;;;:::i;1385:28::-;;;:::i;1808:35::-;;;:::i;879:27::-;;;:::i;1736:29::-;;;:::i;1579:18::-;;;:::i;5504:799:25:-;;;:::i;737:220:37:-;;;;;;;;;:::i;3088:149:27:-;;;;;;;;;:::i;4819:679:25:-;;;:::i;:::-;;;;;;;;;2949:133:27;3040:20;;3027:48;;;-1:-1:-1;;;3027:48:27;;;;3001:7;;-1:-1:-1;;;;;3040:20:27;;3027:46;;:48;;;;;;;;;;;;;;3040:20;3027:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:55;;2949:133;;:::o;2006:43::-;;;;:::o;264:22:37:-;;;-1:-1:-1;;;;;264:22:37;;:::o;1112:36:27:-;;;;:::o;1604:31::-;;;;;;:::o;1688:42::-;;;;:::o;3243:135::-;3335:21;;3322:49;;;-1:-1:-1;;;3322:49:27;;;;3296:7;;-1:-1:-1;;;;;3335:21:27;;3322:47;;:49;;;;;;;;;;;;;;3335:21;3322:49;;;;;;;;;;1202:27;;;-1:-1:-1;;;;;1202:27:27;;:::o;1271:::-;;;-1:-1:-1;;;;;1271:27:27;;:::o;1352:::-;;;-1:-1:-1;;;;;1352:27:27;;:::o;912:32::-;;;;:::o;963:225:37:-;1030:11;;-1:-1:-1;;;;;1030:11:37;1016:10;:25;1008:51;;;;-1:-1:-1;;;1008:51:37;;;;;;;;;;;;;;;;;1104:11;;;1095:7;;1074:42;;-1:-1:-1;;;;;1104:11:37;;;;1095:7;;;;1074:42;;;1136:11;;;;1126:21;;-1:-1:-1;;;;;;1126:21:37;;;-1:-1:-1;;;;;1136:11:37;;1126:21;;;;1157:24;;;963:225::o;3433:87:27:-;3501:3;3433:87;:::o;2055:41::-;;;;;;;;;;;;;;;:::o;772:20::-;;;-1:-1:-1;;;772:20:27;;;;;:::o;1419:23::-;;;-1:-1:-1;;;;;1419:23:27;;:::o;2682:108::-;2763:8;;2755:28;;;-1:-1:-1;;;2755:28:27;;;;2729:7;;-1:-1:-1;;;;;2763:8:27;;2755:26;;:28;;;;;;;;;;;;;;2763:8;2755:28;;;;;;;;;;2796:147;2901:20;;2888:48;;-1:-1:-1;;;2888:48:27;;2862:7;;-1:-1:-1;;;;;2901:20:27;;2888:44;;:48;;2933:2;;2888:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2881:55;2796:147;-1:-1:-1;;2796:147:27:o;1771:30::-;;;;:::o;292:26:37:-;;;-1:-1:-1;;;;;292:26:37;;:::o;1036:29:27:-;;;;;;;;;:::o;1071:35::-;;;;:::o;1002:28::-;;;;;;:::o;839:34::-;;;-1:-1:-1;;;839:34:27;;;;;:::o;1511:28::-;;;;:::o;1849:36::-;;;-1:-1:-1;;;;;1849:36:27;;:::o;1641:41::-;;;;:::o;1545:28::-;;;;:::o;798:35::-;;;-1:-1:-1;;;798:35:27;;;;;:::o;1957:43::-;;;;:::o;1385:28::-;;;-1:-1:-1;;;;;1385:28:27;;:::o;1808:35::-;;;-1:-1:-1;;;;;1808:35:27;;:::o;879:27::-;;;-1:-1:-1;;;879:27:27;;;;;:::o;1736:29::-;;;;:::o;1579:18::-;;;;:::o;5504:799:25:-;5548:16;5577:18;5597:19;5620;:17;:19::i;:::-;5576:63;;-1:-1:-1;5576:63:25;-1:-1:-1;5667:23:25;5653:10;;;;:37;;;;;;;;;5649:648;;;5706:9;5718:134;5756:49;5789:15;;5756:28;5772:11;5756;:15;;:28;;;;:::i;:::-;:32;:49;:32;:49;:::i;:::-;5823:15;;5718:20;:134::i;:::-;5706:146;;5870:53;5899:23;5915:3;;5920:1;5899:15;:23::i;:::-;5890:3;;5870:24;;379:6:36;;5870:24:25;:19;:24;:::i;:::-;:28;:53;:28;:53;:::i;:::-;5866:57;;5944:41;5965:16;:14;:16::i;:::-;5983:1;5944:20;:41::i;:::-;5937:48;;;;;;;5649:648;6016:9;6028:130;6066:46;6097:14;;6066:26;6081:10;6066;:14;;:26;;;;:::i;:46::-;6130:14;;6028:20;:130::i;:::-;6016:142;;6176:53;6205:23;6221:3;;6226:1;6205:15;:23::i;6176:53::-;6172:57;;6250:36;6266:16;:14;:16::i;:::-;6284:1;6250:15;:36::i;737:220:37:-;648:7;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;-1:-1:-1;;;;;819:22:37;::::1;811:48;;;;-1:-1:-1::0;;;811:48:37::1;;;;;;;;;900:7;::::0;;874:44:::1;::::0;-1:-1:-1;;;;;874:44:37;;::::1;::::0;900:7;::::1;::::0;874:44:::1;::::0;::::1;928:11;:22:::0;;-1:-1:-1;;;;;;928:22:37::1;-1:-1:-1::0;;;;;928:22:37;;;::::1;::::0;;;::::1;::::0;;737:220::o;3088:149:27:-;3194:21;;3181:49;;-1:-1:-1;;;3181:49:27;;3155:7;;-1:-1:-1;;;;;3194:21:27;;3181:45;;:49;;3227:2;;3181:49;;;;4819:679:25;4932:15;;4969:14;;4869:18;;;;;4997:10;;;;:31;;;;;;;;;4993:499;;;5052:26;;5080:27;;5044:64;;;;;;;;4993:499;5143:23;5129:10;;;;:37;;;;;;;;;5125:367;;;5182:21;5206:18;:16;:18::i;:::-;5246:26;;5182:42;;-1:-1:-1;5274:20:25;:1;5182:42;5274:20;:5;:20;:::i;:::-;5238:57;;;;;;;;;5125:367;5330:23;5316:10;;;;:37;;;;;;;;;5312:180;;;5369:20;5392:18;:16;:18::i;:::-;5369:41;-1:-1:-1;5432:19:25;:1;5369:41;5432:19;:5;:19;:::i;:::-;5453:27;;5424:57;;;;;;;;;5312:180;4819:679;;;;;:::o;281:217:41:-;339:7;362:6;358:45;;-1:-1:-1;391:1:41;384:8;;358:45;425:5;;;429:1;425;:5;:1;448:5;;;;;:10;440:32;;;;-1:-1:-1;;;440:32:41;;;;;;;;;490:1;281:217;-1:-1:-1;;;281:217:41:o;504:138::-;562:7;593:1;589;:5;581:32;;;;-1:-1:-1;;;581:32:41;;;;;;;;;634:1;630;:5;;;;;;;504:138;-1:-1:-1;;;504:138:41:o;645:123:36:-;713:7;739:22;759:1;739:15;:6;379;739:15;:10;:15;:::i;392:115::-;455:7;379:6;481:13;:6;492:1;481:13;:10;:13;:::i;:::-;:19;;;;934:134:41;992:7;1024:1;1019;:6;;1011:28;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;1074:157::-;1132:7;1163:5;;;1186:6;;;;1178:28;;;;-1:-1:-1;;;1178:28:41;;;;;;;;2736:578:25;2787:21;2927:17;2947:46;2966:26;;2947:14;;:18;;:46;;;;:::i;:::-;2927:66;;3003:13;3019:16;:14;:16::i;:::-;3003:32;;3045:18;3066:33;3082:9;3093:5;3066:15;:33::i;:::-;3045:54;;3109:22;3134:121;3189:15;;3218:3;;3235:10;3134:41;:121::i;:::-;3109:146;;3272:35;3291:15;;3272:14;:18;;:35;;;;:::i;:::-;3265:42;;;;;;2736:578;:::o;4180:582::-;4231:20;4370:18;4391:48;4411:27;;4391:15;;:19;;:48;;;;:::i;:::-;4370:69;;4449:13;4465:16;:14;:16::i;:::-;4449:32;;4491:18;4512:39;4533:10;4545:5;4512:20;:39::i;:::-;4491:60;;4561:21;4585:120;4640:14;;4668:3;;4685:10;4585:41;:120::i;:::-;4561:144;;4722:33;4740:14;;4722:13;:17;;:33;;;;:::i;3310:569:35:-;3448:10;3504:12;3519:62;3539:37;3574:1;3539:30;3555:1;3558:10;3539:15;:30::i;:::-;:34;:37;:34;:37;:::i;:::-;3578:2;3519:19;:62::i;:::-;3504:77;-1:-1:-1;3598:53:35;:46;379:6:36;3598:25:35;3504:77;379:6:36;3598:25:35;:8;:25;:::i;:46::-;:51;:53::i;:::-;3591:60;-1:-1:-1;3661:15:35;3679:56;3699:25;3591:60;379:6:36;3699:25:35;:8;:25;:::i;:::-;3726:8;:1;3732;3726:8;:5;:8;:::i;:::-;3679:19;:56::i;:::-;3661:74;-1:-1:-1;3823:49:35;3839:2;3843:28;379:6:36;3661:74:35;3843:28;:19;:28;:::i;:::-;3823:15;:49::i;:::-;3816:56;3310:569;-1:-1:-1;;;;;;3310:569:35:o;774:126:36:-;841:7;867:26;891:1;867:15;:6;379;867:15;:10;:15;:::i;:::-;:23;:26;:23;:26;:::i;1237:198:41:-;1318:1;1326;1322;1318:5;;:9;1352:77;1363:1;1359;:5;1352:77;;;1384:1;1380:5;;1417:1;1412;1408;1404;:5;;;;;;:9;1403:15;;;;;;1399:19;;1352:77;;;1237:198;;;;:::o;648:280::-;710:7;729:16;748:9;752:1;755;748:3;:9::i;:::-;729:28;-1:-1:-1;791:12:41;;;787:16;;817:13;;813:109;;-1:-1:-1;864:1:41;853:12;;-1:-1:-1;846:19:41;;813:109;-1:-1:-1;903:8:41;-1:-1:-1;896:15:41;;283:241:-1;;387:2;375:9;366:7;362:23;358:32;355:2;;;-1:-1;;393:12;355:2;72:20;;-1:-1;;;;;8332:54;;8786:35;;8776:2;;-1:-1;;8825:12;531:263;;646:2;634:9;625:7;621:23;617:32;614:2;;;-1:-1;;652:12;614:2;-1:-1;220:13;;608:186;-1:-1;608:186;3542:222;-1:-1;;;;;8332:54;;;;872:37;;3669:2;3654:18;;3640:124;3771:210;8105:13;;8098:21;986:34;;3892:2;3877:18;;3863:118;3988:244;4126:2;4111:18;;8698:1;8688:12;;8678:2;;8704:9;8678:2;1114:61;;;4097:135;;4239:416;4439:2;4453:47;;;1412:2;4424:18;;;7873:19;-1:-1;;;7913:14;;;1428:36;1483:12;;;4410:245;4662:416;4862:2;4876:47;;;1734:2;4847:18;;;7873:19;-1:-1;;;7913:14;;;1750:37;1806:12;;;4833:245;5085:416;5285:2;5299:47;;;2057:1;5270:18;;;7873:19;-1:-1;;;7913:14;;;2072:32;2123:12;;;5256:245;5508:416;5708:2;5722:47;;;2374:2;5693:18;;;7873:19;-1:-1;;;7913:14;;;2390:36;2445:12;;;5679:245;5931:416;6131:2;6145:47;;;2696:1;6116:18;;;7873:19;-1:-1;;;7913:14;;;2711:32;2762:12;;;6102:245;6354:416;6554:2;6568:47;;;3013:1;6539:18;;;7873:19;-1:-1;;;7913:14;;;3028:32;3079:12;;;6525:245;6777:416;6977:2;6991:47;;;3330:1;6962:18;;;7873:19;-1:-1;;;7913:14;;;3345:32;3396:12;;;6948:245;7200:222;3493:37;;;7327:2;7312:18;;7298:124;7429:333;3493:37;;;7748:2;7733:18;;3493:37;7584:2;7569:18;;7555:207", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {SafeMath} from \"../lib/SafeMath.sol\";\nimport {DecimalMath} from \"../lib/DecimalMath.sol\";\nimport {DODOMath} from \"../lib/DODOMath.sol\";\nimport {Types} from \"../lib/Types.sol\";\nimport {Storage} from \"./Storage.sol\";\n\n\n/**\n * @title Pricing\n * @author DODO Breeder\n *\n * @notice DODO Pricing model\n */\ncontract Pricing is Storage {\n using SafeMath for uint256;\n\n // ============ R = 1 cases ============\n\n function _ROneSellBaseToken(uint256 amount, uint256 targetQuoteTokenAmount)\n internal\n view\n returns (uint256 receiveQuoteToken)\n {\n uint256 i = getOraclePrice();\n uint256 Q2 = DODOMath._SolveQuadraticFunctionForTrade(\n targetQuoteTokenAmount,\n targetQuoteTokenAmount,\n DecimalMath.mul(i, amount),\n false,\n _K_\n );\n // in theory Q2 <= targetQuoteTokenAmount\n // however when amount is close to 0, precision problems may cause Q2 > targetQuoteTokenAmount\n return targetQuoteTokenAmount.sub(Q2);\n }\n\n function _ROneBuyBaseToken(uint256 amount, uint256 targetBaseTokenAmount)\n internal\n view\n returns (uint256 payQuoteToken)\n {\n require(amount < targetBaseTokenAmount, \"DODO_BASE_BALANCE_NOT_ENOUGH\");\n uint256 B2 = targetBaseTokenAmount.sub(amount);\n payQuoteToken = _RAboveIntegrate(targetBaseTokenAmount, targetBaseTokenAmount, B2);\n return payQuoteToken;\n }\n\n // ============ R < 1 cases ============\n\n function _RBelowSellBaseToken(\n uint256 amount,\n uint256 quoteBalance,\n uint256 targetQuoteAmount\n ) internal view returns (uint256 receieQuoteToken) {\n uint256 i = getOraclePrice();\n uint256 Q2 = DODOMath._SolveQuadraticFunctionForTrade(\n targetQuoteAmount,\n quoteBalance,\n DecimalMath.mul(i, amount),\n false,\n _K_\n );\n return quoteBalance.sub(Q2);\n }\n\n function _RBelowBuyBaseToken(\n uint256 amount,\n uint256 quoteBalance,\n uint256 targetQuoteAmount\n ) internal view returns (uint256 payQuoteToken) {\n // Here we don't require amount less than some value\n // Because it is limited at upper function\n // See Trader.queryBuyBaseToken\n uint256 i = getOraclePrice();\n uint256 Q2 = DODOMath._SolveQuadraticFunctionForTrade(\n targetQuoteAmount,\n quoteBalance,\n DecimalMath.mulCeil(i, amount),\n true,\n _K_\n );\n return Q2.sub(quoteBalance);\n }\n\n function _RBelowBackToOne() internal view returns (uint256 payQuoteToken) {\n // important: carefully design the system to make sure spareBase always greater than or equal to 0\n uint256 spareBase = _BASE_BALANCE_.sub(_TARGET_BASE_TOKEN_AMOUNT_);\n uint256 price = getOraclePrice();\n uint256 fairAmount = DecimalMath.mul(spareBase, price);\n uint256 newTargetQuote = DODOMath._SolveQuadraticFunctionForTarget(\n _QUOTE_BALANCE_,\n _K_,\n fairAmount\n );\n return newTargetQuote.sub(_QUOTE_BALANCE_);\n }\n\n // ============ R > 1 cases ============\n\n function _RAboveBuyBaseToken(\n uint256 amount,\n uint256 baseBalance,\n uint256 targetBaseAmount\n ) internal view returns (uint256 payQuoteToken) {\n require(amount < baseBalance, \"DODO_BASE_BALANCE_NOT_ENOUGH\");\n uint256 B2 = baseBalance.sub(amount);\n return _RAboveIntegrate(targetBaseAmount, baseBalance, B2);\n }\n\n function _RAboveSellBaseToken(\n uint256 amount,\n uint256 baseBalance,\n uint256 targetBaseAmount\n ) internal view returns (uint256 receiveQuoteToken) {\n // here we don't require B1 <= targetBaseAmount\n // Because it is limited at upper function\n // See Trader.querySellBaseToken\n uint256 B1 = baseBalance.add(amount);\n return _RAboveIntegrate(targetBaseAmount, B1, baseBalance);\n }\n\n function _RAboveBackToOne() internal view returns (uint256 payBaseToken) {\n // important: carefully design the system to make sure spareBase always greater than or equal to 0\n uint256 spareQuote = _QUOTE_BALANCE_.sub(_TARGET_QUOTE_TOKEN_AMOUNT_);\n uint256 price = getOraclePrice();\n uint256 fairAmount = DecimalMath.divFloor(spareQuote, price);\n uint256 newTargetBase = DODOMath._SolveQuadraticFunctionForTarget(\n _BASE_BALANCE_,\n _K_,\n fairAmount\n );\n return newTargetBase.sub(_BASE_BALANCE_);\n }\n\n // ============ Helper functions ============\n\n function getExpectedTarget() public view returns (uint256 baseTarget, uint256 quoteTarget) {\n uint256 Q = _QUOTE_BALANCE_;\n uint256 B = _BASE_BALANCE_;\n if (_R_STATUS_ == Types.RStatus.ONE) {\n return (_TARGET_BASE_TOKEN_AMOUNT_, _TARGET_QUOTE_TOKEN_AMOUNT_);\n } else if (_R_STATUS_ == Types.RStatus.BELOW_ONE) {\n uint256 payQuoteToken = _RBelowBackToOne();\n return (_TARGET_BASE_TOKEN_AMOUNT_, Q.add(payQuoteToken));\n } else if (_R_STATUS_ == Types.RStatus.ABOVE_ONE) {\n uint256 payBaseToken = _RAboveBackToOne();\n return (B.add(payBaseToken), _TARGET_QUOTE_TOKEN_AMOUNT_);\n }\n }\n\n function getMidPrice() public view returns (uint256 midPrice) {\n (uint256 baseTarget, uint256 quoteTarget) = getExpectedTarget();\n if (_R_STATUS_ == Types.RStatus.BELOW_ONE) {\n uint256 R = DecimalMath.divFloor(\n quoteTarget.mul(quoteTarget).div(_QUOTE_BALANCE_),\n _QUOTE_BALANCE_\n );\n R = DecimalMath.ONE.sub(_K_).add(DecimalMath.mul(_K_, R));\n return DecimalMath.divFloor(getOraclePrice(), R);\n } else {\n uint256 R = DecimalMath.divFloor(\n baseTarget.mul(baseTarget).div(_BASE_BALANCE_),\n _BASE_BALANCE_\n );\n R = DecimalMath.ONE.sub(_K_).add(DecimalMath.mul(_K_, R));\n return DecimalMath.mul(getOraclePrice(), R);\n }\n }\n\n function _RAboveIntegrate(\n uint256 B0,\n uint256 B1,\n uint256 B2\n ) internal view returns (uint256) {\n uint256 i = getOraclePrice();\n return DODOMath._GeneralIntegrate(B0, B1, B2, i, _K_);\n }\n\n // function _RBelowIntegrate(\n // uint256 Q0,\n // uint256 Q1,\n // uint256 Q2\n // ) internal view returns (uint256) {\n // uint256 i = getOraclePrice();\n // i = DecimalMath.divFloor(DecimalMath.ONE, i); // 1/i\n // return DODOMath._GeneralIntegrate(Q0, Q1, Q2, i, _K_);\n // }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Pricing.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Pricing.sol", + "exportedSymbols": { + "Pricing": [ + 8853 + ] + }, + "id": 8854, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8371, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:25" + }, + { + "id": 8372, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:25" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 8374, + "nodeType": "ImportDirective", + "scope": 8854, + "sourceUnit": 11624, + "src": "136:45:25", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8373, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:25", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 8376, + "nodeType": "ImportDirective", + "scope": 8854, + "sourceUnit": 11079, + "src": "182:51:25", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8375, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "190:11:25", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol", + "file": "../lib/DODOMath.sol", + "id": 8378, + "nodeType": "ImportDirective", + "scope": 8854, + "sourceUnit": 10993, + "src": "234:45:25", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8377, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "242:8:25", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "file": "../lib/Types.sol", + "id": 8380, + "nodeType": "ImportDirective", + "scope": 8854, + "sourceUnit": 11632, + "src": "280:39:25", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8379, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "288:5:25", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "file": "./Storage.sol", + "id": 8382, + "nodeType": "ImportDirective", + "scope": 8854, + "sourceUnit": 9614, + "src": "320:38:25", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8381, + "name": "Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "328:7:25", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 8384, + "name": "Storage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9613, + "src": "464:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Storage_$9613", + "typeString": "contract Storage" + } + }, + "id": 8385, + "nodeType": "InheritanceSpecifier", + "src": "464:7:25" + } + ], + "contractDependencies": [ + 9613, + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 8383, + "nodeType": "StructuredDocumentation", + "src": "361:82:25", + "text": " @title Pricing\n @author DODO Breeder\n @notice DODO Pricing model" + }, + "fullyImplemented": true, + "id": 8853, + "linearizedBaseContracts": [ + 8853, + 9613, + 11296, + 11166 + ], + "name": "Pricing", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 8388, + "libraryName": { + "contractScope": null, + "id": 8386, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "484:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "478:27:25", + "typeName": { + "id": 8387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "497:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 8422, + "nodeType": "Block", + "src": "711:466:25", + "statements": [ + { + "assignments": [ + 8398 + ], + "declarations": [ + { + "constant": false, + "id": 8398, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8422, + "src": "721:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8401, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8399, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "733:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "733:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "721:28:25" + }, + { + "assignments": [ + 8403 + ], + "declarations": [ + { + "constant": false, + "id": 8403, + "mutability": "mutable", + "name": "Q2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8422, + "src": "759:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "759:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8416, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8406, + "name": "targetQuoteTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8392, + "src": "826:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8407, + "name": "targetQuoteTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8392, + "src": "862:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8410, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8398, + "src": "914:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8411, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8390, + "src": "917:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8408, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "898:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "898:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "898:26:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8413, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "938:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 8414, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "957:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8404, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "772:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTrade", + "nodeType": "MemberAccess", + "referencedDeclaration": 10925, + "src": "772:40:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,bool,uint256) pure returns (uint256)" + } + }, + "id": 8415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "772:198:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "759:211:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8419, + "name": "Q2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "1167:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8417, + "name": "targetQuoteTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8392, + "src": "1140:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1140:26:25", + "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": 8420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1140:30:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8396, + "id": 8421, + "nodeType": "Return", + "src": "1133:37:25" + } + ] + }, + "documentation": null, + "id": 8423, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_ROneSellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8390, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8423, + "src": "585:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "585:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8392, + "mutability": "mutable", + "name": "targetQuoteTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8423, + "src": "601:30:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "601:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "584:48:25" + }, + "returnParameters": { + "id": 8396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8395, + "mutability": "mutable", + "name": "receiveQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8423, + "src": "680:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "680:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "679:27:25" + }, + "scope": 8853, + "src": "557:620:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8456, + "nodeType": "Block", + "src": "1331:266:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8433, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8425, + "src": "1349:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 8434, + "name": "targetBaseTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8427, + "src": "1358:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1349:30:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f424153455f42414c414e43455f4e4f545f454e4f554748", + "id": 8436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1381:30:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + }, + "value": "DODO_BASE_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 8432, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1341:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1341:71:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8438, + "nodeType": "ExpressionStatement", + "src": "1341:71:25" + }, + { + "assignments": [ + 8440 + ], + "declarations": [ + { + "constant": false, + "id": 8440, + "mutability": "mutable", + "name": "B2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8456, + "src": "1422:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8439, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1422:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8445, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8443, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8425, + "src": "1461:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8441, + "name": "targetBaseTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8427, + "src": "1435:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1435:25:25", + "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": 8444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1435:33:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1422:46:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 8452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8446, + "name": "payQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8430, + "src": "1478:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8448, + "name": "targetBaseTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8427, + "src": "1511:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8449, + "name": "targetBaseTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8427, + "src": "1534:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8450, + "name": "B2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8440, + "src": "1557:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8447, + "name": "_RAboveIntegrate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8852, + "src": "1494:16: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": 8451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1494:66:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1478:82:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8453, + "nodeType": "ExpressionStatement", + "src": "1478:82:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 8454, + "name": "payQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8430, + "src": "1577:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8431, + "id": 8455, + "nodeType": "Return", + "src": "1570:20:25" + } + ] + }, + "documentation": null, + "id": 8457, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_ROneBuyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8425, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8457, + "src": "1210:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8424, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1210:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8427, + "mutability": "mutable", + "name": "targetBaseTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8457, + "src": "1226:29:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8426, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1226:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1209:47:25" + }, + "returnParameters": { + "id": 8431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8430, + "mutability": "mutable", + "name": "payQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8457, + "src": "1304:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1304:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1303:23:25" + }, + "scope": 8853, + "src": "1183:414:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8493, + "nodeType": "Block", + "src": "1823:288:25", + "statements": [ + { + "assignments": [ + 8469 + ], + "declarations": [ + { + "constant": false, + "id": 8469, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8493, + "src": "1833:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8468, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1833:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8472, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8470, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "1845:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1845:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1833:28:25" + }, + { + "assignments": [ + 8474 + ], + "declarations": [ + { + "constant": false, + "id": 8474, + "mutability": "mutable", + "name": "Q2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8493, + "src": "1871:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1871:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8487, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8477, + "name": "targetQuoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8463, + "src": "1938:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8478, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8461, + "src": "1969:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8481, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8469, + "src": "2011:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8482, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8459, + "src": "2014:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8479, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "1995:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "1995:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1995:26:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2035:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 8485, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "2054:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8475, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "1884:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTrade", + "nodeType": "MemberAccess", + "referencedDeclaration": 10925, + "src": "1884:40:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,bool,uint256) pure returns (uint256)" + } + }, + "id": 8486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1884:183:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1871:196:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8490, + "name": "Q2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8474, + "src": "2101:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8488, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8461, + "src": "2084:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2084:16:25", + "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": 8491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2084:20:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8467, + "id": 8492, + "nodeType": "Return", + "src": "2077:27:25" + } + ] + }, + "documentation": null, + "id": 8494, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RBelowSellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8459, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8494, + "src": "1688:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8458, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1688:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8461, + "mutability": "mutable", + "name": "quoteBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8494, + "src": "1712:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8460, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1712:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8463, + "mutability": "mutable", + "name": "targetQuoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8494, + "src": "1742:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1742:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1678:95:25" + }, + "returnParameters": { + "id": 8467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8466, + "mutability": "mutable", + "name": "receieQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8494, + "src": "1797:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8465, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1797:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1796:26:25" + }, + "scope": 8853, + "src": "1649:462:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8530, + "nodeType": "Block", + "src": "2287:443:25", + "statements": [ + { + "assignments": [ + 8506 + ], + "declarations": [ + { + "constant": false, + "id": 8506, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8530, + "src": "2449:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2449:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8509, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8507, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "2461:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2461:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2449:28:25" + }, + { + "assignments": [ + 8511 + ], + "declarations": [ + { + "constant": false, + "id": 8511, + "mutability": "mutable", + "name": "Q2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8530, + "src": "2487:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2487:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8524, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8514, + "name": "targetQuoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8500, + "src": "2554:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8515, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8498, + "src": "2585:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8518, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8506, + "src": "2631:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8519, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8496, + "src": "2634:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8516, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2611:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mulCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11041, + "src": "2611:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2611:30:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2655:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 8522, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "2673:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8512, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "2500:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTrade", + "nodeType": "MemberAccess", + "referencedDeclaration": 10925, + "src": "2500:40:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,bool,uint256) pure returns (uint256)" + } + }, + "id": 8523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2500:186:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2487:199:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8527, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8498, + "src": "2710:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8525, + "name": "Q2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8511, + "src": "2703:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2703:6:25", + "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": 8528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2703:20:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8504, + "id": 8529, + "nodeType": "Return", + "src": "2696:27:25" + } + ] + }, + "documentation": null, + "id": 8531, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RBelowBuyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8496, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8531, + "src": "2155:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2155:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8498, + "mutability": "mutable", + "name": "quoteBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8531, + "src": "2179:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2179:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8500, + "mutability": "mutable", + "name": "targetQuoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8531, + "src": "2209:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2209:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2145:95:25" + }, + "returnParameters": { + "id": 8504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8503, + "mutability": "mutable", + "name": "payQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8531, + "src": "2264:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8502, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2264:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2263:23:25" + }, + "scope": 8853, + "src": "2117:613:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8570, + "nodeType": "Block", + "src": "2810:504:25", + "statements": [ + { + "assignments": [ + 8537 + ], + "declarations": [ + { + "constant": false, + "id": 8537, + "mutability": "mutable", + "name": "spareBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8570, + "src": "2927:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2927:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8542, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8540, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "2966:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8538, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "2947:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2947:18:25", + "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": 8541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2947:46:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2927:66:25" + }, + { + "assignments": [ + 8544 + ], + "declarations": [ + { + "constant": false, + "id": 8544, + "mutability": "mutable", + "name": "price", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8570, + "src": "3003:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3003:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8547, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8545, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "3019:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3019:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3003:32:25" + }, + { + "assignments": [ + 8549 + ], + "declarations": [ + { + "constant": false, + "id": 8549, + "mutability": "mutable", + "name": "fairAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8570, + "src": "3045:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3045:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8555, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8552, + "name": "spareBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8537, + "src": "3082:9:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8553, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8544, + "src": "3093:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8550, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3066:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "3066:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3066:33:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3045:54:25" + }, + { + "assignments": [ + 8557 + ], + "declarations": [ + { + "constant": false, + "id": 8557, + "mutability": "mutable", + "name": "newTargetQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8570, + "src": "3109:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8556, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3109:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8564, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8560, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "3189:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8561, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "3218:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8562, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8549, + "src": "3235:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8558, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "3134:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10991, + "src": "3134:41:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3134:121:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3109:146:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8567, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "3291:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8565, + "name": "newTargetQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8557, + "src": "3272:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3272:18:25", + "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": 8568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3272:35:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8535, + "id": 8569, + "nodeType": "Return", + "src": "3265:42:25" + } + ] + }, + "documentation": null, + "id": 8571, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RBelowBackToOne", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8532, + "nodeType": "ParameterList", + "parameters": [], + "src": "2761:2:25" + }, + "returnParameters": { + "id": 8535, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8534, + "mutability": "mutable", + "name": "payQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8571, + "src": "2787:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2787:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2786:23:25" + }, + "scope": 8853, + "src": "2736:578:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8602, + "nodeType": "Block", + "src": "3534:192:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8583, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8573, + "src": "3552:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 8584, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8575, + "src": "3561:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3552:20:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f424153455f42414c414e43455f4e4f545f454e4f554748", + "id": 8586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3574:30:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + }, + "value": "DODO_BASE_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 8582, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3544:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3544:61:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8588, + "nodeType": "ExpressionStatement", + "src": "3544:61:25" + }, + { + "assignments": [ + 8590 + ], + "declarations": [ + { + "constant": false, + "id": 8590, + "mutability": "mutable", + "name": "B2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8602, + "src": "3615:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8589, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3615:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8595, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8593, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8573, + "src": "3644:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8591, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8575, + "src": "3628:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3628:15:25", + "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": 8594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3628:23:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3615:36:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8597, + "name": "targetBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8577, + "src": "3685:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8598, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8575, + "src": "3703:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8599, + "name": "B2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8590, + "src": "3716:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8596, + "name": "_RAboveIntegrate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8852, + "src": "3668:16: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": 8600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3668:51:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8581, + "id": 8601, + "nodeType": "Return", + "src": "3661:58:25" + } + ] + }, + "documentation": null, + "id": 8603, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RAboveBuyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8573, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8603, + "src": "3404:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8572, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3404:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8575, + "mutability": "mutable", + "name": "baseBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8603, + "src": "3428:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3428:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8577, + "mutability": "mutable", + "name": "targetBaseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8603, + "src": "3457:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3457:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3394:93:25" + }, + "returnParameters": { + "id": 8581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8580, + "mutability": "mutable", + "name": "payQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8603, + "src": "3511:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8579, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3511:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3510:23:25" + }, + "scope": 8853, + "src": "3366:360:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8627, + "nodeType": "Block", + "src": "3905:269:25", + "statements": [ + { + "assignments": [ + 8615 + ], + "declarations": [ + { + "constant": false, + "id": 8615, + "mutability": "mutable", + "name": "B1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8627, + "src": "4063:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4063:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8620, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8618, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8605, + "src": "4092:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8616, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8607, + "src": "4076:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4076:15:25", + "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": 8619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4076:23:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4063:36:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8622, + "name": "targetBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8609, + "src": "4133:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8623, + "name": "B1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8615, + "src": "4151:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8624, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8607, + "src": "4155:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8621, + "name": "_RAboveIntegrate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8852, + "src": "4116:16: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": 8625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4116:51:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8613, + "id": 8626, + "nodeType": "Return", + "src": "4109:58:25" + } + ] + }, + "documentation": null, + "id": 8628, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RAboveSellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8605, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8628, + "src": "3771:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3771:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8607, + "mutability": "mutable", + "name": "baseBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8628, + "src": "3795:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8606, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3795:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8609, + "mutability": "mutable", + "name": "targetBaseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8628, + "src": "3824:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3824:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3761:93:25" + }, + "returnParameters": { + "id": 8613, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8612, + "mutability": "mutable", + "name": "receiveQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8628, + "src": "3878:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3878:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3877:27:25" + }, + "scope": 8853, + "src": "3732:442:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8667, + "nodeType": "Block", + "src": "4253:509:25", + "statements": [ + { + "assignments": [ + 8634 + ], + "declarations": [ + { + "constant": false, + "id": 8634, + "mutability": "mutable", + "name": "spareQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8667, + "src": "4370:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8633, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4370:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8639, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8637, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4411:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8635, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "4391:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4391:19:25", + "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": 8638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4391:48:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4370:69:25" + }, + { + "assignments": [ + 8641 + ], + "declarations": [ + { + "constant": false, + "id": 8641, + "mutability": "mutable", + "name": "price", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8667, + "src": "4449:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8640, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4449:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8644, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8642, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "4465:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4465:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4449:32:25" + }, + { + "assignments": [ + 8646 + ], + "declarations": [ + { + "constant": false, + "id": 8646, + "mutability": "mutable", + "name": "fairAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8667, + "src": "4491:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4491:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8652, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8649, + "name": "spareQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8634, + "src": "4533:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8650, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8641, + "src": "4545:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8647, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "4512:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "4512:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4512:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4491:60:25" + }, + { + "assignments": [ + 8654 + ], + "declarations": [ + { + "constant": false, + "id": 8654, + "mutability": "mutable", + "name": "newTargetBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8667, + "src": "4561:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4561:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8661, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8657, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "4640:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8658, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "4668:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8659, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8646, + "src": "4685:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8655, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "4585:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10991, + "src": "4585:41:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4585:120:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4561:144:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8664, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "4740:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8662, + "name": "newTargetBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8654, + "src": "4722:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4722:17:25", + "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": 8665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4722:33:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8632, + "id": 8666, + "nodeType": "Return", + "src": "4715:40:25" + } + ] + }, + "documentation": null, + "id": 8668, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RAboveBackToOne", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8629, + "nodeType": "ParameterList", + "parameters": [], + "src": "4205:2:25" + }, + "returnParameters": { + "id": 8632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8631, + "mutability": "mutable", + "name": "payBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8668, + "src": "4231:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8630, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4231:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4230:22:25" + }, + "scope": 8853, + "src": "4180:582:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8732, + "nodeType": "Block", + "src": "4910:588:25", + "statements": [ + { + "assignments": [ + 8676 + ], + "declarations": [ + { + "constant": false, + "id": 8676, + "mutability": "mutable", + "name": "Q", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8732, + "src": "4920:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4920:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8678, + "initialValue": { + "argumentTypes": null, + "id": 8677, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "4932:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4920:27:25" + }, + { + "assignments": [ + 8680 + ], + "declarations": [ + { + "constant": false, + "id": 8680, + "mutability": "mutable", + "name": "B", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8732, + "src": "4957:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8679, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4957:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8682, + "initialValue": { + "argumentTypes": null, + "id": 8681, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "4969:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4957:26:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 8687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8683, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "4997:10:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8684, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5011:5:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 8685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5011:13:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 8686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5011:17:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "4997:31:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 8697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8693, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "5129:10:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8694, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5143:5:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 8695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5143:13:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 8696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5143:23:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "5129:37:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 8715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8711, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "5316:10:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8712, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5330:5:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 8713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5330:13:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 8714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5330:23:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "5316:37:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8729, + "nodeType": "IfStatement", + "src": "5312:180:25", + "trueBody": { + "id": 8728, + "nodeType": "Block", + "src": "5355:137:25", + "statements": [ + { + "assignments": [ + 8717 + ], + "declarations": [ + { + "constant": false, + "id": 8717, + "mutability": "mutable", + "name": "payBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8728, + "src": "5369:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8716, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5369:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8720, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8718, + "name": "_RAboveBackToOne", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8668, + "src": "5392:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5392:18:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5369:41:25" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8723, + "name": "payBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8717, + "src": "5438:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8721, + "name": "B", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8680, + "src": "5432:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5432:5:25", + "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": 8724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5432:19:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8725, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "5453:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8726, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5431:50:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 8674, + "id": 8727, + "nodeType": "Return", + "src": "5424:57:25" + } + ] + } + }, + "id": 8730, + "nodeType": "IfStatement", + "src": "5125:367:25", + "trueBody": { + "id": 8710, + "nodeType": "Block", + "src": "5168:138:25", + "statements": [ + { + "assignments": [ + 8699 + ], + "declarations": [ + { + "constant": false, + "id": 8699, + "mutability": "mutable", + "name": "payQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8710, + "src": "5182:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5182:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8702, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8700, + "name": "_RBelowBackToOne", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8571, + "src": "5206:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5206:18:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5182:42:25" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 8703, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "5246:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8706, + "name": "payQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8699, + "src": "5280:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8704, + "name": "Q", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8676, + "src": "5274:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5274:5:25", + "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": 8707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5274:20:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8708, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5245:50:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 8674, + "id": 8709, + "nodeType": "Return", + "src": "5238:57:25" + } + ] + } + }, + "id": 8731, + "nodeType": "IfStatement", + "src": "4993:499:25", + "trueBody": { + "id": 8692, + "nodeType": "Block", + "src": "5030:89:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 8688, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "5052:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8689, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "5080:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8690, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5051:57:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 8674, + "id": 8691, + "nodeType": "Return", + "src": "5044:64:25" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "ffa64225", + "id": 8733, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExpectedTarget", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8669, + "nodeType": "ParameterList", + "parameters": [], + "src": "4845:2:25" + }, + "returnParameters": { + "id": 8674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8671, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8733, + "src": "4869:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8670, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4869:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8673, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8733, + "src": "4889:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4889:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4868:41:25" + }, + "scope": 8853, + "src": "4819:679:25", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8825, + "nodeType": "Block", + "src": "5566:737:25", + "statements": [ + { + "assignments": [ + 8739, + 8741 + ], + "declarations": [ + { + "constant": false, + "id": 8739, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8825, + "src": "5577:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8738, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5577:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8741, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8825, + "src": "5597:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8740, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5597:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8744, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8742, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "5620:17:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 8743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5620:19:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5576:63:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 8749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8745, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "5653:10:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8746, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5667:5:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 8747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5667:13:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 8748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5667:23:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "5653:37:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8823, + "nodeType": "Block", + "src": "6002:295:25", + "statements": [ + { + "assignments": [ + 8788 + ], + "declarations": [ + { + "constant": false, + "id": 8788, + "mutability": "mutable", + "name": "R", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8823, + "src": "6016:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6016:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8800, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8796, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "6097:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8793, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8739, + "src": "6081:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8791, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8739, + "src": "6066:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "6066:14:25", + "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": 8794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6066:26:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "6066:30:25", + "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": 8797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6066:46:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8798, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "6130:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8789, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "6028:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "6028:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:130:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6016:142:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 8814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8801, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8788, + "src": "6172:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8810, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "6221:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8811, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8788, + "src": "6226:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8808, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "6205:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "6205:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6205:23:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8805, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "6196:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8802, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "6176:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "6176:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6176:19:25", + "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": 8806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6176:24:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "6176:28:25", + "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": 8813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6176:53:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6172:57:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8815, + "nodeType": "ExpressionStatement", + "src": "6172:57:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8818, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "6266:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6266:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8820, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8788, + "src": "6284:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8816, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "6250:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "6250:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6250:36:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8737, + "id": 8822, + "nodeType": "Return", + "src": "6243:43:25" + } + ] + }, + "id": 8824, + "nodeType": "IfStatement", + "src": "5649:648:25", + "trueBody": { + "id": 8786, + "nodeType": "Block", + "src": "5692:304:25", + "statements": [ + { + "assignments": [ + 8751 + ], + "declarations": [ + { + "constant": false, + "id": 8751, + "mutability": "mutable", + "name": "R", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8786, + "src": "5706:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8750, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5706:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8763, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8759, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "5789:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8756, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8741, + "src": "5772:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8754, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8741, + "src": "5756:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5756:15:25", + "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": 8757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5756:28:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "5756:32:25", + "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": 8760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5756:49:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8761, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "5823:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8752, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5718:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "5718:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5718:134:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5706:146:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 8777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8764, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8751, + "src": "5866:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8773, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "5915:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8774, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8751, + "src": "5920:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8771, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5899:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "5899:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5899:23:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8768, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "5890:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8765, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5870:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "5870:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5870:19:25", + "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": 8769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5870:24:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5870:28:25", + "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": 8776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5870:53:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5866:57:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8778, + "nodeType": "ExpressionStatement", + "src": "5866:57:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8781, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "5965:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5965:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8783, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8751, + "src": "5983:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8779, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5944:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "5944:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5944:41:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8737, + "id": 8785, + "nodeType": "Return", + "src": "5937:48:25" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "ee27c689", + "id": 8826, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMidPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8734, + "nodeType": "ParameterList", + "parameters": [], + "src": "5524:2:25" + }, + "returnParameters": { + "id": 8737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8736, + "mutability": "mutable", + "name": "midPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8826, + "src": "5548:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8735, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5548:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5547:18:25" + }, + "scope": 8853, + "src": "5504:799:25", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8851, + "nodeType": "Block", + "src": "6433:108:25", + "statements": [ + { + "assignments": [ + 8838 + ], + "declarations": [ + { + "constant": false, + "id": 8838, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8851, + "src": "6443:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8837, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6443:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8841, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8839, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "6455:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6455:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6443:28:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8844, + "name": "B0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8828, + "src": "6515:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8845, + "name": "B1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8830, + "src": "6519:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8846, + "name": "B2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8832, + "src": "6523:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8847, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8838, + "src": "6527:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8848, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "6530:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8842, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "6488:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_GeneralIntegrate", + "nodeType": "MemberAccess", + "referencedDeclaration": 10751, + "src": "6488:26:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6488:46:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8836, + "id": 8850, + "nodeType": "Return", + "src": "6481:53:25" + } + ] + }, + "documentation": null, + "id": 8852, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RAboveIntegrate", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8828, + "mutability": "mutable", + "name": "B0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8852, + "src": "6344:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6344:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8830, + "mutability": "mutable", + "name": "B1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8852, + "src": "6364:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8829, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6364:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8832, + "mutability": "mutable", + "name": "B2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8852, + "src": "6384:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8831, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6384:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:66:25" + }, + "returnParameters": { + "id": 8836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8852, + "src": "6424:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6424:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6423:9:25" + }, + "scope": 8853, + "src": "6309:232:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 8854, + "src": "444:6425:25" + } + ], + "src": "78:6792:25" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Pricing.sol", + "exportedSymbols": { + "Pricing": [ + 8853 + ] + }, + "id": 8854, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8371, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:25" + }, + { + "id": 8372, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:25" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 8374, + "nodeType": "ImportDirective", + "scope": 8854, + "sourceUnit": 11624, + "src": "136:45:25", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8373, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:25", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 8376, + "nodeType": "ImportDirective", + "scope": 8854, + "sourceUnit": 11079, + "src": "182:51:25", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8375, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "190:11:25", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol", + "file": "../lib/DODOMath.sol", + "id": 8378, + "nodeType": "ImportDirective", + "scope": 8854, + "sourceUnit": 10993, + "src": "234:45:25", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8377, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "242:8:25", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "file": "../lib/Types.sol", + "id": 8380, + "nodeType": "ImportDirective", + "scope": 8854, + "sourceUnit": 11632, + "src": "280:39:25", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8379, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "288:5:25", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "file": "./Storage.sol", + "id": 8382, + "nodeType": "ImportDirective", + "scope": 8854, + "sourceUnit": 9614, + "src": "320:38:25", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8381, + "name": "Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "328:7:25", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 8384, + "name": "Storage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9613, + "src": "464:7:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Storage_$9613", + "typeString": "contract Storage" + } + }, + "id": 8385, + "nodeType": "InheritanceSpecifier", + "src": "464:7:25" + } + ], + "contractDependencies": [ + 9613, + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 8383, + "nodeType": "StructuredDocumentation", + "src": "361:82:25", + "text": " @title Pricing\n @author DODO Breeder\n @notice DODO Pricing model" + }, + "fullyImplemented": true, + "id": 8853, + "linearizedBaseContracts": [ + 8853, + 9613, + 11296, + 11166 + ], + "name": "Pricing", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 8388, + "libraryName": { + "contractScope": null, + "id": 8386, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "484:8:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "478:27:25", + "typeName": { + "id": 8387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "497:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 8422, + "nodeType": "Block", + "src": "711:466:25", + "statements": [ + { + "assignments": [ + 8398 + ], + "declarations": [ + { + "constant": false, + "id": 8398, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8422, + "src": "721:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8401, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8399, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "733:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "733:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "721:28:25" + }, + { + "assignments": [ + 8403 + ], + "declarations": [ + { + "constant": false, + "id": 8403, + "mutability": "mutable", + "name": "Q2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8422, + "src": "759:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "759:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8416, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8406, + "name": "targetQuoteTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8392, + "src": "826:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8407, + "name": "targetQuoteTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8392, + "src": "862:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8410, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8398, + "src": "914:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8411, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8390, + "src": "917:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8408, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "898:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "898:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "898:26:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8413, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "938:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 8414, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "957:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8404, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "772:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTrade", + "nodeType": "MemberAccess", + "referencedDeclaration": 10925, + "src": "772:40:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,bool,uint256) pure returns (uint256)" + } + }, + "id": 8415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "772:198:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "759:211:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8419, + "name": "Q2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "1167:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8417, + "name": "targetQuoteTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8392, + "src": "1140:22:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1140:26:25", + "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": 8420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1140:30:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8396, + "id": 8421, + "nodeType": "Return", + "src": "1133:37:25" + } + ] + }, + "documentation": null, + "id": 8423, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_ROneSellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8390, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8423, + "src": "585:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "585:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8392, + "mutability": "mutable", + "name": "targetQuoteTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8423, + "src": "601:30:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "601:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "584:48:25" + }, + "returnParameters": { + "id": 8396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8395, + "mutability": "mutable", + "name": "receiveQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8423, + "src": "680:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "680:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "679:27:25" + }, + "scope": 8853, + "src": "557:620:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8456, + "nodeType": "Block", + "src": "1331:266:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8433, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8425, + "src": "1349:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 8434, + "name": "targetBaseTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8427, + "src": "1358:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1349:30:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f424153455f42414c414e43455f4e4f545f454e4f554748", + "id": 8436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1381:30:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + }, + "value": "DODO_BASE_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 8432, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1341:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1341:71:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8438, + "nodeType": "ExpressionStatement", + "src": "1341:71:25" + }, + { + "assignments": [ + 8440 + ], + "declarations": [ + { + "constant": false, + "id": 8440, + "mutability": "mutable", + "name": "B2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8456, + "src": "1422:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8439, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1422:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8445, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8443, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8425, + "src": "1461:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8441, + "name": "targetBaseTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8427, + "src": "1435:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1435:25:25", + "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": 8444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1435:33:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1422:46:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 8452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8446, + "name": "payQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8430, + "src": "1478:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8448, + "name": "targetBaseTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8427, + "src": "1511:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8449, + "name": "targetBaseTokenAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8427, + "src": "1534:21:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8450, + "name": "B2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8440, + "src": "1557:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8447, + "name": "_RAboveIntegrate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8852, + "src": "1494:16: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": 8451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1494:66:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1478:82:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8453, + "nodeType": "ExpressionStatement", + "src": "1478:82:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 8454, + "name": "payQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8430, + "src": "1577:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8431, + "id": 8455, + "nodeType": "Return", + "src": "1570:20:25" + } + ] + }, + "documentation": null, + "id": 8457, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_ROneBuyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8428, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8425, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8457, + "src": "1210:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8424, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1210:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8427, + "mutability": "mutable", + "name": "targetBaseTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8457, + "src": "1226:29:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8426, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1226:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1209:47:25" + }, + "returnParameters": { + "id": 8431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8430, + "mutability": "mutable", + "name": "payQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8457, + "src": "1304:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1304:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1303:23:25" + }, + "scope": 8853, + "src": "1183:414:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8493, + "nodeType": "Block", + "src": "1823:288:25", + "statements": [ + { + "assignments": [ + 8469 + ], + "declarations": [ + { + "constant": false, + "id": 8469, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8493, + "src": "1833:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8468, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1833:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8472, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8470, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "1845:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1845:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1833:28:25" + }, + { + "assignments": [ + 8474 + ], + "declarations": [ + { + "constant": false, + "id": 8474, + "mutability": "mutable", + "name": "Q2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8493, + "src": "1871:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1871:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8487, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8477, + "name": "targetQuoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8463, + "src": "1938:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8478, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8461, + "src": "1969:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8481, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8469, + "src": "2011:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8482, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8459, + "src": "2014:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8479, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "1995:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "1995:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1995:26:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2035:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 8485, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "2054:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8475, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "1884:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTrade", + "nodeType": "MemberAccess", + "referencedDeclaration": 10925, + "src": "1884:40:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,bool,uint256) pure returns (uint256)" + } + }, + "id": 8486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1884:183:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1871:196:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8490, + "name": "Q2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8474, + "src": "2101:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8488, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8461, + "src": "2084:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2084:16:25", + "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": 8491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2084:20:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8467, + "id": 8492, + "nodeType": "Return", + "src": "2077:27:25" + } + ] + }, + "documentation": null, + "id": 8494, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RBelowSellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8459, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8494, + "src": "1688:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8458, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1688:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8461, + "mutability": "mutable", + "name": "quoteBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8494, + "src": "1712:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8460, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1712:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8463, + "mutability": "mutable", + "name": "targetQuoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8494, + "src": "1742:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1742:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1678:95:25" + }, + "returnParameters": { + "id": 8467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8466, + "mutability": "mutable", + "name": "receieQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8494, + "src": "1797:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8465, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1797:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1796:26:25" + }, + "scope": 8853, + "src": "1649:462:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8530, + "nodeType": "Block", + "src": "2287:443:25", + "statements": [ + { + "assignments": [ + 8506 + ], + "declarations": [ + { + "constant": false, + "id": 8506, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8530, + "src": "2449:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2449:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8509, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8507, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "2461:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2461:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2449:28:25" + }, + { + "assignments": [ + 8511 + ], + "declarations": [ + { + "constant": false, + "id": 8511, + "mutability": "mutable", + "name": "Q2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8530, + "src": "2487:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2487:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8524, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8514, + "name": "targetQuoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8500, + "src": "2554:17:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8515, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8498, + "src": "2585:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8518, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8506, + "src": "2631:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8519, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8496, + "src": "2634:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8516, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2611:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mulCeil", + "nodeType": "MemberAccess", + "referencedDeclaration": 11041, + "src": "2611:19:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2611:30:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2655:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 8522, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "2673:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8512, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "2500:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTrade", + "nodeType": "MemberAccess", + "referencedDeclaration": 10925, + "src": "2500:40:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,bool,uint256) pure returns (uint256)" + } + }, + "id": 8523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2500:186:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2487:199:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8527, + "name": "quoteBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8498, + "src": "2710:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8525, + "name": "Q2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8511, + "src": "2703:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2703:6:25", + "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": 8528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2703:20:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8504, + "id": 8529, + "nodeType": "Return", + "src": "2696:27:25" + } + ] + }, + "documentation": null, + "id": 8531, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RBelowBuyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8496, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8531, + "src": "2155:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2155:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8498, + "mutability": "mutable", + "name": "quoteBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8531, + "src": "2179:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2179:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8500, + "mutability": "mutable", + "name": "targetQuoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8531, + "src": "2209:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2209:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2145:95:25" + }, + "returnParameters": { + "id": 8504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8503, + "mutability": "mutable", + "name": "payQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8531, + "src": "2264:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8502, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2264:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2263:23:25" + }, + "scope": 8853, + "src": "2117:613:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8570, + "nodeType": "Block", + "src": "2810:504:25", + "statements": [ + { + "assignments": [ + 8537 + ], + "declarations": [ + { + "constant": false, + "id": 8537, + "mutability": "mutable", + "name": "spareBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8570, + "src": "2927:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2927:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8542, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8540, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "2966:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8538, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "2947:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "2947:18:25", + "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": 8541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2947:46:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2927:66:25" + }, + { + "assignments": [ + 8544 + ], + "declarations": [ + { + "constant": false, + "id": 8544, + "mutability": "mutable", + "name": "price", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8570, + "src": "3003:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3003:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8547, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8545, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "3019:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3019:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3003:32:25" + }, + { + "assignments": [ + 8549 + ], + "declarations": [ + { + "constant": false, + "id": 8549, + "mutability": "mutable", + "name": "fairAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8570, + "src": "3045:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3045:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8555, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8552, + "name": "spareBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8537, + "src": "3082:9:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8553, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8544, + "src": "3093:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8550, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3066:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "3066:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3066:33:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3045:54:25" + }, + { + "assignments": [ + 8557 + ], + "declarations": [ + { + "constant": false, + "id": 8557, + "mutability": "mutable", + "name": "newTargetQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8570, + "src": "3109:22:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8556, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3109:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8564, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8560, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "3189:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8561, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "3218:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8562, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8549, + "src": "3235:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8558, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "3134:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10991, + "src": "3134:41:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3134:121:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3109:146:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8567, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "3291:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8565, + "name": "newTargetQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8557, + "src": "3272:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3272:18:25", + "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": 8568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3272:35:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8535, + "id": 8569, + "nodeType": "Return", + "src": "3265:42:25" + } + ] + }, + "documentation": null, + "id": 8571, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RBelowBackToOne", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8532, + "nodeType": "ParameterList", + "parameters": [], + "src": "2761:2:25" + }, + "returnParameters": { + "id": 8535, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8534, + "mutability": "mutable", + "name": "payQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8571, + "src": "2787:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2787:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2786:23:25" + }, + "scope": 8853, + "src": "2736:578:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8602, + "nodeType": "Block", + "src": "3534:192:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8583, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8573, + "src": "3552:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 8584, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8575, + "src": "3561:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3552:20:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f424153455f42414c414e43455f4e4f545f454e4f554748", + "id": 8586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3574:30:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + }, + "value": "DODO_BASE_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 8582, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3544:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3544:61:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8588, + "nodeType": "ExpressionStatement", + "src": "3544:61:25" + }, + { + "assignments": [ + 8590 + ], + "declarations": [ + { + "constant": false, + "id": 8590, + "mutability": "mutable", + "name": "B2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8602, + "src": "3615:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8589, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3615:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8595, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8593, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8573, + "src": "3644:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8591, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8575, + "src": "3628:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3628:15:25", + "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": 8594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3628:23:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3615:36:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8597, + "name": "targetBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8577, + "src": "3685:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8598, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8575, + "src": "3703:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8599, + "name": "B2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8590, + "src": "3716:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8596, + "name": "_RAboveIntegrate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8852, + "src": "3668:16: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": 8600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3668:51:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8581, + "id": 8601, + "nodeType": "Return", + "src": "3661:58:25" + } + ] + }, + "documentation": null, + "id": 8603, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RAboveBuyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8573, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8603, + "src": "3404:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8572, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3404:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8575, + "mutability": "mutable", + "name": "baseBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8603, + "src": "3428:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3428:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8577, + "mutability": "mutable", + "name": "targetBaseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8603, + "src": "3457:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3457:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3394:93:25" + }, + "returnParameters": { + "id": 8581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8580, + "mutability": "mutable", + "name": "payQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8603, + "src": "3511:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8579, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3511:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3510:23:25" + }, + "scope": 8853, + "src": "3366:360:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8627, + "nodeType": "Block", + "src": "3905:269:25", + "statements": [ + { + "assignments": [ + 8615 + ], + "declarations": [ + { + "constant": false, + "id": 8615, + "mutability": "mutable", + "name": "B1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8627, + "src": "4063:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8614, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4063:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8620, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8618, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8605, + "src": "4092:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8616, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8607, + "src": "4076:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4076:15:25", + "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": 8619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4076:23:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4063:36:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8622, + "name": "targetBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8609, + "src": "4133:16:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8623, + "name": "B1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8615, + "src": "4151:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8624, + "name": "baseBalance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8607, + "src": "4155:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8621, + "name": "_RAboveIntegrate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8852, + "src": "4116:16: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": 8625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4116:51:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8613, + "id": 8626, + "nodeType": "Return", + "src": "4109:58:25" + } + ] + }, + "documentation": null, + "id": 8628, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RAboveSellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8605, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8628, + "src": "3771:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3771:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8607, + "mutability": "mutable", + "name": "baseBalance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8628, + "src": "3795:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8606, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3795:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8609, + "mutability": "mutable", + "name": "targetBaseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8628, + "src": "3824:24:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3824:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3761:93:25" + }, + "returnParameters": { + "id": 8613, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8612, + "mutability": "mutable", + "name": "receiveQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8628, + "src": "3878:25:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3878:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3877:27:25" + }, + "scope": 8853, + "src": "3732:442:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8667, + "nodeType": "Block", + "src": "4253:509:25", + "statements": [ + { + "assignments": [ + 8634 + ], + "declarations": [ + { + "constant": false, + "id": 8634, + "mutability": "mutable", + "name": "spareQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8667, + "src": "4370:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8633, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4370:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8639, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8637, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4411:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8635, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "4391:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4391:19:25", + "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": 8638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4391:48:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4370:69:25" + }, + { + "assignments": [ + 8641 + ], + "declarations": [ + { + "constant": false, + "id": 8641, + "mutability": "mutable", + "name": "price", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8667, + "src": "4449:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8640, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4449:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8644, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8642, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "4465:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4465:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4449:32:25" + }, + { + "assignments": [ + 8646 + ], + "declarations": [ + { + "constant": false, + "id": 8646, + "mutability": "mutable", + "name": "fairAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8667, + "src": "4491:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4491:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8652, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8649, + "name": "spareQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8634, + "src": "4533:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8650, + "name": "price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8641, + "src": "4545:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8647, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "4512:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "4512:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4512:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4491:60:25" + }, + { + "assignments": [ + 8654 + ], + "declarations": [ + { + "constant": false, + "id": 8654, + "mutability": "mutable", + "name": "newTargetBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8667, + "src": "4561:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4561:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8661, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8657, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "4640:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8658, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "4668:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8659, + "name": "fairAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8646, + "src": "4685:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8655, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "4585:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_SolveQuadraticFunctionForTarget", + "nodeType": "MemberAccess", + "referencedDeclaration": 10991, + "src": "4585:41:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4585:120:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4561:144:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8664, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "4740:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8662, + "name": "newTargetBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8654, + "src": "4722:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4722:17:25", + "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": 8665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4722:33:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8632, + "id": 8666, + "nodeType": "Return", + "src": "4715:40:25" + } + ] + }, + "documentation": null, + "id": 8668, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RAboveBackToOne", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8629, + "nodeType": "ParameterList", + "parameters": [], + "src": "4205:2:25" + }, + "returnParameters": { + "id": 8632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8631, + "mutability": "mutable", + "name": "payBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8668, + "src": "4231:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8630, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4231:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4230:22:25" + }, + "scope": 8853, + "src": "4180:582:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8732, + "nodeType": "Block", + "src": "4910:588:25", + "statements": [ + { + "assignments": [ + 8676 + ], + "declarations": [ + { + "constant": false, + "id": 8676, + "mutability": "mutable", + "name": "Q", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8732, + "src": "4920:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4920:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8678, + "initialValue": { + "argumentTypes": null, + "id": 8677, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "4932:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4920:27:25" + }, + { + "assignments": [ + 8680 + ], + "declarations": [ + { + "constant": false, + "id": 8680, + "mutability": "mutable", + "name": "B", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8732, + "src": "4957:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8679, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4957:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8682, + "initialValue": { + "argumentTypes": null, + "id": 8681, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "4969:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4957:26:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 8687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8683, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "4997:10:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8684, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5011:5:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 8685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5011:13:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 8686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5011:17:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "4997:31:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 8697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8693, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "5129:10:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8694, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5143:5:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 8695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5143:13:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 8696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5143:23:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "5129:37:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 8715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8711, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "5316:10:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8712, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5330:5:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 8713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5330:13:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 8714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5330:23:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "5316:37:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8729, + "nodeType": "IfStatement", + "src": "5312:180:25", + "trueBody": { + "id": 8728, + "nodeType": "Block", + "src": "5355:137:25", + "statements": [ + { + "assignments": [ + 8717 + ], + "declarations": [ + { + "constant": false, + "id": 8717, + "mutability": "mutable", + "name": "payBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8728, + "src": "5369:20:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8716, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5369:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8720, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8718, + "name": "_RAboveBackToOne", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8668, + "src": "5392:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5392:18:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5369:41:25" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8723, + "name": "payBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8717, + "src": "5438:12:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8721, + "name": "B", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8680, + "src": "5432:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5432:5:25", + "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": 8724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5432:19:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8725, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "5453:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8726, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5431:50:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 8674, + "id": 8727, + "nodeType": "Return", + "src": "5424:57:25" + } + ] + } + }, + "id": 8730, + "nodeType": "IfStatement", + "src": "5125:367:25", + "trueBody": { + "id": 8710, + "nodeType": "Block", + "src": "5168:138:25", + "statements": [ + { + "assignments": [ + 8699 + ], + "declarations": [ + { + "constant": false, + "id": 8699, + "mutability": "mutable", + "name": "payQuoteToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8710, + "src": "5182:21:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5182:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8702, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8700, + "name": "_RBelowBackToOne", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8571, + "src": "5206:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5206:18:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5182:42:25" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 8703, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "5246:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8706, + "name": "payQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8699, + "src": "5280:13:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8704, + "name": "Q", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8676, + "src": "5274:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5274:5:25", + "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": 8707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5274:20:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8708, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5245:50:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 8674, + "id": 8709, + "nodeType": "Return", + "src": "5238:57:25" + } + ] + } + }, + "id": 8731, + "nodeType": "IfStatement", + "src": "4993:499:25", + "trueBody": { + "id": 8692, + "nodeType": "Block", + "src": "5030:89:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 8688, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "5052:26:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8689, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "5080:27:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8690, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5051:57:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 8674, + "id": 8691, + "nodeType": "Return", + "src": "5044:64:25" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "ffa64225", + "id": 8733, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExpectedTarget", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8669, + "nodeType": "ParameterList", + "parameters": [], + "src": "4845:2:25" + }, + "returnParameters": { + "id": 8674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8671, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8733, + "src": "4869:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8670, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4869:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8673, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8733, + "src": "4889:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4889:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4868:41:25" + }, + "scope": 8853, + "src": "4819:679:25", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8825, + "nodeType": "Block", + "src": "5566:737:25", + "statements": [ + { + "assignments": [ + 8739, + 8741 + ], + "declarations": [ + { + "constant": false, + "id": 8739, + "mutability": "mutable", + "name": "baseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8825, + "src": "5577:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8738, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5577:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8741, + "mutability": "mutable", + "name": "quoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8825, + "src": "5597:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8740, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5597:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8744, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8742, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "5620:17:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 8743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5620:19:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5576:63:25" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 8749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8745, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "5653:10:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8746, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5667:5:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 8747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5667:13:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 8748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5667:23:25", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "5653:37:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8823, + "nodeType": "Block", + "src": "6002:295:25", + "statements": [ + { + "assignments": [ + 8788 + ], + "declarations": [ + { + "constant": false, + "id": 8788, + "mutability": "mutable", + "name": "R", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8823, + "src": "6016:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6016:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8800, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8796, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "6097:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8793, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8739, + "src": "6081:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8791, + "name": "baseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8739, + "src": "6066:10:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "6066:14:25", + "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": 8794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6066:26:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "6066:30:25", + "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": 8797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6066:46:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8798, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "6130:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8789, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "6028:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "6028:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:130:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6016:142:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 8814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8801, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8788, + "src": "6172:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8810, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "6221:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8811, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8788, + "src": "6226:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8808, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "6205:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "6205:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6205:23:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8805, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "6196:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8802, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "6176:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "6176:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6176:19:25", + "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": 8806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6176:24:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "6176:28:25", + "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": 8813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6176:53:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6172:57:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8815, + "nodeType": "ExpressionStatement", + "src": "6172:57:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8818, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "6266:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6266:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8820, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8788, + "src": "6284:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8816, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "6250:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "6250:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6250:36:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8737, + "id": 8822, + "nodeType": "Return", + "src": "6243:43:25" + } + ] + }, + "id": 8824, + "nodeType": "IfStatement", + "src": "5649:648:25", + "trueBody": { + "id": 8786, + "nodeType": "Block", + "src": "5692:304:25", + "statements": [ + { + "assignments": [ + 8751 + ], + "declarations": [ + { + "constant": false, + "id": 8751, + "mutability": "mutable", + "name": "R", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8786, + "src": "5706:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8750, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5706:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8763, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8759, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "5789:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8756, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8741, + "src": "5772:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8754, + "name": "quoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8741, + "src": "5756:11:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5756:15:25", + "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": 8757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5756:28:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "5756:32:25", + "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": 8760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5756:49:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8761, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "5823:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8752, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5718:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "5718:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5718:134:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5706:146:25" + }, + { + "expression": { + "argumentTypes": null, + "id": 8777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8764, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8751, + "src": "5866:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8773, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "5915:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8774, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8751, + "src": "5920:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8771, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5899:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "5899:15:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5899:23:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8768, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "5890:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8765, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5870:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "5870:15:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5870:19:25", + "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": 8769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5870:24:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5870:28:25", + "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": 8776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5870:53:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5866:57:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8778, + "nodeType": "ExpressionStatement", + "src": "5866:57:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8781, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "5965:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5965:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8783, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8751, + "src": "5983:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8779, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "5944:11:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 8780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "5944:20:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5944:41:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8737, + "id": 8785, + "nodeType": "Return", + "src": "5937:48:25" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "ee27c689", + "id": 8826, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMidPrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8734, + "nodeType": "ParameterList", + "parameters": [], + "src": "5524:2:25" + }, + "returnParameters": { + "id": 8737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8736, + "mutability": "mutable", + "name": "midPrice", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8826, + "src": "5548:16:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8735, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5548:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5547:18:25" + }, + "scope": 8853, + "src": "5504:799:25", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 8851, + "nodeType": "Block", + "src": "6433:108:25", + "statements": [ + { + "assignments": [ + 8838 + ], + "declarations": [ + { + "constant": false, + "id": 8838, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8851, + "src": "6443:9:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8837, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6443:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8841, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8839, + "name": "getOraclePrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9550, + "src": "6455:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6455:16:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6443:28:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8844, + "name": "B0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8828, + "src": "6515:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8845, + "name": "B1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8830, + "src": "6519:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8846, + "name": "B2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8832, + "src": "6523:2:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8847, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8838, + "src": "6527:1:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8848, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "6530:3:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8842, + "name": "DODOMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10992, + "src": "6488:8:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DODOMath_$10992_$", + "typeString": "type(library DODOMath)" + } + }, + "id": 8843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_GeneralIntegrate", + "nodeType": "MemberAccess", + "referencedDeclaration": 10751, + "src": "6488:26:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6488:46:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8836, + "id": 8850, + "nodeType": "Return", + "src": "6481:53:25" + } + ] + }, + "documentation": null, + "id": 8852, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_RAboveIntegrate", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8828, + "mutability": "mutable", + "name": "B0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8852, + "src": "6344:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6344:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8830, + "mutability": "mutable", + "name": "B1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8852, + "src": "6364:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8829, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6364:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8832, + "mutability": "mutable", + "name": "B2", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8852, + "src": "6384:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8831, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6384:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:66:25" + }, + "returnParameters": { + "id": 8836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8852, + "src": "6424:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6424:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6423:9:25" + }, + "scope": 8853, + "src": "6309:232:25", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 8854, + "src": "444:6425:25" + } + ], + "src": "78:6792:25" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.692Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "Pricing" + }, + "userdoc": { + "methods": {}, + "notice": "DODO Pricing model" + } +} \ No newline at end of file diff --git a/build-v1/contracts/ReentrancyGuard.json b/build-v1/contracts/ReentrancyGuard.json new file mode 100644 index 0000000..e3e1f09 --- /dev/null +++ b/build-v1/contracts/ReentrancyGuard.json @@ -0,0 +1,648 @@ +{ + "contractName": "ReentrancyGuard", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"ReentrancyGuard\"},\"userdoc\":{\"methods\":{},\"notice\":\"Protect functions from Reentrancy Attack\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol\":{\"keccak256\":\"0xc9c3fc946350fd72083a9d5b1327ff923533ef37b054bc7b6007562b20b0faaf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fc140417457139fb240427629673bfaf970c5d4568ad1cfe582764c6e4855bbb\",\"dweb:/ipfs/Qmd7ESYe5kyM6NYiSzeFE74f1YGGPXzpdVd5qnYg2AvgH8\"]}},\"version\":1}", + "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea26469706673582212209469d56347db7a53cb85062c49206c7bbc51a24fa41c5e625c5289740992784964736f6c63430006090033", + "deployedBytecode": "0x6080604052600080fdfea26469706673582212209469d56347db7a53cb85062c49206c7bbc51a24fa41c5e625c5289740992784964736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "249:362:39:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "249:362:39:-:0;;;;;", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n/**\n * @title ReentrancyGuard\n * @author DODO Breeder\n *\n * @notice Protect functions from Reentrancy Attack\n */\ncontract ReentrancyGuard {\n // https://solidity.readthedocs.io/en/latest/control-structures.html?highlight=zero-state#scoping-and-declarations\n // zero-state of _ENTERED_ is false\n bool private _ENTERED_;\n\n modifier preventReentrant() {\n require(!_ENTERED_, \"REENTRANT\");\n _ENTERED_ = true;\n _;\n _ENTERED_ = false;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol", + "exportedSymbols": { + "ReentrancyGuard": [ + 11296 + ] + }, + "id": 11297, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11273, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:39" + }, + { + "id": 11274, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:39" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 11275, + "nodeType": "StructuredDocumentation", + "src": "136:112:39", + "text": " @title ReentrancyGuard\n @author DODO Breeder\n @notice Protect functions from Reentrancy Attack" + }, + "fullyImplemented": true, + "id": 11296, + "linearizedBaseContracts": [ + 11296 + ], + "name": "ReentrancyGuard", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 11277, + "mutability": "mutable", + "name": "_ENTERED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11296, + "src": "439:22:39", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11276, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "439:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 11294, + "nodeType": "Block", + "src": "496:113:39", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "514:10:39", + "subExpression": { + "argumentTypes": null, + "id": 11280, + "name": "_ENTERED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11277, + "src": "515:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5245454e5452414e54", + "id": 11282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "526:11:39", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_40d1ed539991cf8f0c0e2cf9c325da6c7b687870b5825a46b3a1bc60970fec73", + "typeString": "literal_string \"REENTRANT\"" + }, + "value": "REENTRANT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_40d1ed539991cf8f0c0e2cf9c325da6c7b687870b5825a46b3a1bc60970fec73", + "typeString": "literal_string \"REENTRANT\"" + } + ], + "id": 11279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "506:7:39", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "506:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11284, + "nodeType": "ExpressionStatement", + "src": "506:32:39" + }, + { + "expression": { + "argumentTypes": null, + "id": 11287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11285, + "name": "_ENTERED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11277, + "src": "548:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 11286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "560:4:39", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "548:16:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11288, + "nodeType": "ExpressionStatement", + "src": "548:16:39" + }, + { + "id": 11289, + "nodeType": "PlaceholderStatement", + "src": "574:1:39" + }, + { + "expression": { + "argumentTypes": null, + "id": 11292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11290, + "name": "_ENTERED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11277, + "src": "585:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 11291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "597:5:39", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "585:17:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11293, + "nodeType": "ExpressionStatement", + "src": "585:17:39" + } + ] + }, + "documentation": null, + "id": 11295, + "name": "preventReentrant", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 11278, + "nodeType": "ParameterList", + "parameters": [], + "src": "493:2:39" + }, + "src": "468:141:39", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 11297, + "src": "249:362:39" + } + ], + "src": "78:534:39" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol", + "exportedSymbols": { + "ReentrancyGuard": [ + 11296 + ] + }, + "id": 11297, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11273, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:39" + }, + { + "id": 11274, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:39" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 11275, + "nodeType": "StructuredDocumentation", + "src": "136:112:39", + "text": " @title ReentrancyGuard\n @author DODO Breeder\n @notice Protect functions from Reentrancy Attack" + }, + "fullyImplemented": true, + "id": 11296, + "linearizedBaseContracts": [ + 11296 + ], + "name": "ReentrancyGuard", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 11277, + "mutability": "mutable", + "name": "_ENTERED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11296, + "src": "439:22:39", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11276, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "439:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 11294, + "nodeType": "Block", + "src": "496:113:39", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "514:10:39", + "subExpression": { + "argumentTypes": null, + "id": 11280, + "name": "_ENTERED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11277, + "src": "515:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5245454e5452414e54", + "id": 11282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "526:11:39", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_40d1ed539991cf8f0c0e2cf9c325da6c7b687870b5825a46b3a1bc60970fec73", + "typeString": "literal_string \"REENTRANT\"" + }, + "value": "REENTRANT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_40d1ed539991cf8f0c0e2cf9c325da6c7b687870b5825a46b3a1bc60970fec73", + "typeString": "literal_string \"REENTRANT\"" + } + ], + "id": 11279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "506:7:39", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "506:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11284, + "nodeType": "ExpressionStatement", + "src": "506:32:39" + }, + { + "expression": { + "argumentTypes": null, + "id": 11287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11285, + "name": "_ENTERED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11277, + "src": "548:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 11286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "560:4:39", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "548:16:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11288, + "nodeType": "ExpressionStatement", + "src": "548:16:39" + }, + { + "id": 11289, + "nodeType": "PlaceholderStatement", + "src": "574:1:39" + }, + { + "expression": { + "argumentTypes": null, + "id": 11292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11290, + "name": "_ENTERED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11277, + "src": "585:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 11291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "597:5:39", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "585:17:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11293, + "nodeType": "ExpressionStatement", + "src": "585:17:39" + } + ] + }, + "documentation": null, + "id": 11295, + "name": "preventReentrant", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 11278, + "nodeType": "ParameterList", + "parameters": [], + "src": "493:2:39" + }, + "src": "468:141:39", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 11297, + "src": "249:362:39" + } + ], + "src": "78:534:39" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.723Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "ReentrancyGuard" + }, + "userdoc": { + "methods": {}, + "notice": "Protect functions from Reentrancy Attack" + } +} \ No newline at end of file diff --git a/build-v1/contracts/SafeERC20.json b/build-v1/contracts/SafeERC20.json new file mode 100644 index 0000000..c648604 --- /dev/null +++ b/build-v1/contracts/SafeERC20.json @@ -0,0 +1,4183 @@ +{ + "contractName": "SafeERC20", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"methods\":{},\"title\":\"SafeERC20\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220efc22d9f54308584218dd0ff5e271f4cf43f09311e96d76e49aeef36f68a667464736f6c63430006090033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220efc22d9f54308584218dd0ff5e271f4cf43f09311e96d76e49aeef36f68a667464736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "747:2617:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "747:2617:40:-:0;;;;;;;;", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n This is a simplified version of OpenZepplin's SafeERC20 library\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {IERC20} from \"../intf/IERC20.sol\";\nimport {SafeMath} from \"./SafeMath.sol\";\n\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using SafeMath for uint256;\n\n function safeTransfer(\n IERC20 token,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n }\n\n function safeTransferFrom(\n IERC20 token,\n address from,\n address to,\n uint256 value\n ) internal {\n _callOptionalReturn(\n token,\n abi.encodeWithSelector(token.transferFrom.selector, from, to, value)\n );\n }\n\n function safeApprove(\n IERC20 token,\n address spender,\n uint256 value\n ) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n // solhint-disable-next-line max-line-length\n require(\n (value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves.\n\n // A Solidity high level call has three parts:\n // 1. The target address is checked to verify it contains contract code\n // 2. The call itself is made, and success asserted\n // 3. The return value is decoded, which in turn checks the size of the returned data.\n // solhint-disable-next-line max-line-length\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = address(token).call(data);\n require(success, \"SafeERC20: low-level call failed\");\n\n if (returndata.length > 0) {\n // Return data is optional\n // solhint-disable-next-line max-line-length\n require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n }\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "exportedSymbols": { + "SafeERC20": [ + 11440 + ] + }, + "id": 11441, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11298, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "146:22:40" + }, + { + "id": 11299, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "169:33:40" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 11301, + "nodeType": "ImportDirective", + "scope": 11441, + "sourceUnit": 10608, + "src": "204:42:40", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11300, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "212:6:40", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "./SafeMath.sol", + "id": 11303, + "nodeType": "ImportDirective", + "scope": 11441, + "sourceUnit": 11624, + "src": "247:40:40", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11302, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "255:8:40", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 11304, + "nodeType": "StructuredDocumentation", + "src": "290:456:40", + "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc." + }, + "fullyImplemented": true, + "id": 11440, + "linearizedBaseContracts": [ + 11440 + ], + "name": "SafeERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 11307, + "libraryName": { + "contractScope": null, + "id": 11305, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "777:8:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "771:27:40", + "typeName": { + "id": 11306, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "790:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 11328, + "nodeType": "Block", + "src": "906:103:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11317, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11309, + "src": "936:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11320, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11309, + "src": "966:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 11321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "966:14:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 11322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "966:23:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 11323, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11311, + "src": "991:2:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11324, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11313, + "src": "995:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11318, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "943:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 11319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "943:22:40", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 11325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "943:58:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 11316, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11439, + "src": "916:19:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 11326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "916:86:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11327, + "nodeType": "ExpressionStatement", + "src": "916:86:40" + } + ] + }, + "documentation": null, + "id": 11329, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11309, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11329, + "src": "835:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 11308, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "835:6:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11311, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11329, + "src": "857:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11310, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "857:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11313, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11329, + "src": "877:13:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "877:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "825:71:40" + }, + "returnParameters": { + "id": 11315, + "nodeType": "ParameterList", + "parameters": [], + "src": "906:0:40" + }, + "scope": 11440, + "src": "804:205:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11353, + "nodeType": "Block", + "src": "1143:147:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11341, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11331, + "src": "1186:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11344, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11331, + "src": "1228:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 11345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "1228:18:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 11346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1228:27:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 11347, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11333, + "src": "1257:4:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11348, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11335, + "src": "1263:2:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11349, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11337, + "src": "1267:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11342, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1205:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 11343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1205:22:40", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 11350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1205:68:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 11340, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11439, + "src": "1153:19:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 11351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1153:130:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11352, + "nodeType": "ExpressionStatement", + "src": "1153:130:40" + } + ] + }, + "documentation": null, + "id": 11354, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11338, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11331, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11354, + "src": "1050:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 11330, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "1050:6:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11333, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11354, + "src": "1072:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1072:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11335, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11354, + "src": "1094:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11334, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1094:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11337, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11354, + "src": "1114:13:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1114:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1040:93:40" + }, + "returnParameters": { + "id": 11339, + "nodeType": "ParameterList", + "parameters": [], + "src": "1143:0:40" + }, + "scope": 11440, + "src": "1015:275:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11395, + "nodeType": "Block", + "src": "1402:550:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 11379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11364, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11360, + "src": "1704:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1713:1:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1704:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 11367, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1703:12:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11372, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1744:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + ], + "id": 11371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1736:7:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11370, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1736:7:40", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1736:13:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11374, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11358, + "src": "1751:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 11368, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11356, + "src": "1720:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 11369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 10584, + "src": "1720:15:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 11375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1720:39:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1763:1:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1720:44:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 11378, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1719:46:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1703:62:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365", + "id": 11380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1779:56:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + }, + "value": "SafeERC20: approve from non-zero to non-zero allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + } + ], + "id": 11363, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1682:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1682:163:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11382, + "nodeType": "ExpressionStatement", + "src": "1682:163:40" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11384, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11356, + "src": "1875:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11387, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11356, + "src": "1905:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 11388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10594, + "src": "1905:13:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 11389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1905:22:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 11390, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11358, + "src": "1929:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11391, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11360, + "src": "1938:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11385, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1882:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 11386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1882:22:40", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 11392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1882:62:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 11383, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11439, + "src": "1855:19:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 11393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1855:90:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11394, + "nodeType": "ExpressionStatement", + "src": "1855:90:40" + } + ] + }, + "documentation": null, + "id": 11396, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeApprove", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11361, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11356, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11396, + "src": "1326:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 11355, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "1326:6:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11358, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11396, + "src": "1348:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1348:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11360, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11396, + "src": "1373:13:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11359, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1373:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1316:76:40" + }, + "returnParameters": { + "id": 11362, + "nodeType": "ParameterList", + "parameters": [], + "src": "1402:0:40" + }, + "scope": 11440, + "src": "1296:656:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11438, + "nodeType": "Block", + "src": "2405:957:40", + "statements": [ + { + "assignments": [ + 11405, + 11407 + ], + "declarations": [ + { + "constant": false, + "id": 11405, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11438, + "src": "2984:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11404, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2984:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11407, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11438, + "src": "2998:23:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11406, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2998:5:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11415, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11413, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11401, + "src": "3045:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11410, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11399, + "src": "3033:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + ], + "id": 11409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3025:7:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3025:7:40", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3025:14:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3025:19:40", + "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": 11414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3025:25:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2983:67:40" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11417, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11405, + "src": "3068:7:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 11418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3077:34:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + }, + "value": "SafeERC20: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + } + ], + "id": 11416, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3060:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3060:52:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11420, + "nodeType": "ExpressionStatement", + "src": "3060:52:40" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11421, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11407, + "src": "3127:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 11422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3127:17:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3147:1:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3127:21:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11437, + "nodeType": "IfStatement", + "src": "3123:233:40", + "trueBody": { + "id": 11436, + "nodeType": "Block", + "src": "3150:206:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11428, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11407, + "src": "3279:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 11430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3292:4:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 11429, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3292:4:40", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 11431, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3291:6:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 11426, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "3268:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 11427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3268:10:40", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3268:30:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564", + "id": 11433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3300:44:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + }, + "value": "SafeERC20: ERC20 operation did not succeed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + } + ], + "id": 11425, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3260:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3260:85:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11435, + "nodeType": "ExpressionStatement", + "src": "3260:85:40" + } + ] + } + } + ] + }, + "documentation": { + "id": 11397, + "nodeType": "StructuredDocumentation", + "src": "1958:372:40", + "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)." + }, + "id": 11439, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_callOptionalReturn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11399, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11439, + "src": "2364:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 11398, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "2364:6:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11401, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11439, + "src": "2378:17:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11400, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2378:5:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2363:33:40" + }, + "returnParameters": { + "id": 11403, + "nodeType": "ParameterList", + "parameters": [], + "src": "2405:0:40" + }, + "scope": 11440, + "src": "2335:1027:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 11441, + "src": "747:2617:40" + } + ], + "src": "146:3219:40" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "exportedSymbols": { + "SafeERC20": [ + 11440 + ] + }, + "id": 11441, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11298, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "146:22:40" + }, + { + "id": 11299, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "169:33:40" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 11301, + "nodeType": "ImportDirective", + "scope": 11441, + "sourceUnit": 10608, + "src": "204:42:40", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11300, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "212:6:40", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "./SafeMath.sol", + "id": 11303, + "nodeType": "ImportDirective", + "scope": 11441, + "sourceUnit": 11624, + "src": "247:40:40", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 11302, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "255:8:40", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 11304, + "nodeType": "StructuredDocumentation", + "src": "290:456:40", + "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc." + }, + "fullyImplemented": true, + "id": 11440, + "linearizedBaseContracts": [ + 11440 + ], + "name": "SafeERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 11307, + "libraryName": { + "contractScope": null, + "id": 11305, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "777:8:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "771:27:40", + "typeName": { + "id": 11306, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "790:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "body": { + "id": 11328, + "nodeType": "Block", + "src": "906:103:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11317, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11309, + "src": "936:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11320, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11309, + "src": "966:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 11321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "966:14:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 11322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "966:23:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 11323, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11311, + "src": "991:2:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11324, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11313, + "src": "995:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11318, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "943:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 11319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "943:22:40", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 11325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "943:58:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 11316, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11439, + "src": "916:19:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 11326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "916:86:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11327, + "nodeType": "ExpressionStatement", + "src": "916:86:40" + } + ] + }, + "documentation": null, + "id": 11329, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11309, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11329, + "src": "835:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 11308, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "835:6:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11311, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11329, + "src": "857:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11310, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "857:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11313, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11329, + "src": "877:13:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "877:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "825:71:40" + }, + "returnParameters": { + "id": 11315, + "nodeType": "ParameterList", + "parameters": [], + "src": "906:0:40" + }, + "scope": 11440, + "src": "804:205:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11353, + "nodeType": "Block", + "src": "1143:147:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11341, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11331, + "src": "1186:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11344, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11331, + "src": "1228:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 11345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 10606, + "src": "1228:18:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 11346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1228:27:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 11347, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11333, + "src": "1257:4:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11348, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11335, + "src": "1263:2:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11349, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11337, + "src": "1267:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11342, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1205:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 11343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1205:22:40", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 11350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1205:68:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 11340, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11439, + "src": "1153:19:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 11351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1153:130:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11352, + "nodeType": "ExpressionStatement", + "src": "1153:130:40" + } + ] + }, + "documentation": null, + "id": 11354, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11338, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11331, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11354, + "src": "1050:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 11330, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "1050:6:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11333, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11354, + "src": "1072:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1072:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11335, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11354, + "src": "1094:10:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11334, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1094:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11337, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11354, + "src": "1114:13:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1114:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1040:93:40" + }, + "returnParameters": { + "id": 11339, + "nodeType": "ParameterList", + "parameters": [], + "src": "1143:0:40" + }, + "scope": 11440, + "src": "1015:275:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11395, + "nodeType": "Block", + "src": "1402:550:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 11379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11364, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11360, + "src": "1704:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1713:1:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1704:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 11367, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1703:12:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11372, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1744:4:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + ], + "id": 11371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1736:7:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11370, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1736:7:40", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1736:13:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11374, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11358, + "src": "1751:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 11368, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11356, + "src": "1720:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 11369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 10584, + "src": "1720:15:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 11375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1720:39:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1763:1:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1720:44:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 11378, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1719:46:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1703:62:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365", + "id": 11380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1779:56:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + }, + "value": "SafeERC20: approve from non-zero to non-zero allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + } + ], + "id": 11363, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1682:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1682:163:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11382, + "nodeType": "ExpressionStatement", + "src": "1682:163:40" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11384, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11356, + "src": "1875:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11387, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11356, + "src": "1905:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 11388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10594, + "src": "1905:13:40", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 11389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1905:22:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 11390, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11358, + "src": "1929:7:40", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 11391, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11360, + "src": "1938:5:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 11385, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1882:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 11386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1882:22:40", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 11392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1882:62:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 11383, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11439, + "src": "1855:19:40", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 11393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1855:90:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11394, + "nodeType": "ExpressionStatement", + "src": "1855:90:40" + } + ] + }, + "documentation": null, + "id": 11396, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeApprove", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11361, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11356, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11396, + "src": "1326:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 11355, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "1326:6:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11358, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11396, + "src": "1348:15:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 11357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1348:7:40", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11360, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11396, + "src": "1373:13:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11359, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1373:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1316:76:40" + }, + "returnParameters": { + "id": 11362, + "nodeType": "ParameterList", + "parameters": [], + "src": "1402:0:40" + }, + "scope": 11440, + "src": "1296:656:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11438, + "nodeType": "Block", + "src": "2405:957:40", + "statements": [ + { + "assignments": [ + 11405, + 11407 + ], + "declarations": [ + { + "constant": false, + "id": 11405, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11438, + "src": "2984:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 11404, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2984:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11407, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11438, + "src": "2998:23:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11406, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2998:5:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11415, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11413, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11401, + "src": "3045:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11410, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11399, + "src": "3033:5:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + ], + "id": 11409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3025:7:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 11408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3025:7:40", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 11411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3025:14:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 11412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3025:19:40", + "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": 11414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3025:25:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2983:67:40" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11417, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11405, + "src": "3068:7:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 11418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3077:34:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + }, + "value": "SafeERC20: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + } + ], + "id": 11416, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3060:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3060:52:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11420, + "nodeType": "ExpressionStatement", + "src": "3060:52:40" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 11421, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11407, + "src": "3127:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 11422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3127:17:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3147:1:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3127:21:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11437, + "nodeType": "IfStatement", + "src": "3123:233:40", + "trueBody": { + "id": 11436, + "nodeType": "Block", + "src": "3150:206:40", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11428, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11407, + "src": "3279:10:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 11430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3292:4:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 11429, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3292:4:40", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 11431, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3291:6:40", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 11426, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "3268:3:40", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 11427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3268:10:40", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3268:30:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564", + "id": 11433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3300:44:40", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + }, + "value": "SafeERC20: ERC20 operation did not succeed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + } + ], + "id": 11425, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3260:7:40", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3260:85:40", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11435, + "nodeType": "ExpressionStatement", + "src": "3260:85:40" + } + ] + } + } + ] + }, + "documentation": { + "id": 11397, + "nodeType": "StructuredDocumentation", + "src": "1958:372:40", + "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)." + }, + "id": 11439, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_callOptionalReturn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11399, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11439, + "src": "2364:12:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 11398, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "2364:6:40", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11401, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11439, + "src": "2378:17:40", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 11400, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2378:5:40", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2363:33:40" + }, + "returnParameters": { + "id": 11403, + "nodeType": "ParameterList", + "parameters": [], + "src": "2405:0:40" + }, + "scope": 11440, + "src": "2335:1027:40", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 11441, + "src": "747:2617:40" + } + ], + "src": "146:3219:40" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.723Z", + "devdoc": { + "details": "Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.", + "methods": {}, + "title": "SafeERC20" + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/SafeMath.json b/build-v1/contracts/SafeMath.json new file mode 100644 index 0000000..2c06931 --- /dev/null +++ b/build-v1/contracts/SafeMath.json @@ -0,0 +1,4884 @@ +{ + "contractName": "SafeMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"SafeMath\"},\"userdoc\":{\"methods\":{},\"notice\":\"Math operations with safety checks that revert on error\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f99a1a380d3a07e18cd342849bc4d71903ab299005ff70b898034a0decf695864736f6c63430006090033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f99a1a380d3a07e18cd342849bc4d71903ab299005ff70b898034a0decf695864736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "258:1179:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "258:1179:41:-:0;;;;;;;;", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\n\n/**\n * @title SafeMath\n * @author DODO Breeder\n *\n * @notice Math operations with safety checks that revert on error\n */\nlibrary SafeMath {\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"MUL_ERROR\");\n\n return c;\n }\n\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"DIVIDING_ERROR\");\n return a / b;\n }\n\n function divCeil(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 quotient = div(a, b);\n uint256 remainder = a - quotient * b;\n if (remainder > 0) {\n return quotient + 1;\n } else {\n return quotient;\n }\n }\n\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SUB_ERROR\");\n return a - b;\n }\n\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"ADD_ERROR\");\n return c;\n }\n\n function sqrt(uint256 x) internal pure returns (uint256 y) {\n uint256 z = x / 2 + 1;\n y = x;\n while (z < y) {\n y = z;\n z = (x / z + z) / 2;\n }\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 11623 + ] + }, + "id": 11624, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11442, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:41" + }, + { + "id": 11443, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:41" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 11444, + "nodeType": "StructuredDocumentation", + "src": "137:120:41", + "text": " @title SafeMath\n @author DODO Breeder\n @notice Math operations with safety checks that revert on error" + }, + "fullyImplemented": true, + "id": 11623, + "linearizedBaseContracts": [ + 11623 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 11477, + "nodeType": "Block", + "src": "348:150:41", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11453, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11446, + "src": "362:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "367:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "362:6:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11459, + "nodeType": "IfStatement", + "src": "358:45:41", + "trueBody": { + "id": 11458, + "nodeType": "Block", + "src": "370:33:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "391:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 11452, + "id": 11457, + "nodeType": "Return", + "src": "384:8:41" + } + ] + } + }, + { + "assignments": [ + 11461 + ], + "declarations": [ + { + "constant": false, + "id": 11461, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11477, + "src": "413:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11460, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "413:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11465, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11462, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11446, + "src": "425:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11463, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11448, + "src": "429:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "425:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "413:17:41" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11467, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11461, + "src": "448:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11468, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11446, + "src": "452:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "448:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 11470, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11448, + "src": "457:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "448:10:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4d554c5f4552524f52", + "id": 11472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "460:11:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f15de75b890fc71862dae54a774d957f0461cb8f954cec0f22848d646e50110f", + "typeString": "literal_string \"MUL_ERROR\"" + }, + "value": "MUL_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f15de75b890fc71862dae54a774d957f0461cb8f954cec0f22848d646e50110f", + "typeString": "literal_string \"MUL_ERROR\"" + } + ], + "id": 11466, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "440:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "440:32:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11474, + "nodeType": "ExpressionStatement", + "src": "440:32:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 11475, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11461, + "src": "490:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11452, + "id": 11476, + "nodeType": "Return", + "src": "483:8:41" + } + ] + }, + "documentation": null, + "id": 11478, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11446, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11478, + "src": "294:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11445, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "294:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11448, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11478, + "src": "305:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11447, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "305:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "293:22:41" + }, + "returnParameters": { + "id": 11452, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11451, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11478, + "src": "339:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "339:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "338:9:41" + }, + "scope": 11623, + "src": "281:217:41", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11498, + "nodeType": "Block", + "src": "571:71:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11488, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11482, + "src": "589:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "593:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "589:5:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4449564944494e475f4552524f52", + "id": 11491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "596:16:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_583be15a4a9aee3ef6d29bfba17fb7fe394ac90caa4352e8a6c1e95a37366a64", + "typeString": "literal_string \"DIVIDING_ERROR\"" + }, + "value": "DIVIDING_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_583be15a4a9aee3ef6d29bfba17fb7fe394ac90caa4352e8a6c1e95a37366a64", + "typeString": "literal_string \"DIVIDING_ERROR\"" + } + ], + "id": 11487, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "581:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "581:32:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11493, + "nodeType": "ExpressionStatement", + "src": "581:32:41" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11494, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11480, + "src": "630:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11495, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11482, + "src": "634:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "630:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11486, + "id": 11497, + "nodeType": "Return", + "src": "623:12:41" + } + ] + }, + "documentation": null, + "id": 11499, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11480, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11499, + "src": "517:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11479, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "517:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11482, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11499, + "src": "528:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11481, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "528:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "516:22:41" + }, + "returnParameters": { + "id": 11486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11499, + "src": "562:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "562:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "561:9:41" + }, + "scope": 11623, + "src": "504:138:41", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11535, + "nodeType": "Block", + "src": "719:209:41", + "statements": [ + { + "assignments": [ + 11509 + ], + "declarations": [ + { + "constant": false, + "id": 11509, + "mutability": "mutable", + "name": "quotient", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11535, + "src": "729:16:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "729:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11514, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11511, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11501, + "src": "752:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11512, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11503, + "src": "755:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11510, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11499, + "src": "748:3:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 11513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "748:9:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "729:28:41" + }, + { + "assignments": [ + 11516 + ], + "declarations": [ + { + "constant": false, + "id": 11516, + "mutability": "mutable", + "name": "remainder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11535, + "src": "767:17:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11515, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "767:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11522, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11517, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11501, + "src": "787:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11518, + "name": "quotient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11509, + "src": "791:8:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11519, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11503, + "src": "802:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "791:12:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "787:16:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "767:36:41" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11523, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11516, + "src": "817:9:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "829:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "817:13:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 11533, + "nodeType": "Block", + "src": "882:40:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11531, + "name": "quotient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11509, + "src": "903:8:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11507, + "id": 11532, + "nodeType": "Return", + "src": "896:15:41" + } + ] + }, + "id": 11534, + "nodeType": "IfStatement", + "src": "813:109:41", + "trueBody": { + "id": 11530, + "nodeType": "Block", + "src": "832:44:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11526, + "name": "quotient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11509, + "src": "853:8:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 11527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "864:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "853:12:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11507, + "id": 11529, + "nodeType": "Return", + "src": "846:19:41" + } + ] + } + } + ] + }, + "documentation": null, + "id": 11536, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "divCeil", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11501, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11536, + "src": "665:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "665:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11503, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11536, + "src": "676:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11502, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "676:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "664:22:41" + }, + "returnParameters": { + "id": 11507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11506, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11536, + "src": "710:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "710:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "709:9:41" + }, + "scope": 11623, + "src": "648:280:41", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11556, + "nodeType": "Block", + "src": "1001:67:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11546, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11540, + "src": "1019:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 11547, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11538, + "src": "1024:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1019:6:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5355425f4552524f52", + "id": 11549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1027:11:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c20885bc87603b27150b555979fd4ced812adaa007c9ca583e7fb0ad94e1fb1", + "typeString": "literal_string \"SUB_ERROR\"" + }, + "value": "SUB_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8c20885bc87603b27150b555979fd4ced812adaa007c9ca583e7fb0ad94e1fb1", + "typeString": "literal_string \"SUB_ERROR\"" + } + ], + "id": 11545, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1011:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1011:28:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11551, + "nodeType": "ExpressionStatement", + "src": "1011:28:41" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11552, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11538, + "src": "1056:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 11553, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11540, + "src": "1060:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1056:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11544, + "id": 11555, + "nodeType": "Return", + "src": "1049:12:41" + } + ] + }, + "documentation": null, + "id": 11557, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11538, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11557, + "src": "947:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "947:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11540, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11557, + "src": "958:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11539, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "958:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "946:22:41" + }, + "returnParameters": { + "id": 11544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11543, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11557, + "src": "992:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "992:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "991:9:41" + }, + "scope": 11623, + "src": "934:134:41", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11581, + "nodeType": "Block", + "src": "1141:90:41", + "statements": [ + { + "assignments": [ + 11567 + ], + "declarations": [ + { + "constant": false, + "id": 11567, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11581, + "src": "1151:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1151:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11571, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11568, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11559, + "src": "1163:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 11569, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11561, + "src": "1167:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1163:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1151:17:41" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11573, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11567, + "src": "1186:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 11574, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11559, + "src": "1191:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1186:6:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4144445f4552524f52", + "id": 11576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1194:11:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_db5ce4bdd57c365768e4ced49819a8b22d9737a9a1f0821626d5d162f0c4f58b", + "typeString": "literal_string \"ADD_ERROR\"" + }, + "value": "ADD_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_db5ce4bdd57c365768e4ced49819a8b22d9737a9a1f0821626d5d162f0c4f58b", + "typeString": "literal_string \"ADD_ERROR\"" + } + ], + "id": 11572, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1178:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1178:28:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11578, + "nodeType": "ExpressionStatement", + "src": "1178:28:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 11579, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11567, + "src": "1223:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11565, + "id": 11580, + "nodeType": "Return", + "src": "1216:8:41" + } + ] + }, + "documentation": null, + "id": 11582, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11559, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11582, + "src": "1087:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1087:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11561, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11582, + "src": "1098:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1098:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1086:22:41" + }, + "returnParameters": { + "id": 11565, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11564, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11582, + "src": "1132:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1132:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1131:9:41" + }, + "scope": 11623, + "src": "1074:157:41", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11621, + "nodeType": "Block", + "src": "1296:139:41", + "statements": [ + { + "assignments": [ + 11590 + ], + "declarations": [ + { + "constant": false, + "id": 11590, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11621, + "src": "1306:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11589, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1306:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11596, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11591, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11584, + "src": "1318:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 11592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1322:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "1318:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 11594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1326:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1318:9:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1306:21:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 11599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11597, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11587, + "src": "1337:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11598, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11584, + "src": "1341:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1337:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11600, + "nodeType": "ExpressionStatement", + "src": "1337:5:41" + }, + { + "body": { + "id": 11619, + "nodeType": "Block", + "src": "1366:63:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11604, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11587, + "src": "1380:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11605, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1384:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1380:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11607, + "nodeType": "ExpressionStatement", + "src": "1380:5:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 11617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11608, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1399:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11609, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11584, + "src": "1404:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11610, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1408:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1404:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 11612, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1412:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1404:9:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11614, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1403:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 11615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1417:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "1403:15:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1399:19:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11618, + "nodeType": "ExpressionStatement", + "src": "1399:19:41" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11601, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1359:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 11602, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11587, + "src": "1363:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1359:5:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11620, + "nodeType": "WhileStatement", + "src": "1352:77:41" + } + ] + }, + "documentation": null, + "id": 11622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11584, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11622, + "src": "1251:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1251:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1250:11:41" + }, + "returnParameters": { + "id": 11588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11587, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11622, + "src": "1285:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11586, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1285:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1284:11:41" + }, + "scope": 11623, + "src": "1237:198:41", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 11624, + "src": "258:1179:41" + } + ], + "src": "78:1360:41" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 11623 + ] + }, + "id": 11624, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11442, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:41" + }, + { + "id": 11443, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:41" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 11444, + "nodeType": "StructuredDocumentation", + "src": "137:120:41", + "text": " @title SafeMath\n @author DODO Breeder\n @notice Math operations with safety checks that revert on error" + }, + "fullyImplemented": true, + "id": 11623, + "linearizedBaseContracts": [ + 11623 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 11477, + "nodeType": "Block", + "src": "348:150:41", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11453, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11446, + "src": "362:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "367:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "362:6:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 11459, + "nodeType": "IfStatement", + "src": "358:45:41", + "trueBody": { + "id": 11458, + "nodeType": "Block", + "src": "370:33:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "391:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 11452, + "id": 11457, + "nodeType": "Return", + "src": "384:8:41" + } + ] + } + }, + { + "assignments": [ + 11461 + ], + "declarations": [ + { + "constant": false, + "id": 11461, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11477, + "src": "413:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11460, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "413:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11465, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11462, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11446, + "src": "425:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11463, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11448, + "src": "429:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "425:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "413:17:41" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11467, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11461, + "src": "448:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11468, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11446, + "src": "452:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "448:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 11470, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11448, + "src": "457:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "448:10:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4d554c5f4552524f52", + "id": 11472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "460:11:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f15de75b890fc71862dae54a774d957f0461cb8f954cec0f22848d646e50110f", + "typeString": "literal_string \"MUL_ERROR\"" + }, + "value": "MUL_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f15de75b890fc71862dae54a774d957f0461cb8f954cec0f22848d646e50110f", + "typeString": "literal_string \"MUL_ERROR\"" + } + ], + "id": 11466, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "440:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "440:32:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11474, + "nodeType": "ExpressionStatement", + "src": "440:32:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 11475, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11461, + "src": "490:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11452, + "id": 11476, + "nodeType": "Return", + "src": "483:8:41" + } + ] + }, + "documentation": null, + "id": 11478, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11446, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11478, + "src": "294:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11445, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "294:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11448, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11478, + "src": "305:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11447, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "305:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "293:22:41" + }, + "returnParameters": { + "id": 11452, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11451, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11478, + "src": "339:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "339:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "338:9:41" + }, + "scope": 11623, + "src": "281:217:41", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11498, + "nodeType": "Block", + "src": "571:71:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11488, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11482, + "src": "589:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "593:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "589:5:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4449564944494e475f4552524f52", + "id": 11491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "596:16:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_583be15a4a9aee3ef6d29bfba17fb7fe394ac90caa4352e8a6c1e95a37366a64", + "typeString": "literal_string \"DIVIDING_ERROR\"" + }, + "value": "DIVIDING_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_583be15a4a9aee3ef6d29bfba17fb7fe394ac90caa4352e8a6c1e95a37366a64", + "typeString": "literal_string \"DIVIDING_ERROR\"" + } + ], + "id": 11487, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "581:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "581:32:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11493, + "nodeType": "ExpressionStatement", + "src": "581:32:41" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11494, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11480, + "src": "630:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11495, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11482, + "src": "634:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "630:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11486, + "id": 11497, + "nodeType": "Return", + "src": "623:12:41" + } + ] + }, + "documentation": null, + "id": 11499, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11480, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11499, + "src": "517:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11479, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "517:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11482, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11499, + "src": "528:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11481, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "528:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "516:22:41" + }, + "returnParameters": { + "id": 11486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11499, + "src": "562:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "562:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "561:9:41" + }, + "scope": 11623, + "src": "504:138:41", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11535, + "nodeType": "Block", + "src": "719:209:41", + "statements": [ + { + "assignments": [ + 11509 + ], + "declarations": [ + { + "constant": false, + "id": 11509, + "mutability": "mutable", + "name": "quotient", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11535, + "src": "729:16:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "729:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11514, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 11511, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11501, + "src": "752:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 11512, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11503, + "src": "755:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11510, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11499, + "src": "748:3:41", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 11513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "748:9:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "729:28:41" + }, + { + "assignments": [ + 11516 + ], + "declarations": [ + { + "constant": false, + "id": 11516, + "mutability": "mutable", + "name": "remainder", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11535, + "src": "767:17:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11515, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "767:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11522, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11517, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11501, + "src": "787:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11518, + "name": "quotient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11509, + "src": "791:8:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 11519, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11503, + "src": "802:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "791:12:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "787:16:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "767:36:41" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11523, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11516, + "src": "817:9:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 11524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "829:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "817:13:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 11533, + "nodeType": "Block", + "src": "882:40:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11531, + "name": "quotient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11509, + "src": "903:8:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11507, + "id": 11532, + "nodeType": "Return", + "src": "896:15:41" + } + ] + }, + "id": 11534, + "nodeType": "IfStatement", + "src": "813:109:41", + "trueBody": { + "id": 11530, + "nodeType": "Block", + "src": "832:44:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11526, + "name": "quotient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11509, + "src": "853:8:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 11527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "864:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "853:12:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11507, + "id": 11529, + "nodeType": "Return", + "src": "846:19:41" + } + ] + } + } + ] + }, + "documentation": null, + "id": 11536, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "divCeil", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11501, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11536, + "src": "665:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "665:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11503, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11536, + "src": "676:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11502, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "676:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "664:22:41" + }, + "returnParameters": { + "id": 11507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11506, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11536, + "src": "710:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "710:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "709:9:41" + }, + "scope": 11623, + "src": "648:280:41", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11556, + "nodeType": "Block", + "src": "1001:67:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11546, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11540, + "src": "1019:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 11547, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11538, + "src": "1024:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1019:6:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5355425f4552524f52", + "id": 11549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1027:11:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8c20885bc87603b27150b555979fd4ced812adaa007c9ca583e7fb0ad94e1fb1", + "typeString": "literal_string \"SUB_ERROR\"" + }, + "value": "SUB_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8c20885bc87603b27150b555979fd4ced812adaa007c9ca583e7fb0ad94e1fb1", + "typeString": "literal_string \"SUB_ERROR\"" + } + ], + "id": 11545, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1011:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1011:28:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11551, + "nodeType": "ExpressionStatement", + "src": "1011:28:41" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11552, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11538, + "src": "1056:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 11553, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11540, + "src": "1060:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1056:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11544, + "id": 11555, + "nodeType": "Return", + "src": "1049:12:41" + } + ] + }, + "documentation": null, + "id": 11557, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11538, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11557, + "src": "947:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "947:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11540, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11557, + "src": "958:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11539, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "958:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "946:22:41" + }, + "returnParameters": { + "id": 11544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11543, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11557, + "src": "992:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "992:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "991:9:41" + }, + "scope": 11623, + "src": "934:134:41", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11581, + "nodeType": "Block", + "src": "1141:90:41", + "statements": [ + { + "assignments": [ + 11567 + ], + "declarations": [ + { + "constant": false, + "id": 11567, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11581, + "src": "1151:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1151:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11571, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11568, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11559, + "src": "1163:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 11569, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11561, + "src": "1167:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1163:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1151:17:41" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11573, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11567, + "src": "1186:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 11574, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11559, + "src": "1191:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1186:6:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4144445f4552524f52", + "id": 11576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1194:11:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_db5ce4bdd57c365768e4ced49819a8b22d9737a9a1f0821626d5d162f0c4f58b", + "typeString": "literal_string \"ADD_ERROR\"" + }, + "value": "ADD_ERROR" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_db5ce4bdd57c365768e4ced49819a8b22d9737a9a1f0821626d5d162f0c4f58b", + "typeString": "literal_string \"ADD_ERROR\"" + } + ], + "id": 11572, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1178:7:41", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 11577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1178:28:41", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 11578, + "nodeType": "ExpressionStatement", + "src": "1178:28:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 11579, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11567, + "src": "1223:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11565, + "id": 11580, + "nodeType": "Return", + "src": "1216:8:41" + } + ] + }, + "documentation": null, + "id": 11582, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11559, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11582, + "src": "1087:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1087:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 11561, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11582, + "src": "1098:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1098:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1086:22:41" + }, + "returnParameters": { + "id": 11565, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11564, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11582, + "src": "1132:7:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1132:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1131:9:41" + }, + "scope": 11623, + "src": "1074:157:41", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11621, + "nodeType": "Block", + "src": "1296:139:41", + "statements": [ + { + "assignments": [ + 11590 + ], + "declarations": [ + { + "constant": false, + "id": 11590, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11621, + "src": "1306:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11589, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1306:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 11596, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11591, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11584, + "src": "1318:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 11592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1322:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "1318:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 11594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1326:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1318:9:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1306:21:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 11599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11597, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11587, + "src": "1337:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11598, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11584, + "src": "1341:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1337:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11600, + "nodeType": "ExpressionStatement", + "src": "1337:5:41" + }, + { + "body": { + "id": 11619, + "nodeType": "Block", + "src": "1366:63:41", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 11606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11604, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11587, + "src": "1380:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 11605, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1384:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1380:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11607, + "nodeType": "ExpressionStatement", + "src": "1380:5:41" + }, + { + "expression": { + "argumentTypes": null, + "id": 11617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 11608, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1399:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11609, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11584, + "src": "1404:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 11610, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1408:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1404:5:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 11612, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1412:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1404:9:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 11614, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1403:11:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 11615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1417:1:41", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "1403:15:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1399:19:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 11618, + "nodeType": "ExpressionStatement", + "src": "1399:19:41" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 11601, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11590, + "src": "1359:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 11602, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11587, + "src": "1363:1:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1359:5:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11620, + "nodeType": "WhileStatement", + "src": "1352:77:41" + } + ] + }, + "documentation": null, + "id": 11622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 11585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11584, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11622, + "src": "1251:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1251:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1250:11:41" + }, + "returnParameters": { + "id": 11588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11587, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 11622, + "src": "1285:9:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11586, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1285:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1284:11:41" + }, + "scope": 11623, + "src": "1237:198:41", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 11624, + "src": "258:1179:41" + } + ], + "src": "78:1360:41" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.623Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "SafeMath" + }, + "userdoc": { + "methods": {}, + "notice": "Math operations with safety checks that revert on error" + } +} \ No newline at end of file diff --git a/build-v1/contracts/Settlement.json b/build-v1/contracts/Settlement.json new file mode 100644 index 0000000..0e81aa8 --- /dev/null +++ b/build-v1/contracts/Settlement.json @@ -0,0 +1,15774 @@ +{ + "contractName": "Settlement", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "baseTokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "quoteTokenAmount", + "type": "uint256" + } + ], + "name": "ClaimAssets", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isBaseToken", + "type": "bool" + } + ], + "name": "Donate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BUYING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "_CLAIMED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_CLOSED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_BASE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_GAS_PRICE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_K_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_LP_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MAINTAINER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MT_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_ORACLE_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_R_STATUS_", + "outputs": [ + { + "internalType": "enum Types.RStatus", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SELLING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SUPERVISOR_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TRADE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getBaseCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getQuoteCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalBaseCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalQuoteCapital", + "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": "version", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "donateBaseToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "donateQuoteToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "finalSettlement", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimAssets", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "retrieve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseTokenAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quoteTokenAmount\",\"type\":\"uint256\"}],\"name\":\"ClaimAssets\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBaseToken\",\"type\":\"bool\"}],\"name\":\"Donate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_RECEIVE_QUOTE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BUYING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_CLAIMED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_CLOSED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_BASE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_QUOTE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_GAS_PRICE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_K_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_LP_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MAINTAINER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MT_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_ORACLE_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_RECEIVE_BASE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_R_STATUS_\",\"outputs\":[{\"internalType\":\"enum Types.RStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SELLING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SUPERVISOR_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_BASE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_QUOTE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TRADE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"donateBaseToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"donateQuoteToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalSettlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getBaseCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOraclePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getQuoteCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalBaseCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalQuoteCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"retrieve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"Settlement\"},\"userdoc\":{\"methods\":{},\"notice\":\"Functions for assets settlement\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Settlement.sol\":\"Settlement\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Settlement.sol\":{\"keccak256\":\"0x8167f472615dc95cf743254785eeef730a0a3b753f05f5b64391fbb9992c8ab6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3e2a25e398638f4bbecf434cf9b8b608c34a1271c051ee7e411b6c2c32702439\",\"dweb:/ipfs/QmUQmysLQ1k8uBWGzsTdmGCqyWQhZ4xtzPWAfsALGWYLPh\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol\":{\"keccak256\":\"0xbf15f2a72d59bbf0ed32b2a24fc4a68d45ffaa60dd2b2c1cc555d03ec1cd2f0a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7289884a2a8939295c4f61aeb7754bd3ce49e9d09188a1eddb762342589f36be\",\"dweb:/ipfs/QmaHYH51wieAyxBDASyHyfYSeu6UJNV7adD3AceeZXCgcZ\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol\":{\"keccak256\":\"0x2183977c7a3cf5aa8d2f56d2167bf59515e34a8e4ebd2402efa85b612631955f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://61766578f8d1bef7f51912a5327e8d4e95e3d9adb509e9486b4e2c8cf179f5e6\",\"dweb:/ipfs/QmXJRK4JKMrJkdn7BFVueoNRixsu26shnX3Dxeb5T9JKK4\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol\":{\"keccak256\":\"0xed4a31155c30a764366aba2244e42406269e59618088f93c02f1b4c9fec9e53c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bd3d50110c9120d942f7713e1cfced848ba7721ea336b2d9c4a87a6eb2a82ca9\",\"dweb:/ipfs/QmTYFeDcAyA2JpfoL1LsGLgj4TeRJxNV1rM27vdcaZSwpF\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":{\"keccak256\":\"0x9a093cbac4e37ed4ee5e27495dae08754bbfec81f7c0ceb57a5a7ac4f362208f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ddd9e5de1c555f0d1232e148fe18574e6adaa348e792844d9011bbd39bf908f\",\"dweb:/ipfs/QmSgZNwPNqCrQC4kJNdwH3iQNasbTfw2cbTtAtNVcpqnYc\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol\":{\"keccak256\":\"0xf462d86a85221f424c5a40f3c0d4a699c72a61b31ed07091ffb0e0b28b3cd137\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3d92b79f4527b3d7812395c41e5d0786309a121b99af3bff5cd7663f7255d335\",\"dweb:/ipfs/QmYkQANWtKsJNHKeD6PrtUFeC3D6uWAxhXjB97eBHwqtzK\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol\":{\"keccak256\":\"0xc9c3fc946350fd72083a9d5b1327ff923533ef37b054bc7b6007562b20b0faaf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fc140417457139fb240427629673bfaf970c5d4568ad1cfe582764c6e4855bbb\",\"dweb:/ipfs/Qmd7ESYe5kyM6NYiSzeFE74f1YGGPXzpdVd5qnYg2AvgH8\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol\":{\"keccak256\":\"0x0aebcc897b4de833e87e46a11e5a70d2b6e1d2fd99ebdf9e32e6421924f18b15\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a1098dace4f0664b0e3f5c3b6ce535ad2aba52e68fb6d1ea94b09debc06ed33c\",\"dweb:/ipfs/QmRbiq7M3Y8utAXaPWmVooGmoYF27N5dKVn6QYTaDFwqdP\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506117a8806100206000396000f3fe608060405234801561001057600080fd5b506004361061025e5760003560e01c80637c9b8e8911610146578063c3a2a665116100c3578063dd58b41c11610087578063dd58b41c146103ee578063eab5d20e146103f6578063ec2fd46d146103fe578063ed0aa42814610406578063f2fde38b14610419578063f67ed4481461042c5761025e565b8063c3a2a665146103bb578063c5bbffe8146103ce578063c6b73cf9146103d6578063d4b97046146103de578063d689107c146103e65761025e565b8063a598aca71161010a578063a598aca714610393578063ab44a7a31461039b578063ac1fbc98146103a3578063b2094fd3146103ab578063c0ffa178146103b35761025e565b80637c9b8e891461036b5780638456db15146103735780638ff5e7421461037b5780639b020fba14610383578063a3161a561461038b5761025e565b80634322ec83116101df578063648a4fac116101a3578063648a4fac1461031857806368be20ad146103205780636ec6a58d1461034057806373a2ab7c14610348578063796da7af146103505780637aed942d146103585761025e565b80634322ec83146102f05780634a248d2a146102f85780634de4527e146103005780634e71e0c81461030857806354fd4d50146103105761025e565b80631f3c156e116102265780631f3c156e146102bb578063245c9685146102c55780632aa82c65146102cd578063387b0c11146102d55780633960f142146102e85761025e565b80630cd1667d146102635780630e6518e91461028157806316048bc4146102895780631769ddaa1461029e57806317be952e146102a6575b600080fd5b61026b61043f565b604051610278919061174b565b60405180910390f35b61026b6104c1565b6102916104c7565b60405161027891906113e4565b61026b6104d6565b6102ae6104dc565b6040516102789190611440565b6102c36104e5565b005b61026b6107b1565b61026b6107b7565b6102c36102e336600461137b565b6107fc565b61029161085c565b61029161086b565b61029161087a565b61026b610889565b6102c361088f565b61026b61091d565b6102c3610922565b61033361032e366004611316565b610a3c565b6040516102789190611435565b610333610a51565b610291610a61565b61026b610a70565b61026b610366366004611316565b610ab5565b61026b610b3c565b610291610b42565b610333610b51565b61026b610b5f565b610333610b65565b610333610b6e565b61026b610b7e565b610291610b84565b61026b610b93565b61026b610b99565b6102c36103c9366004611331565b610b9f565b610333610d75565b61026b610d85565b610291610d8b565b610291610d9a565b610333610da9565b61026b610db9565b61026b610dbf565b6102c361041436600461137b565b610dc5565b6102c3610427366004611316565b610e15565b61026b61043a366004611316565b610ec0565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561048457600080fd5b505afa158015610498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bc9190611393565b905090565b60165481565b6000546001600160a01b031681565b60055481565b600e5460ff1681565b600154600160a01b900460ff16156105185760405162461bcd60e51b815260040161050f906114b2565b60405180910390fd5b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff166105535760405162461bcd60e51b815260040161050f90611722565b3360009081526017602052604090205460ff16156105835760405162461bcd60e51b815260040161050f906116f9565b336000818152601760205260408120805460ff19166001179055906105a790610ec0565b905060006105b433610ab5565b9050600082156105eb576105e86105c96107b7565b6010546105dc908663ffffffff610ef116565b9063ffffffff610f3216565b90505b60008215610614576106116105fe61043f565b600f546105dc908663ffffffff610ef116565b90505b601054610627908363ffffffff610f6416565b601055600f5461063d908263ffffffff610f6416565b600f8190555061065f61065284601554610f8c565b839063ffffffff610fae16565b915061067d61067085601654610f8c565b829063ffffffff610fae16565b90506106893382610fd3565b610693338361100a565b601354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906106c590339087906004016113f8565b600060405180830381600087803b1580156106df57600080fd5b505af11580156106f3573d6000803e3d6000fd5b5050601454604051632770a7eb60e21b81526001600160a01b039091169250639dc29fac915061072990339088906004016113f8565b600060405180830381600087803b15801561074357600080fd5b505af1158015610757573d6000803e3d6000fd5b50505050336001600160a01b03167fbe5f7fe66d16c6a87bb5b8b08a96634fe4f1c2bac9e5e413efe41a782d4d0c438284604051610796929190611764565b60405180910390a2505050506001805460ff60a01b19169055565b60105481565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561048457600080fd5b600154600160a01b900460ff16156108265760405162461bcd60e51b815260040161050f906114b2565b6001805460ff60a01b1916600160a01b1790556108433382611041565b61084c816110a6565b506001805460ff60a01b19169055565b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b031633146108b95760405162461bcd60e51b815260040161050f9061148b565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b6000546001600160a01b0316331461094c5760405162461bcd60e51b815260040161050f90611646565b600154600160b01b900460ff16156109765760405162461bcd60e51b815260040161050f90611621565b6001805462ffffff60b81b1960ff60b01b19909116600160b01b17169055600061099e61043f565b905060006109aa6107b7565b905060105460125411156109e65760006109d1601054601254610f6490919063ffffffff16565b90506109dd81846110fa565b601555506109ed565b6012546010555b600f546011541115610a27576000610a12600f54601154610f6490919063ffffffff16565b9050610a1e81836110fa565b60165550610a2e565b601154600f555b5050600e805460ff19169055565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561048457600080fd5b6013546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610ae69085906004016113e4565b60206040518083038186803b158015610afe57600080fd5b505afa158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190611393565b92915050565b60125481565b6001546001600160a01b031681565b600354610100900460ff1681565b60045481565b60035460ff1681565b600154600160c01b900460ff1681565b600b5481565b6014546001600160a01b031681565b600f5481565b600c5481565b6000546001600160a01b03163314610bc95760405162461bcd60e51b815260040161050f90611646565b6008546001600160a01b0383811691161415610c9057601154610bf2908263ffffffff610fae16565b6008546040516370a0823160e01b81526001600160a01b03909116906370a0823190610c229030906004016113e4565b60206040518083038186803b158015610c3a57600080fd5b505afa158015610c4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c729190611393565b1015610c905760405162461bcd60e51b815260040161050f906115c3565b6009546001600160a01b0383811691161415610d5757601254610cb9908263ffffffff610fae16565b6009546040516370a0823160e01b81526001600160a01b03909116906370a0823190610ce99030906004016113e4565b60206040518083038186803b158015610d0157600080fd5b505afa158015610d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d399190611393565b1015610d575760405162461bcd60e51b815260040161050f90611454565b610d716001600160a01b038316338363ffffffff61111816565b5050565b600154600160b81b900460ff1681565b60155481565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b60115481565b600d5481565b600154600160a01b900460ff1615610def5760405162461bcd60e51b815260040161050f906114b2565b6001805460ff60a01b1916600160a01b179055610e0c3382611173565b61084c816111d8565b6000546001600160a01b03163314610e3f5760405162461bcd60e51b815260040161050f90611646565b6001600160a01b038116610e655760405162461bcd60e51b815260040161050f906115fa565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610ae69085906004016113e4565b600082610f0057506000610b36565b82820282848281610f0d57fe5b0414610f2b5760405162461bcd60e51b815260040161050f906116d6565b9392505050565b6000808211610f535760405162461bcd60e51b815260040161050f90611541565b818381610f5c57fe5b049392505050565b600082821115610f865760405162461bcd60e51b815260040161050f906115a0565b50900390565b6000670de0b6b3a7640000610fa7848463ffffffff610ef116565b81610f5c57fe5b600082820183811015610f2b5760405162461bcd60e51b815260040161050f90611669565b600854610ff0906001600160a01b0316838363ffffffff61111816565b601154611003908263ffffffff610f6416565b6011555050565b600954611027906001600160a01b0316838363ffffffff61111816565b60125461103a908263ffffffff610f6416565b6012555050565b600554601254611057908363ffffffff610fae16565b11156110755760405162461bcd60e51b815260040161050f906114d5565b600954611093906001600160a01b031683308463ffffffff61122116565b60125461103a908263ffffffff610fae16565b6010546110b9908263ffffffff610fae16565b6010556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e906110ef908390600090611754565b60405180910390a150565b6000610f2b826105dc85670de0b6b3a764000063ffffffff610ef116565b61116e8363a9059cbb60e01b84846040516024016111379291906113f8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611248565b505050565b600454601154611189908363ffffffff610fae16565b11156111a75760405162461bcd60e51b815260040161050f90611569565b6008546111c5906001600160a01b031683308463ffffffff61122116565b601154611003908263ffffffff610fae16565b600f546111eb908263ffffffff610fae16565b600f556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e906110ef908390600190611754565b611242846323b872dd60e01b85858560405160240161113793929190611411565b50505050565b60006060836001600160a01b03168360405161126491906113ab565b6000604051808303816000865af19150503d80600081146112a1576040519150601f19603f3d011682016040523d82523d6000602084013e6112a6565b606091505b5091509150816112c85760405162461bcd60e51b815260040161050f9061150c565b80511561124257808060200190518101906112e3919061135b565b6112425760405162461bcd60e51b815260040161050f9061168c565b80356001600160a01b0381168114610b3657600080fd5b600060208284031215611327578081fd5b610f2b83836112ff565b60008060408385031215611343578081fd5b61134d84846112ff565b946020939093013593505050565b60006020828403121561136c578081fd5b81518015158114610f2b578182fd5b60006020828403121561138c578081fd5b5035919050565b6000602082840312156113a4578081fd5b5051919050565b60008251815b818110156113cb57602081860181015185830152016113b1565b818111156113d95782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b602081016003831061144e57fe5b91905290565b6020808252601d908201527f444f444f5f51554f54455f42414c414e43455f4e4f545f454e4f554748000000604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526009908201526814915153951490539560ba1b604082015260600190565b6020808252601c908201527f51554f54455f42414c414e43455f4c494d49545f455843454544454400000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b6020808252601b908201527f424153455f42414c414e43455f4c494d49545f45584345454445440000000000604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252601c908201527f444f444f5f424153455f42414c414e43455f4e4f545f454e4f55474800000000604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600b908201526a1113d113d7d0d313d4d15160aa1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b6020808252600f908201526e1053149150511657d0d31052535151608a1b604082015260600190565b6020808252600f908201526e1113d113d7d393d517d0d313d4d151608a1b604082015260600190565b90815260200190565b9182521515602082015260400190565b91825260208201526040019056fea2646970667358221220cfea613c5e0f5d3e3df8fc569e9c30dd6e0f3e8a4581f0064c3c6f4a868b6cf964736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061025e5760003560e01c80637c9b8e8911610146578063c3a2a665116100c3578063dd58b41c11610087578063dd58b41c146103ee578063eab5d20e146103f6578063ec2fd46d146103fe578063ed0aa42814610406578063f2fde38b14610419578063f67ed4481461042c5761025e565b8063c3a2a665146103bb578063c5bbffe8146103ce578063c6b73cf9146103d6578063d4b97046146103de578063d689107c146103e65761025e565b8063a598aca71161010a578063a598aca714610393578063ab44a7a31461039b578063ac1fbc98146103a3578063b2094fd3146103ab578063c0ffa178146103b35761025e565b80637c9b8e891461036b5780638456db15146103735780638ff5e7421461037b5780639b020fba14610383578063a3161a561461038b5761025e565b80634322ec83116101df578063648a4fac116101a3578063648a4fac1461031857806368be20ad146103205780636ec6a58d1461034057806373a2ab7c14610348578063796da7af146103505780637aed942d146103585761025e565b80634322ec83146102f05780634a248d2a146102f85780634de4527e146103005780634e71e0c81461030857806354fd4d50146103105761025e565b80631f3c156e116102265780631f3c156e146102bb578063245c9685146102c55780632aa82c65146102cd578063387b0c11146102d55780633960f142146102e85761025e565b80630cd1667d146102635780630e6518e91461028157806316048bc4146102895780631769ddaa1461029e57806317be952e146102a6575b600080fd5b61026b61043f565b604051610278919061174b565b60405180910390f35b61026b6104c1565b6102916104c7565b60405161027891906113e4565b61026b6104d6565b6102ae6104dc565b6040516102789190611440565b6102c36104e5565b005b61026b6107b1565b61026b6107b7565b6102c36102e336600461137b565b6107fc565b61029161085c565b61029161086b565b61029161087a565b61026b610889565b6102c361088f565b61026b61091d565b6102c3610922565b61033361032e366004611316565b610a3c565b6040516102789190611435565b610333610a51565b610291610a61565b61026b610a70565b61026b610366366004611316565b610ab5565b61026b610b3c565b610291610b42565b610333610b51565b61026b610b5f565b610333610b65565b610333610b6e565b61026b610b7e565b610291610b84565b61026b610b93565b61026b610b99565b6102c36103c9366004611331565b610b9f565b610333610d75565b61026b610d85565b610291610d8b565b610291610d9a565b610333610da9565b61026b610db9565b61026b610dbf565b6102c361041436600461137b565b610dc5565b6102c3610427366004611316565b610e15565b61026b61043a366004611316565b610ec0565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561048457600080fd5b505afa158015610498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bc9190611393565b905090565b60165481565b6000546001600160a01b031681565b60055481565b600e5460ff1681565b600154600160a01b900460ff16156105185760405162461bcd60e51b815260040161050f906114b2565b60405180910390fd5b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff166105535760405162461bcd60e51b815260040161050f90611722565b3360009081526017602052604090205460ff16156105835760405162461bcd60e51b815260040161050f906116f9565b336000818152601760205260408120805460ff19166001179055906105a790610ec0565b905060006105b433610ab5565b9050600082156105eb576105e86105c96107b7565b6010546105dc908663ffffffff610ef116565b9063ffffffff610f3216565b90505b60008215610614576106116105fe61043f565b600f546105dc908663ffffffff610ef116565b90505b601054610627908363ffffffff610f6416565b601055600f5461063d908263ffffffff610f6416565b600f8190555061065f61065284601554610f8c565b839063ffffffff610fae16565b915061067d61067085601654610f8c565b829063ffffffff610fae16565b90506106893382610fd3565b610693338361100a565b601354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac906106c590339087906004016113f8565b600060405180830381600087803b1580156106df57600080fd5b505af11580156106f3573d6000803e3d6000fd5b5050601454604051632770a7eb60e21b81526001600160a01b039091169250639dc29fac915061072990339088906004016113f8565b600060405180830381600087803b15801561074357600080fd5b505af1158015610757573d6000803e3d6000fd5b50505050336001600160a01b03167fbe5f7fe66d16c6a87bb5b8b08a96634fe4f1c2bac9e5e413efe41a782d4d0c438284604051610796929190611764565b60405180910390a2505050506001805460ff60a01b19169055565b60105481565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561048457600080fd5b600154600160a01b900460ff16156108265760405162461bcd60e51b815260040161050f906114b2565b6001805460ff60a01b1916600160a01b1790556108433382611041565b61084c816110a6565b506001805460ff60a01b19169055565b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b031633146108b95760405162461bcd60e51b815260040161050f9061148b565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b6000546001600160a01b0316331461094c5760405162461bcd60e51b815260040161050f90611646565b600154600160b01b900460ff16156109765760405162461bcd60e51b815260040161050f90611621565b6001805462ffffff60b81b1960ff60b01b19909116600160b01b17169055600061099e61043f565b905060006109aa6107b7565b905060105460125411156109e65760006109d1601054601254610f6490919063ffffffff16565b90506109dd81846110fa565b601555506109ed565b6012546010555b600f546011541115610a27576000610a12600f54601154610f6490919063ffffffff16565b9050610a1e81836110fa565b60165550610a2e565b601154600f555b5050600e805460ff19169055565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561048457600080fd5b6013546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610ae69085906004016113e4565b60206040518083038186803b158015610afe57600080fd5b505afa158015610b12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b369190611393565b92915050565b60125481565b6001546001600160a01b031681565b600354610100900460ff1681565b60045481565b60035460ff1681565b600154600160c01b900460ff1681565b600b5481565b6014546001600160a01b031681565b600f5481565b600c5481565b6000546001600160a01b03163314610bc95760405162461bcd60e51b815260040161050f90611646565b6008546001600160a01b0383811691161415610c9057601154610bf2908263ffffffff610fae16565b6008546040516370a0823160e01b81526001600160a01b03909116906370a0823190610c229030906004016113e4565b60206040518083038186803b158015610c3a57600080fd5b505afa158015610c4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c729190611393565b1015610c905760405162461bcd60e51b815260040161050f906115c3565b6009546001600160a01b0383811691161415610d5757601254610cb9908263ffffffff610fae16565b6009546040516370a0823160e01b81526001600160a01b03909116906370a0823190610ce99030906004016113e4565b60206040518083038186803b158015610d0157600080fd5b505afa158015610d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d399190611393565b1015610d575760405162461bcd60e51b815260040161050f90611454565b610d716001600160a01b038316338363ffffffff61111816565b5050565b600154600160b81b900460ff1681565b60155481565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b60115481565b600d5481565b600154600160a01b900460ff1615610def5760405162461bcd60e51b815260040161050f906114b2565b6001805460ff60a01b1916600160a01b179055610e0c3382611173565b61084c816111d8565b6000546001600160a01b03163314610e3f5760405162461bcd60e51b815260040161050f90611646565b6001600160a01b038116610e655760405162461bcd60e51b815260040161050f906115fa565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610ae69085906004016113e4565b600082610f0057506000610b36565b82820282848281610f0d57fe5b0414610f2b5760405162461bcd60e51b815260040161050f906116d6565b9392505050565b6000808211610f535760405162461bcd60e51b815260040161050f90611541565b818381610f5c57fe5b049392505050565b600082821115610f865760405162461bcd60e51b815260040161050f906115a0565b50900390565b6000670de0b6b3a7640000610fa7848463ffffffff610ef116565b81610f5c57fe5b600082820183811015610f2b5760405162461bcd60e51b815260040161050f90611669565b600854610ff0906001600160a01b0316838363ffffffff61111816565b601154611003908263ffffffff610f6416565b6011555050565b600954611027906001600160a01b0316838363ffffffff61111816565b60125461103a908263ffffffff610f6416565b6012555050565b600554601254611057908363ffffffff610fae16565b11156110755760405162461bcd60e51b815260040161050f906114d5565b600954611093906001600160a01b031683308463ffffffff61122116565b60125461103a908263ffffffff610fae16565b6010546110b9908263ffffffff610fae16565b6010556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e906110ef908390600090611754565b60405180910390a150565b6000610f2b826105dc85670de0b6b3a764000063ffffffff610ef116565b61116e8363a9059cbb60e01b84846040516024016111379291906113f8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611248565b505050565b600454601154611189908363ffffffff610fae16565b11156111a75760405162461bcd60e51b815260040161050f90611569565b6008546111c5906001600160a01b031683308463ffffffff61122116565b601154611003908263ffffffff610fae16565b600f546111eb908263ffffffff610fae16565b600f556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e906110ef908390600190611754565b611242846323b872dd60e01b85858560405160240161113793929190611411565b50505050565b60006060836001600160a01b03168360405161126491906113ab565b6000604051808303816000865af19150503d80600081146112a1576040519150601f19603f3d011682016040523d82523d6000602084013e6112a6565b606091505b5091509150816112c85760405162461bcd60e51b815260040161050f9061150c565b80511561124257808060200190518101906112e3919061135b565b6112425760405162461bcd60e51b815260040161050f9061168c565b80356001600160a01b0381168114610b3657600080fd5b600060208284031215611327578081fd5b610f2b83836112ff565b60008060408385031215611343578081fd5b61134d84846112ff565b946020939093013593505050565b60006020828403121561136c578081fd5b81518015158114610f2b578182fd5b60006020828403121561138c578081fd5b5035919050565b6000602082840312156113a4578081fd5b5051919050565b60008251815b818110156113cb57602081860181015185830152016113b1565b818111156113d95782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b602081016003831061144e57fe5b91905290565b6020808252601d908201527f444f444f5f51554f54455f42414c414e43455f4e4f545f454e4f554748000000604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526009908201526814915153951490539560ba1b604082015260600190565b6020808252601c908201527f51554f54455f42414c414e43455f4c494d49545f455843454544454400000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b6020808252601b908201527f424153455f42414c414e43455f4c494d49545f45584345454445440000000000604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252601c908201527f444f444f5f424153455f42414c414e43455f4e4f545f454e4f55474800000000604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600b908201526a1113d113d7d0d313d4d15160aa1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b6020808252600f908201526e1053149150511657d0d31052535151608a1b604082015260600190565b6020808252600f908201526e1113d113d7d393d517d0d313d4d151608a1b604082015260600190565b90815260200190565b9182521515602082015260400190565b91825260208201526040019056fea2646970667358221220cfea613c5e0f5d3e3df8fc569e9c30dd6e0f3e8a4581f0064c3c6f4a868b6cf964736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "560:5347:26:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "560:5347:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2949:133:27;;;:::i;:::-;;;;;;;;;;;;;;;;2006:43;;;:::i;264:22:37:-;;;:::i;:::-;;;;;;;;1112:36:27;;;:::i;1604:31::-;;;:::i;:::-;;;;;;;;3873:1392:26;;;:::i;:::-;;1688:42:27;;;:::i;3243:135::-;;;:::i;2545:161:26:-;;;;;;;;;:::i;1202:27:27:-;;;:::i;1271:::-;;;:::i;1352:::-;;;:::i;912:32::-;;;:::i;963:225:37:-;;;:::i;3433:87:27:-;;;:::i;2808:1006:26:-;;;:::i;2055:41:27:-;;;;;;;;;:::i;:::-;;;;;;;;772:20;;;:::i;1419:23::-;;;:::i;2682:108::-;;;:::i;2796:147::-;;;;;;;;;:::i;1771:30::-;;;:::i;292:26:37:-;;;:::i;1036:29:27:-;;;:::i;1071:35::-;;;:::i;1002:28::-;;;:::i;839:34::-;;;:::i;1511:28::-;;;:::i;1849:36::-;;;:::i;1641:41::-;;;:::i;1545:28::-;;;:::i;5324:581:26:-;;;;;;;;;:::i;798:35:27:-;;;:::i;1957:43::-;;;:::i;1385:28::-;;;:::i;1808:35::-;;;:::i;879:27::-;;;:::i;1736:29::-;;;:::i;1579:18::-;;;:::i;2381:158:26:-;;;;;;;;;:::i;737:220:37:-;;;;;;;;;:::i;3088:149:27:-;;;;;;;;;:::i;2949:133::-;3040:20;;3027:48;;;-1:-1:-1;;;3027:48:27;;;;3001:7;;-1:-1:-1;;;;;3040:20:27;;3027:46;;:48;;;;;;;;;;;;;;3040:20;3027:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:55;;2949:133;:::o;2006:43::-;;;;:::o;264:22:37:-;;;-1:-1:-1;;;;;264:22:37;;:::o;1112:36:27:-;;;;:::o;1604:31::-;;;;;;:::o;3873:1392:26:-;515:9:39;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;3940:8:26;::::1;548:16:39::0;3940:8:26::1;3932:36;;;;-1:-1:-1::0;;;3932:36:26::1;;;;;;;;;3997:10;3987:21;::::0;;;:9:::1;:21;::::0;;;;;::::1;;3986:22;3978:50;;;;-1:-1:-1::0;;;3978:50:26::1;;;;;;;;;4048:10;4038:21;::::0;;;:9:::1;:21;::::0;;;;:28;;-1:-1:-1;;4038:28:26::1;4062:4;4038:28;::::0;;:21;4100:36:::1;::::0;:24:::1;:36::i;:::-;4077:59;;4146:19;4168:35;4192:10;4168:23;:35::i;:::-;4146:57:::0;-1:-1:-1;4214:19:26::1;4251:16:::0;;4247:134:::1;;4297:73;4347:22;:20;:22::i;:::-;4297:27;::::0;:45:::1;::::0;4329:12;4297:45:::1;:31;:45;:::i;:::-;:49:::0;:73:::1;:49;:73;:::i;:::-;4283:87;;4247:134;4390:18;4426:15:::0;;4422:129:::1;;4470:70;4518:21;:19;:21::i;:::-;4470:26;::::0;:43:::1;::::0;4501:11;4470:43:::1;:30;:43;:::i;:70::-;4457:83;;4422:129;4591:27;::::0;:44:::1;::::0;4623:11;4591:44:::1;:31;:44;:::i;:::-;4561:27;:74:::0;4674:26:::1;::::0;:42:::1;::::0;4705:10;4674:42:::1;:30;:42;:::i;:::-;4645:26;:71;;;;4741:75;4757:58;4773:11;4786:28;;4757:15;:58::i;:::-;4741:11:::0;;:75:::1;:15;:75;:::i;:::-;4727:89;;4839:75;4854:59;4870:12;4884:28;;4854:15;:59::i;:::-;4839:10:::0;;:75:::1;:14;:75;:::i;:::-;4826:88;;4925:45;4947:10;4959;4925:21;:45::i;:::-;4980:47;5003:10;5015:11;4980:22;:47::i;:::-;5051:20;::::0;5038:64:::1;::::0;-1:-1:-1;;;5038:64:26;;-1:-1:-1;;;;;5051:20:26;;::::1;::::0;5038:39:::1;::::0;:64:::1;::::0;5078:10:::1;::::0;5090:11;;5038:64:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5125:21:26::1;::::0;5112:66:::1;::::0;-1:-1:-1;;;5112:66:26;;-1:-1:-1;;;;;5125:21:26;;::::1;::::0;-1:-1:-1;5112:40:26::1;::::0;-1:-1:-1;5112:66:26::1;::::0;5153:10:::1;::::0;5165:12;;5112:66:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5206:10;-1:-1:-1::0;;;;;5194:48:26::1;;5218:10;5230:11;5194:48;;;;;;;;;;;;;;;;5252:7;;;;585:9:39::0;:17;;-1:-1:-1;;;;585:17:39;;;3873:1392:26:o;1688:42:27:-;;;;:::o;3243:135::-;3335:21;;3322:49;;;-1:-1:-1;;;3322:49:27;;;;3296:7;;-1:-1:-1;;;;;3335:21:27;;3322:47;;:49;;;;;;;;;;;;;;3335:21;3322:49;;;;;;;;;;2545:161:26;515:9:39;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;2623:41:26::1;2645:10;2657:6:::0;2623:21:::1;:41::i;:::-;2674:25;2692:6;2674:17;:25::i;:::-;-1:-1:-1::0;585:9:39;:17;;-1:-1:-1;;;;585:17:39;;;2545:161:26:o;1202:27:27:-;;;-1:-1:-1;;;;;1202:27:27;;:::o;1271:::-;;;-1:-1:-1;;;;;1271:27:27;;:::o;1352:::-;;;-1:-1:-1;;;;;1352:27:27;;:::o;912:32::-;;;;:::o;963:225:37:-;1030:11;;-1:-1:-1;;;;;1030:11:37;1016:10;:25;1008:51;;;;-1:-1:-1;;;1008:51:37;;;;;;;;;1104:11;;;1095:7;;1074:42;;-1:-1:-1;;;;;1104:11:37;;;;1095:7;;;;1074:42;;;1136:11;;;;1126:21;;-1:-1:-1;;;;;;1126:21:37;;;-1:-1:-1;;;;;1136:11:37;;1126:21;;;;1157:24;;;963:225::o;3433:87:27:-;3501:3;3433:87;:::o;2808:1006:26:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;2885:4:26::2;2874:15:::0;;-1:-1:-1;;;;;;;;2874:15:26;;::::2;-1:-1:-1::0;;;2874:15:26::2;2980:23:::0;;;2874:15;3040:21:::2;:19;:21::i;:::-;3013:48;;3071:25;3099:22;:20;:22::i;:::-;3071:50;;3154:27;;3136:15;;:45;3132:316;;;3197:18;3218:48;3238:27;;3218:15;;:19;;:48;;;;:::i;:::-;3197:69;;3311:50;3332:10;3344:16;3311:20;:50::i;:::-;3280:28;:81:::0;-1:-1:-1;3132:316:26::2;;;3422:15;::::0;3392:27:::2;:45:::0;3132:316:::2;3479:26;;3462:14;;:43;3458:309;;;3521:17;3541:46;3560:26;;3541:14;;:18;;:46;;;;:::i;:::-;3521:66;;3632:50;3653:9;3664:17;3632:20;:50::i;:::-;3601:28;:81:::0;-1:-1:-1;3458:309:26::2;;;3742:14;::::0;3713:26:::2;:43:::0;3458:309:::2;-1:-1:-1::0;;3777:10:26::2;:30:::0;;-1:-1:-1;;3777:30:26::2;::::0;;2808:1006::o;2055:41:27:-;;;;;;;;;;;;;;;:::o;772:20::-;;;-1:-1:-1;;;772:20:27;;;;;:::o;1419:23::-;;;-1:-1:-1;;;;;1419:23:27;;:::o;2682:108::-;2763:8;;2755:28;;;-1:-1:-1;;;2755:28:27;;;;2729:7;;-1:-1:-1;;;;;2763:8:27;;2755:26;;:28;;;;;;;;;;;;;;2763:8;2755:28;;;;;;;;;;2796:147;2901:20;;2888:48;;-1:-1:-1;;;2888:48:27;;2862:7;;-1:-1:-1;;;;;2901:20:27;;2888:44;;:48;;2933:2;;2888:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2881:55;2796:147;-1:-1:-1;;2796:147:27:o;1771:30::-;;;;:::o;292:26:37:-;;;-1:-1:-1;;;;;292:26:37;;:::o;1036:29:27:-;;;;;;;;;:::o;1071:35::-;;;;:::o;1002:28::-;;;;;;:::o;839:34::-;;;-1:-1:-1;;;839:34:27;;;;;:::o;1511:28::-;;;;:::o;1849:36::-;;;-1:-1:-1;;;;;1849:36:27;;:::o;1641:41::-;;;;:::o;1545:28::-;;;;:::o;5324:581:26:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;5415:12:26::1;::::0;-1:-1:-1;;;;;5406:21:26;;::::1;5415:12:::0;::::1;5406:21;5402:214;;;5517:14;::::0;:26:::1;::::0;5536:6;5517:26:::1;:18;:26;:::i;:::-;5475:12;::::0;5468:45:::1;::::0;-1:-1:-1;;;5468:45:26;;-1:-1:-1;;;;;5475:12:26;;::::1;::::0;5468:30:::1;::::0;:45:::1;::::0;5507:4:::1;::::0;5468:45:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:75;;5443:162;;;;-1:-1:-1::0;;;5443:162:26::1;;;;;;;;;5638:13;::::0;-1:-1:-1;;;;;5629:22:26;;::::1;5638:13:::0;::::1;5629:22;5625:218;;;5742:15;::::0;:27:::1;::::0;5762:6;5742:27:::1;:19;:27;:::i;:::-;5699:13;::::0;5692:46:::1;::::0;-1:-1:-1;;;5692:46:26;;-1:-1:-1;;;;;5699:13:26;;::::1;::::0;5692:31:::1;::::0;:46:::1;::::0;5732:4:::1;::::0;5692:46:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;;5667:165;;;;-1:-1:-1::0;;;5667:165:26::1;;;;;;;;;5852:46;-1:-1:-1::0;;;;;5852:26:26;::::1;5879:10;5891:6:::0;5852:46:::1;:26;:46;:::i;:::-;5324:581:::0;;:::o;798:35:27:-;;;-1:-1:-1;;;798:35:27;;;;;:::o;1957:43::-;;;;:::o;1385:28::-;;;-1:-1:-1;;;;;1385:28:27;;:::o;1808:35::-;;;-1:-1:-1;;;;;1808:35:27;;:::o;879:27::-;;;-1:-1:-1;;;879:27:27;;;;;:::o;1736:29::-;;;;:::o;1579:18::-;;;;:::o;2381:158:26:-;515:9:39;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;2458:40:26::1;2479:10;2491:6:::0;2458:20:::1;:40::i;:::-;2508:24;2525:6;2508:16;:24::i;737:220:37:-:0;648:7;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;-1:-1:-1;;;;;819:22:37;::::1;811:48;;;;-1:-1:-1::0;;;811:48:37::1;;;;;;;;;900:7;::::0;;874:44:::1;::::0;-1:-1:-1;;;;;874:44:37;;::::1;::::0;900:7;::::1;::::0;874:44:::1;::::0;::::1;928:11;:22:::0;;-1:-1:-1;;;;;;928:22:37::1;-1:-1:-1::0;;;;;928:22:37;;;::::1;::::0;;;::::1;::::0;;737:220::o;3088:149:27:-;3194:21;;3181:49;;-1:-1:-1;;;3181:49:27;;3155:7;;-1:-1:-1;;;;;3194:21:27;;3181:45;;:49;;3227:2;;3181:49;;;;281:217:41;339:7;362:6;358:45;;-1:-1:-1;391:1:41;384:8;;358:45;425:5;;;429:1;425;:5;:1;448:5;;;;;:10;440:32;;;;-1:-1:-1;;;440:32:41;;;;;;;;;490:1;281:217;-1:-1:-1;;;281:217:41:o;504:138::-;562:7;593:1;589;:5;581:32;;;;-1:-1:-1;;;581:32:41;;;;;;;;;634:1;630;:5;;;;;;;504:138;-1:-1:-1;;;504:138:41:o;934:134::-;992:7;1024:1;1019;:6;;1011:28;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;392:115:36:-;455:7;379:6;481:13;:6;492:1;481:13;:10;:13;:::i;:::-;:19;;;;1074:157:41;1132:7;1163:5;;;1186:6;;;;1178:28;;;;-1:-1:-1;;;1178:28:41;;;;;;;;1574:183:26;1659:12;;1652:45;;-1:-1:-1;;;;;1659:12:26;1686:2;1690:6;1652:45;:33;:45;:::i;:::-;1724:14;;:26;;1743:6;1724:26;:18;:26;:::i;:::-;1707:14;:43;-1:-1:-1;;1574:183:26:o;1763:187::-;1849:13;;1842:46;;-1:-1:-1;;;;;1849:13:26;1877:2;1881:6;1842:46;:34;:46;:::i;:::-;1916:15;;:27;;1936:6;1916:27;:19;:27;:::i;:::-;1898:15;:45;-1:-1:-1;;1763:187:26:o;1222:346::-;1354:21;;1323:15;;:27;;1343:6;1323:27;:19;:27;:::i;:::-;:52;;1302:127;;;;-1:-1:-1;;;1302:127:26;;;;;;;;;1446:13;;1439:67;;-1:-1:-1;;;;;1446:13:26;1478:4;1492;1499:6;1439:67;:38;:67;:::i;:::-;1534:15;;:27;;1554:6;1534:27;:19;:27;:::i;2201:174::-;2293:27;;:39;;2325:6;2293:39;:31;:39;:::i;:::-;2263:27;:69;2347:21;;;;;;2354:6;;2362:5;;2347:21;;;;;;;;;;2201:174;:::o;645:123:36:-;713:7;739:22;759:1;739:15;:6;379;739:15;:10;:15;:::i;804:205:40:-;916:86;936:5;966:23;;;991:2;995:5;943:58;;;;;;;;;;;;;;-1:-1:-1;;943:58:40;;;;;;;;;;;;;;-1:-1:-1;;;;;943:58:40;-1:-1:-1;;;;;;943:58:40;;;;;;;;;;916:19;:86::i;:::-;804:205;;;:::o;911:305:26:-;1028:20;;998:14;;:26;;1017:6;998:26;:18;:26;:::i;:::-;:50;;990:90;;;;-1:-1:-1;;;990:90:26;;;;;;;;;1097:12;;1090:66;;-1:-1:-1;;;;;1097:12:26;1128:4;1142;1149:6;1090:66;:37;:66;:::i;:::-;1183:14;;:26;;1202:6;1183:26;:18;:26;:::i;2025:170::-;2115:26;;:38;;2146:6;2115:38;:30;:38;:::i;:::-;2086:26;:67;2168:20;;;;;;2175:6;;2183:4;;2168:20;;1015:275:40;1153:130;1186:5;1228:27;;;1257:4;1263:2;1267:5;1205:68;;;;;;;;;;;1153:130;1015:275;;;;:::o;2335:1027::-;2984:12;2998:23;3033:5;-1:-1:-1;;;;;3025:19:40;3045:4;3025:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2983:67;;;;3068:7;3060:52;;;;-1:-1:-1;;;3060:52:40;;;;;;;;;3127:17;;:21;3123:233;;3279:10;3268:30;;;;;;;;;;;;;;3260:85;;;;-1:-1:-1;;;3260:85:40;;;;;;;;5:130:-1;72:20;;-1:-1;;;;;19627:54;;20737:35;;20727:2;;20786:1;;20776:12;555:241;;659:2;647:9;638:7;634:23;630:32;627:2;;;-1:-1;;665:12;627:2;727:53;772:7;748:22;727:53;;803:366;;;924:2;912:9;903:7;899:23;895:32;892:2;;;-1:-1;;930:12;892:2;992:53;1037:7;1013:22;992:53;;;982:63;1082:2;1121:22;;;;344:20;;-1:-1;;;886:283;1176:257;;1288:2;1276:9;1267:7;1263:23;1259:32;1256:2;;;-1:-1;;1294:12;1256:2;223:6;217:13;20883:5;19400:13;19393:21;20861:5;20858:32;20848:2;;-1:-1;;20894:12;1440:241;;1544:2;1532:9;1523:7;1519:23;1515:32;1512:2;;;-1:-1;;1550:12;1512:2;-1:-1;344:20;;1506:175;-1:-1;1506:175;1688:263;;1803:2;1791:9;1782:7;1778:23;1774:32;1771:2;;;-1:-1;;1809:12;1771:2;-1:-1;492:13;;1765:186;-1:-1;1765:186;8573:271;;2498:5;18870:12;-1:-1;20363:101;20377:6;20374:1;20371:13;20363:101;;;2642:4;20444:11;;;;;20438:18;20425:11;;;20418:39;20392:10;20363:101;;;20479:6;20476:1;20473:13;20470:2;;;-1:-1;20535:6;20530:3;20526:16;20519:27;20470:2;-1:-1;2673:16;;;;;8707:137;-1:-1;;8707:137;8851:222;-1:-1;;;;;19627:54;;;;2178:37;;8978:2;8963:18;;8949:124;9080:349;-1:-1;;;;;19627:54;;;;2037:58;;9415:2;9400:18;;8524:37;9243:2;9228:18;;9214:215;9436:444;-1:-1;;;;;19627:54;;;2178:37;;19627:54;;;;9783:2;9768:18;;2178:37;9866:2;9851:18;;8524:37;;;;9619:2;9604:18;;9590:290;10227:210;19400:13;;19393:21;2292:34;;10348:2;10333:18;;10319:118;10444:244;10582:2;10567:18;;20649:1;20639:12;;20629:2;;20655:9;20629:2;2783:61;;;10553:135;;10695:416;10895:2;10909:47;;;3081:2;10880:18;;;19168:19;3117:31;19208:14;;;3097:52;3168:12;;;10866:245;11118:416;11318:2;11332:47;;;3419:2;11303:18;;;19168:19;-1:-1;;;19208:14;;;3435:36;3490:12;;;11289:245;11541:416;11741:2;11755:47;;;3741:1;11726:18;;;19168:19;-1:-1;;;19208:14;;;3756:32;3807:12;;;11712:245;11964:416;12164:2;12178:47;;;4058:2;12149:18;;;19168:19;4094:30;19208:14;;;4074:51;4144:12;;;12135:245;12387:416;12587:2;12601:47;;;12572:18;;;19168:19;4431:34;19208:14;;;4411:55;4485:12;;;12558:245;12810:416;13010:2;13024:47;;;4736:2;12995:18;;;19168:19;-1:-1;;;19208:14;;;4752:37;4808:12;;;12981:245;13233:416;13433:2;13447:47;;;5059:2;13418:18;;;19168:19;5095:29;19208:14;;;5075:50;5144:12;;;13404:245;13656:416;13856:2;13870:47;;;5395:1;13841:18;;;19168:19;-1:-1;;;19208:14;;;5410:32;5461:12;;;13827:245;14079:416;14279:2;14293:47;;;5712:2;14264:18;;;19168:19;5748:30;19208:14;;;5728:51;5798:12;;;14250:245;14502:416;14702:2;14716:47;;;6049:2;14687:18;;;19168:19;-1:-1;;;19208:14;;;6065:36;6120:12;;;14673:245;14925:416;15125:2;15139:47;;;6371:2;15110:18;;;19168:19;-1:-1;;;19208:14;;;6387:34;6440:12;;;15096:245;15348:416;15548:2;15562:47;;;6691:1;15533:18;;;19168:19;-1:-1;;;19208:14;;;6706:32;6757:12;;;15519:245;15771:416;15971:2;15985:47;;;7008:1;15956:18;;;19168:19;-1:-1;;;19208:14;;;7023:32;7074:12;;;15942:245;16194:416;16394:2;16408:47;;;7325:2;16379:18;;;19168:19;7361:34;19208:14;;;7341:55;-1:-1;;;7416:12;;;7409:34;7462:12;;;16365:245;16617:416;16817:2;16831:47;;;7713:1;16802:18;;;19168:19;-1:-1;;;19208:14;;;7728:32;7779:12;;;16788:245;17040:416;17240:2;17254:47;;;8030:2;17225:18;;;19168:19;-1:-1;;;19208:14;;;8046:38;8103:12;;;17211:245;17463:416;17663:2;17677:47;;;8354:2;17648:18;;;19168:19;-1:-1;;;19208:14;;;8370:38;8427:12;;;17634:245;17886:222;8524:37;;;18013:2;17998:18;;17984:124;18115:321;8524:37;;;19400:13;19393:21;18422:2;18407:18;;2292:34;18264:2;18249:18;;18235:201;18443:333;8524:37;;;18762:2;18747:18;;8524:37;18598:2;18583:18;;18569:207", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {SafeMath} from \"../lib/SafeMath.sol\";\nimport {SafeERC20} from \"../lib/SafeERC20.sol\";\nimport {DecimalMath} from \"../lib/DecimalMath.sol\";\nimport {Types} from \"../lib/Types.sol\";\nimport {IDODOLpToken} from \"../intf/IDODOLpToken.sol\";\nimport {IERC20} from \"../intf/IERC20.sol\";\nimport {Storage} from \"./Storage.sol\";\n\n\n/**\n * @title Settlement\n * @author DODO Breeder\n *\n * @notice Functions for assets settlement\n */\ncontract Settlement is Storage {\n using SafeMath for uint256;\n using SafeERC20 for IERC20;\n\n // ============ Events ============\n\n event Donate(uint256 amount, bool isBaseToken);\n\n event ClaimAssets(address indexed user, uint256 baseTokenAmount, uint256 quoteTokenAmount);\n\n // ============ Assets IN/OUT Functions ============\n\n function _baseTokenTransferIn(address from, uint256 amount) internal {\n require(_BASE_BALANCE_.add(amount) <= _BASE_BALANCE_LIMIT_, \"BASE_BALANCE_LIMIT_EXCEEDED\");\n IERC20(_BASE_TOKEN_).safeTransferFrom(from, address(this), amount);\n _BASE_BALANCE_ = _BASE_BALANCE_.add(amount);\n }\n\n function _quoteTokenTransferIn(address from, uint256 amount) internal {\n require(\n _QUOTE_BALANCE_.add(amount) <= _QUOTE_BALANCE_LIMIT_,\n \"QUOTE_BALANCE_LIMIT_EXCEEDED\"\n );\n IERC20(_QUOTE_TOKEN_).safeTransferFrom(from, address(this), amount);\n _QUOTE_BALANCE_ = _QUOTE_BALANCE_.add(amount);\n }\n\n function _baseTokenTransferOut(address to, uint256 amount) internal {\n IERC20(_BASE_TOKEN_).safeTransfer(to, amount);\n _BASE_BALANCE_ = _BASE_BALANCE_.sub(amount);\n }\n\n function _quoteTokenTransferOut(address to, uint256 amount) internal {\n IERC20(_QUOTE_TOKEN_).safeTransfer(to, amount);\n _QUOTE_BALANCE_ = _QUOTE_BALANCE_.sub(amount);\n }\n\n // ============ Donate to Liquidity Pool Functions ============\n\n function _donateBaseToken(uint256 amount) internal {\n _TARGET_BASE_TOKEN_AMOUNT_ = _TARGET_BASE_TOKEN_AMOUNT_.add(amount);\n emit Donate(amount, true);\n }\n\n function _donateQuoteToken(uint256 amount) internal {\n _TARGET_QUOTE_TOKEN_AMOUNT_ = _TARGET_QUOTE_TOKEN_AMOUNT_.add(amount);\n emit Donate(amount, false);\n }\n\n function donateBaseToken(uint256 amount) external preventReentrant {\n _baseTokenTransferIn(msg.sender, amount);\n _donateBaseToken(amount);\n }\n\n function donateQuoteToken(uint256 amount) external preventReentrant {\n _quoteTokenTransferIn(msg.sender, amount);\n _donateQuoteToken(amount);\n }\n\n // ============ Final Settlement Functions ============\n\n // last step to shut down dodo\n function finalSettlement() external onlyOwner notClosed {\n _CLOSED_ = true;\n _DEPOSIT_QUOTE_ALLOWED_ = false;\n _DEPOSIT_BASE_ALLOWED_ = false;\n _TRADE_ALLOWED_ = false;\n uint256 totalBaseCapital = getTotalBaseCapital();\n uint256 totalQuoteCapital = getTotalQuoteCapital();\n\n if (_QUOTE_BALANCE_ > _TARGET_QUOTE_TOKEN_AMOUNT_) {\n uint256 spareQuote = _QUOTE_BALANCE_.sub(_TARGET_QUOTE_TOKEN_AMOUNT_);\n _BASE_CAPITAL_RECEIVE_QUOTE_ = DecimalMath.divFloor(spareQuote, totalBaseCapital);\n } else {\n _TARGET_QUOTE_TOKEN_AMOUNT_ = _QUOTE_BALANCE_;\n }\n\n if (_BASE_BALANCE_ > _TARGET_BASE_TOKEN_AMOUNT_) {\n uint256 spareBase = _BASE_BALANCE_.sub(_TARGET_BASE_TOKEN_AMOUNT_);\n _QUOTE_CAPITAL_RECEIVE_BASE_ = DecimalMath.divFloor(spareBase, totalQuoteCapital);\n } else {\n _TARGET_BASE_TOKEN_AMOUNT_ = _BASE_BALANCE_;\n }\n\n _R_STATUS_ = Types.RStatus.ONE;\n }\n\n // claim remaining assets after final settlement\n function claimAssets() external preventReentrant {\n require(_CLOSED_, \"DODO_NOT_CLOSED\");\n require(!_CLAIMED_[msg.sender], \"ALREADY_CLAIMED\");\n _CLAIMED_[msg.sender] = true;\n\n uint256 quoteCapital = getQuoteCapitalBalanceOf(msg.sender);\n uint256 baseCapital = getBaseCapitalBalanceOf(msg.sender);\n\n uint256 quoteAmount = 0;\n if (quoteCapital > 0) {\n quoteAmount = _TARGET_QUOTE_TOKEN_AMOUNT_.mul(quoteCapital).div(getTotalQuoteCapital());\n }\n uint256 baseAmount = 0;\n if (baseCapital > 0) {\n baseAmount = _TARGET_BASE_TOKEN_AMOUNT_.mul(baseCapital).div(getTotalBaseCapital());\n }\n\n _TARGET_QUOTE_TOKEN_AMOUNT_ = _TARGET_QUOTE_TOKEN_AMOUNT_.sub(quoteAmount);\n _TARGET_BASE_TOKEN_AMOUNT_ = _TARGET_BASE_TOKEN_AMOUNT_.sub(baseAmount);\n\n quoteAmount = quoteAmount.add(DecimalMath.mul(baseCapital, _BASE_CAPITAL_RECEIVE_QUOTE_));\n baseAmount = baseAmount.add(DecimalMath.mul(quoteCapital, _QUOTE_CAPITAL_RECEIVE_BASE_));\n\n _baseTokenTransferOut(msg.sender, baseAmount);\n _quoteTokenTransferOut(msg.sender, quoteAmount);\n\n IDODOLpToken(_BASE_CAPITAL_TOKEN_).burn(msg.sender, baseCapital);\n IDODOLpToken(_QUOTE_CAPITAL_TOKEN_).burn(msg.sender, quoteCapital);\n\n emit ClaimAssets(msg.sender, baseAmount, quoteAmount);\n return;\n }\n\n // in case someone transfer to contract directly\n function retrieve(address token, uint256 amount) external onlyOwner {\n if (token == _BASE_TOKEN_) {\n require(\n IERC20(_BASE_TOKEN_).balanceOf(address(this)) >= _BASE_BALANCE_.add(amount),\n \"DODO_BASE_BALANCE_NOT_ENOUGH\"\n );\n }\n if (token == _QUOTE_TOKEN_) {\n require(\n IERC20(_QUOTE_TOKEN_).balanceOf(address(this)) >= _QUOTE_BALANCE_.add(amount),\n \"DODO_QUOTE_BALANCE_NOT_ENOUGH\"\n );\n }\n IERC20(token).safeTransfer(msg.sender, amount);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Settlement.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Settlement.sol", + "exportedSymbols": { + "Settlement": [ + 9396 + ] + }, + "id": 9397, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8855, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:26" + }, + { + "id": 8856, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:26" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 8858, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 11624, + "src": "136:45:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8857, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "../lib/SafeERC20.sol", + "id": 8860, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 11441, + "src": "182:47:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8859, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "190:9:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 8862, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 11079, + "src": "230:51:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8861, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "238:11:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "file": "../lib/Types.sol", + "id": 8864, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 11632, + "src": "282:39:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8863, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "290:5:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol", + "file": "../intf/IDODOLpToken.sol", + "id": 8866, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 10537, + "src": "322:54:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8865, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "330:12:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 8868, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 10608, + "src": "377:42:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8867, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "385:6:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "file": "./Storage.sol", + "id": 8870, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 9614, + "src": "420:38:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8869, + "name": "Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "428:7:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 8872, + "name": "Storage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9613, + "src": "583:7:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Storage_$9613", + "typeString": "contract Storage" + } + }, + "id": 8873, + "nodeType": "InheritanceSpecifier", + "src": "583:7:26" + } + ], + "contractDependencies": [ + 9613, + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 8871, + "nodeType": "StructuredDocumentation", + "src": "461:98:26", + "text": " @title Settlement\n @author DODO Breeder\n @notice Functions for assets settlement" + }, + "fullyImplemented": true, + "id": 9396, + "linearizedBaseContracts": [ + 9396, + 9613, + 11296, + 11166 + ], + "name": "Settlement", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 8876, + "libraryName": { + "contractScope": null, + "id": 8874, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "603:8:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "597:27:26", + "typeName": { + "id": 8875, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "616:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 8879, + "libraryName": { + "contractScope": null, + "id": 8877, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "635:9:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "629:27:26", + "typeName": { + "contractScope": null, + "id": 8878, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "649:6:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 8885, + "name": "Donate", + "nodeType": "EventDefinition", + "parameters": { + "id": 8884, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8881, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8885, + "src": "716:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8880, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "716:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8883, + "indexed": false, + "mutability": "mutable", + "name": "isBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8885, + "src": "732:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8882, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "732:4:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "715:34:26" + }, + "src": "703:47:26" + }, + { + "anonymous": false, + "documentation": null, + "id": 8893, + "name": "ClaimAssets", + "nodeType": "EventDefinition", + "parameters": { + "id": 8892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8887, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8893, + "src": "774:20:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8886, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8889, + "indexed": false, + "mutability": "mutable", + "name": "baseTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8893, + "src": "796:23:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8888, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "796:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8891, + "indexed": false, + "mutability": "mutable", + "name": "quoteTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8893, + "src": "821:24:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8890, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "821:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "773:73:26" + }, + "src": "756:91:26" + }, + { + "body": { + "id": 8929, + "nodeType": "Block", + "src": "980:236:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8903, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8897, + "src": "1017:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8901, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "998:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "998:18:26", + "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": 8904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "998:26:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8905, + "name": "_BASE_BALANCE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9439, + "src": "1028:20:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "998:50:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "424153455f42414c414e43455f4c494d49545f4558434545444544", + "id": 8907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1050:29:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_73112b7b3e7782e99b674721f6033538d0f440b164e0f7d64c222cd9d5354cac", + "typeString": "literal_string \"BASE_BALANCE_LIMIT_EXCEEDED\"" + }, + "value": "BASE_BALANCE_LIMIT_EXCEEDED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_73112b7b3e7782e99b674721f6033538d0f440b164e0f7d64c222cd9d5354cac", + "typeString": "literal_string \"BASE_BALANCE_LIMIT_EXCEEDED\"" + } + ], + "id": 8900, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "990:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "990:90:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8909, + "nodeType": "ExpressionStatement", + "src": "990:90:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8914, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8895, + "src": "1128:4:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8917, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1142:4:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + ], + "id": 8916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1134:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8915, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1134:7:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 8918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1134:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8919, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8897, + "src": "1149:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8911, + "name": "_BASE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9447, + "src": "1097:12:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8910, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1090:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1090:20:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 8913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11354, + "src": "1090:37:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 8920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1090:66:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8921, + "nodeType": "ExpressionStatement", + "src": "1090:66:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 8927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8922, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "1166:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8925, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8897, + "src": "1202:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8923, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "1183:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1183:18:26", + "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": 8926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1183:26:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1166:43:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8928, + "nodeType": "ExpressionStatement", + "src": "1166:43:26" + } + ] + }, + "documentation": null, + "id": 8930, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseTokenTransferIn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8895, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8930, + "src": "941:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8894, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "941:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8897, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8930, + "src": "955:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "955:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "940:30:26" + }, + "returnParameters": { + "id": 8899, + "nodeType": "ParameterList", + "parameters": [], + "src": "980:0:26" + }, + "scope": 9396, + "src": "911:305:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8966, + "nodeType": "Block", + "src": "1292:276:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8940, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8934, + "src": "1343:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8938, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "1323:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1323:19:26", + "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": 8941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1323:27:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8942, + "name": "_QUOTE_BALANCE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9441, + "src": "1354:21:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1323:52:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "51554f54455f42414c414e43455f4c494d49545f4558434545444544", + "id": 8944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1389:30:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_46871c05d43b94497f8d7f8fa48b2494d3e639610f744f02bdfb7bde16628eb4", + "typeString": "literal_string \"QUOTE_BALANCE_LIMIT_EXCEEDED\"" + }, + "value": "QUOTE_BALANCE_LIMIT_EXCEEDED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_46871c05d43b94497f8d7f8fa48b2494d3e639610f744f02bdfb7bde16628eb4", + "typeString": "literal_string \"QUOTE_BALANCE_LIMIT_EXCEEDED\"" + } + ], + "id": 8937, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1302:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1302:127:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8946, + "nodeType": "ExpressionStatement", + "src": "1302:127:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8951, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8932, + "src": "1478:4:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8954, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1492:4:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + ], + "id": 8953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1484:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1484:7:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 8955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1484:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8956, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8934, + "src": "1499:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8948, + "name": "_QUOTE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9449, + "src": "1446:13:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8947, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1439:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1439:21:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 8950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11354, + "src": "1439:38:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 8957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1439:67:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8958, + "nodeType": "ExpressionStatement", + "src": "1439:67:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 8964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8959, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "1516:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8962, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8934, + "src": "1554:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8960, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "1534:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1534:19:26", + "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": 8963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1534:27:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1516:45:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8965, + "nodeType": "ExpressionStatement", + "src": "1516:45:26" + } + ] + }, + "documentation": null, + "id": 8967, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_quoteTokenTransferIn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8935, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8932, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8967, + "src": "1253:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8931, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1253:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8934, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8967, + "src": "1267:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1267:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1252:30:26" + }, + "returnParameters": { + "id": 8936, + "nodeType": "ParameterList", + "parameters": [], + "src": "1292:0:26" + }, + "scope": 9396, + "src": "1222:346:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8989, + "nodeType": "Block", + "src": "1642:115:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8978, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8969, + "src": "1686:2:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8979, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8971, + "src": "1690:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8975, + "name": "_BASE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9447, + "src": "1659:12:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8974, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1652:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1652:20:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 8977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "1652:33:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 8980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1652:45:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8981, + "nodeType": "ExpressionStatement", + "src": "1652:45:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 8987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8982, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "1707:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8985, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8971, + "src": "1743:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8983, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "1724:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1724:18:26", + "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": 8986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1724:26:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1707:43:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8988, + "nodeType": "ExpressionStatement", + "src": "1707:43:26" + } + ] + }, + "documentation": null, + "id": 8990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseTokenTransferOut", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8969, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8990, + "src": "1605:10:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1605:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8971, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8990, + "src": "1617:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8970, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1617:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1604:28:26" + }, + "returnParameters": { + "id": 8973, + "nodeType": "ParameterList", + "parameters": [], + "src": "1642:0:26" + }, + "scope": 9396, + "src": "1574:183:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9012, + "nodeType": "Block", + "src": "1832:118:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9001, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8992, + "src": "1877:2:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9002, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8994, + "src": "1881:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8998, + "name": "_QUOTE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9449, + "src": "1849:13:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8997, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1842:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1842:21:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 9000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "1842:34:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 9003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1842:46:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9004, + "nodeType": "ExpressionStatement", + "src": "1842:46:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9005, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "1898:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9008, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8994, + "src": "1936:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9006, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "1916:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1916:19:26", + "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": 9009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1916:27:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1898:45:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9011, + "nodeType": "ExpressionStatement", + "src": "1898:45:26" + } + ] + }, + "documentation": null, + "id": 9013, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_quoteTokenTransferOut", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8992, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9013, + "src": "1795:10:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1795:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8994, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9013, + "src": "1807:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8993, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1807:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1794:28:26" + }, + "returnParameters": { + "id": 8996, + "nodeType": "ParameterList", + "parameters": [], + "src": "1832:0:26" + }, + "scope": 9396, + "src": "1763:187:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9030, + "nodeType": "Block", + "src": "2076:119:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9018, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "2086:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9021, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9015, + "src": "2146:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9019, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "2115:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2115:30:26", + "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": 9022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2115:38:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2086:67:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9024, + "nodeType": "ExpressionStatement", + "src": "2086:67:26" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9026, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9015, + "src": "2175:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9027, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2183:4:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9025, + "name": "Donate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8885, + "src": "2168:6:26", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,bool)" + } + }, + "id": 9028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2168:20:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9029, + "nodeType": "EmitStatement", + "src": "2163:25:26" + } + ] + }, + "documentation": null, + "id": 9031, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_donateBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9016, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9015, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9031, + "src": "2051:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9014, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2051:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2050:16:26" + }, + "returnParameters": { + "id": 9017, + "nodeType": "ParameterList", + "parameters": [], + "src": "2076:0:26" + }, + "scope": 9396, + "src": "2025:170:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9048, + "nodeType": "Block", + "src": "2253:122:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9036, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "2263:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9039, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9033, + "src": "2325:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9037, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "2293:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2293:31:26", + "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": 9040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2293:39:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2263:69:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9042, + "nodeType": "ExpressionStatement", + "src": "2263:69:26" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9044, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9033, + "src": "2354:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2362:5:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9043, + "name": "Donate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8885, + "src": "2347:6:26", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,bool)" + } + }, + "id": 9046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2347:21:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9047, + "nodeType": "EmitStatement", + "src": "2342:26:26" + } + ] + }, + "documentation": null, + "id": 9049, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_donateQuoteToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9033, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9049, + "src": "2228:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2228:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2227:16:26" + }, + "returnParameters": { + "id": 9035, + "nodeType": "ParameterList", + "parameters": [], + "src": "2253:0:26" + }, + "scope": 9396, + "src": "2201:174:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9066, + "nodeType": "Block", + "src": "2448:91:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9057, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2479:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2479:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9059, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9051, + "src": "2491:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9056, + "name": "_baseTokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8930, + "src": "2458:20:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2458:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9061, + "nodeType": "ExpressionStatement", + "src": "2458:40:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9063, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9051, + "src": "2525:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9062, + "name": "_donateBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9031, + "src": "2508:16:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 9064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2508:24:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9065, + "nodeType": "ExpressionStatement", + "src": "2508:24:26" + } + ] + }, + "documentation": null, + "functionSelector": "ed0aa428", + "id": 9067, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9054, + "modifierName": { + "argumentTypes": null, + "id": 9053, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "2431:16:26", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2431:16:26" + } + ], + "name": "donateBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9051, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9067, + "src": "2406:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9050, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2406:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2405:16:26" + }, + "returnParameters": { + "id": 9055, + "nodeType": "ParameterList", + "parameters": [], + "src": "2448:0:26" + }, + "scope": 9396, + "src": "2381:158:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9084, + "nodeType": "Block", + "src": "2613:93:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9075, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2645:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2645:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9077, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9069, + "src": "2657:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9074, + "name": "_quoteTokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8967, + "src": "2623:21:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2623:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9079, + "nodeType": "ExpressionStatement", + "src": "2623:41:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9081, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9069, + "src": "2692:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9080, + "name": "_donateQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9049, + "src": "2674:17:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 9082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2674:25:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9083, + "nodeType": "ExpressionStatement", + "src": "2674:25:26" + } + ] + }, + "documentation": null, + "functionSelector": "387b0c11", + "id": 9085, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9072, + "modifierName": { + "argumentTypes": null, + "id": 9071, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "2596:16:26", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2596:16:26" + } + ], + "name": "donateQuoteToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9069, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9085, + "src": "2571:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2571:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2570:16:26" + }, + "returnParameters": { + "id": 9073, + "nodeType": "ParameterList", + "parameters": [], + "src": "2613:0:26" + }, + "scope": 9396, + "src": "2545:161:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9174, + "nodeType": "Block", + "src": "2864:950:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9092, + "name": "_CLOSED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9425, + "src": "2874:8:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2885:4:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2874:15:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9095, + "nodeType": "ExpressionStatement", + "src": "2874:15:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9096, + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9427, + "src": "2899:23:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2925:5:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2899:31:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9099, + "nodeType": "ExpressionStatement", + "src": "2899:31:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9100, + "name": "_DEPOSIT_BASE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9429, + "src": "2940:22:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2965:5:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2940:30:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9103, + "nodeType": "ExpressionStatement", + "src": "2940:30:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9104, + "name": "_TRADE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9431, + "src": "2980:15:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2998:5:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2980:23:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9107, + "nodeType": "ExpressionStatement", + "src": "2980:23:26" + }, + { + "assignments": [ + 9109 + ], + "declarations": [ + { + "constant": false, + "id": 9109, + "mutability": "mutable", + "name": "totalBaseCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9174, + "src": "3013:24:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3013:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9112, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9110, + "name": "getTotalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "3040:19:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 9111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3040:21:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3013:48:26" + }, + { + "assignments": [ + 9114 + ], + "declarations": [ + { + "constant": false, + "id": 9114, + "mutability": "mutable", + "name": "totalQuoteCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9174, + "src": "3071:25:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3071:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9117, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9115, + "name": "getTotalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9604, + "src": "3099:20:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 9116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3099:22:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3071:50:26" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9118, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "3136:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 9119, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "3154:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3136:45:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 9141, + "nodeType": "Block", + "src": "3378:70:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9137, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "3392:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9138, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "3422:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3392:45:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9140, + "nodeType": "ExpressionStatement", + "src": "3392:45:26" + } + ] + }, + "id": 9142, + "nodeType": "IfStatement", + "src": "3132:316:26", + "trueBody": { + "id": 9136, + "nodeType": "Block", + "src": "3183:189:26", + "statements": [ + { + "assignments": [ + 9122 + ], + "declarations": [ + { + "constant": false, + "id": 9122, + "mutability": "mutable", + "name": "spareQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9136, + "src": "3197:18:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3197:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9127, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9125, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "3238:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9123, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "3218:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3218:19:26", + "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": 9126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3218:48:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3197:69:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9128, + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9473, + "src": "3280:28:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9131, + "name": "spareQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9122, + "src": "3332:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9132, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9109, + "src": "3344:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9129, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3311:11:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 9130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "3311:20:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 9133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3311:50:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3280:81:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9135, + "nodeType": "ExpressionStatement", + "src": "3280:81:26" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9143, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "3462:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 9144, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "3479:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3462:43:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 9166, + "nodeType": "Block", + "src": "3699:68:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9162, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "3713:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9163, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "3742:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3713:43:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9165, + "nodeType": "ExpressionStatement", + "src": "3713:43:26" + } + ] + }, + "id": 9167, + "nodeType": "IfStatement", + "src": "3458:309:26", + "trueBody": { + "id": 9161, + "nodeType": "Block", + "src": "3507:186:26", + "statements": [ + { + "assignments": [ + 9147 + ], + "declarations": [ + { + "constant": false, + "id": 9147, + "mutability": "mutable", + "name": "spareBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9161, + "src": "3521:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3521:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9152, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9150, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "3560:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9148, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "3541:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3541:18:26", + "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": 9151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3541:46:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3521:66:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9153, + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9475, + "src": "3601:28:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9156, + "name": "spareBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9147, + "src": "3653:9:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9157, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9114, + "src": "3664:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9154, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3632:11:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 9155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "3632:20:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 9158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3632:50:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3601:81:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9160, + "nodeType": "ExpressionStatement", + "src": "3601:81:26" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 9172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9168, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "3777:10:26", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9169, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "3790:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 9170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "3790:13:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 9171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3790:17:26", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "3777:30:26", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 9173, + "nodeType": "ExpressionStatement", + "src": "3777:30:26" + } + ] + }, + "documentation": null, + "functionSelector": "648a4fac", + "id": 9175, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9088, + "modifierName": { + "argumentTypes": null, + "id": 9087, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "2844:9:26", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2844:9:26" + }, + { + "arguments": null, + "id": 9090, + "modifierName": { + "argumentTypes": null, + "id": 9089, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "2854:9:26", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2854:9:26" + } + ], + "name": "finalSettlement", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9086, + "nodeType": "ParameterList", + "parameters": [], + "src": "2832:2:26" + }, + "returnParameters": { + "id": 9091, + "nodeType": "ParameterList", + "parameters": [], + "src": "2864:0:26" + }, + "scope": 9396, + "src": "2808:1006:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9329, + "nodeType": "Block", + "src": "3922:1343:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9181, + "name": "_CLOSED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9425, + "src": "3940:8:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f434c4f534544", + "id": 9182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3950:17:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fdecdbea6b0a4c5263013d9193a4b5225e5c7851ff0e83a8bf5860fa4ea7f6f6", + "typeString": "literal_string \"DODO_NOT_CLOSED\"" + }, + "value": "DODO_NOT_CLOSED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fdecdbea6b0a4c5263013d9193a4b5225e5c7851ff0e83a8bf5860fa4ea7f6f6", + "typeString": "literal_string \"DODO_NOT_CLOSED\"" + } + ], + "id": 9180, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3932:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3932:36:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9184, + "nodeType": "ExpressionStatement", + "src": "3932:36:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3986:22:26", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9186, + "name": "_CLAIMED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9479, + "src": "3987:9:26", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 9189, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9187, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3997:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3997:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3987:21:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414c52454144595f434c41494d4544", + "id": 9191, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4010:17:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc7a4f08369e04191e5d601ef52230a181560bfbd7431497090a8eabc5119861", + "typeString": "literal_string \"ALREADY_CLAIMED\"" + }, + "value": "ALREADY_CLAIMED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc7a4f08369e04191e5d601ef52230a181560bfbd7431497090a8eabc5119861", + "typeString": "literal_string \"ALREADY_CLAIMED\"" + } + ], + "id": 9185, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3978:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3978:50:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9193, + "nodeType": "ExpressionStatement", + "src": "3978:50:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9194, + "name": "_CLAIMED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9479, + "src": "4038:9:26", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 9197, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9195, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4048:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4048:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4038:21:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9198, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4062:4:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4038:28:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9200, + "nodeType": "ExpressionStatement", + "src": "4038:28:26" + }, + { + "assignments": [ + 9202 + ], + "declarations": [ + { + "constant": false, + "id": 9202, + "mutability": "mutable", + "name": "quoteCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9329, + "src": "4077:20:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4077:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9207, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9204, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4125:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4125:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 9203, + "name": "getQuoteCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9592, + "src": "4100:24:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 9206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4100:36:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4077:59:26" + }, + { + "assignments": [ + 9209 + ], + "declarations": [ + { + "constant": false, + "id": 9209, + "mutability": "mutable", + "name": "baseCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9329, + "src": "4146:19:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9208, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4146:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9214, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9211, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4192:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4192:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 9210, + "name": "getBaseCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9565, + "src": "4168:23:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 9213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4168:35:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4146:57:26" + }, + { + "assignments": [ + 9216 + ], + "declarations": [ + { + "constant": false, + "id": 9216, + "mutability": "mutable", + "name": "quoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9329, + "src": "4214:19:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4214:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9218, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 9217, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4236:1:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4214:23:26" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9219, + "name": "quoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9202, + "src": "4251:12:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4266:1:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4251:16:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9234, + "nodeType": "IfStatement", + "src": "4247:134:26", + "trueBody": { + "id": 9233, + "nodeType": "Block", + "src": "4269:112:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9222, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9216, + "src": "4283:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9228, + "name": "getTotalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9604, + "src": "4347:20:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 9229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4347:22:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9225, + "name": "quoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9202, + "src": "4329:12:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9223, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4297:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "4297:31:26", + "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": 9226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4297:45:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "4297:49:26", + "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": 9230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4297:73:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4283:87:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9232, + "nodeType": "ExpressionStatement", + "src": "4283:87:26" + } + ] + } + }, + { + "assignments": [ + 9236 + ], + "declarations": [ + { + "constant": false, + "id": 9236, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9329, + "src": "4390:18:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9235, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9238, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 9237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4411:1:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4390:22:26" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9239, + "name": "baseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9209, + "src": "4426:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4440:1:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4426:15:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9254, + "nodeType": "IfStatement", + "src": "4422:129:26", + "trueBody": { + "id": 9253, + "nodeType": "Block", + "src": "4443:108:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9242, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9236, + "src": "4457:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9248, + "name": "getTotalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "4518:19:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 9249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4518:21:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9245, + "name": "baseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9209, + "src": "4501:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9243, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "4470:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "4470:30:26", + "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": 9246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4470:43:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "4470:47:26", + "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": 9250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4470:70:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4457:83:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9252, + "nodeType": "ExpressionStatement", + "src": "4457:83:26" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 9260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9255, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4561:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9258, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9216, + "src": "4623:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9256, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4591:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4591:31:26", + "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": 9259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4591:44:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4561:74:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9261, + "nodeType": "ExpressionStatement", + "src": "4561:74:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9262, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "4645:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9265, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9236, + "src": "4705:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9263, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "4674:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4674:30:26", + "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": 9266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4674:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4645:71:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9268, + "nodeType": "ExpressionStatement", + "src": "4645:71:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9269, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9216, + "src": "4727:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9274, + "name": "baseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9209, + "src": "4773:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9275, + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9473, + "src": "4786:28:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9272, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "4757:11:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 9273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "4757:15:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 9276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4757:58:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9270, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9216, + "src": "4741:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4741:15:26", + "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": 9277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4741:75:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4727:89:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9279, + "nodeType": "ExpressionStatement", + "src": "4727:89:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9280, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9236, + "src": "4826:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9285, + "name": "quoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9202, + "src": "4870:12:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9286, + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9475, + "src": "4884:28:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9283, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "4854:11:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 9284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "4854:15:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 9287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4854:59:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9281, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9236, + "src": "4839:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4839:14:26", + "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": 9288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4839:75:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4826:88:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9290, + "nodeType": "ExpressionStatement", + "src": "4826:88:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4947:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4947:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9294, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9236, + "src": "4959:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9291, + "name": "_baseTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8990, + "src": "4925:21:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4925:45:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9296, + "nodeType": "ExpressionStatement", + "src": "4925:45:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9298, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5003:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5003:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9300, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9216, + "src": "5015:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9297, + "name": "_quoteTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9013, + "src": "4980:22:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4980:47:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9302, + "nodeType": "ExpressionStatement", + "src": "4980:47:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9307, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5078:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5078:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9309, + "name": "baseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9209, + "src": "5090:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9304, + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9469, + "src": "5051:20:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9303, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "5038:12:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 9305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5038:34:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 9306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 10523, + "src": "5038:39:26", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 9310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5038:64:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9311, + "nodeType": "ExpressionStatement", + "src": "5038:64:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9316, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5153:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5153:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9318, + "name": "quoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9202, + "src": "5165:12:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9313, + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9471, + "src": "5125:21:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9312, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "5112:12:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 9314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5112:35:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 9315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 10523, + "src": "5112:40:26", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 9319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5112:66:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9320, + "nodeType": "ExpressionStatement", + "src": "5112:66:26" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9322, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5206:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5206:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9324, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9236, + "src": "5218:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9325, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9216, + "src": "5230:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9321, + "name": "ClaimAssets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8893, + "src": "5194:11:26", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 9326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5194:48:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9327, + "nodeType": "EmitStatement", + "src": "5189:53:26" + }, + { + "expression": null, + "functionReturnParameters": 9179, + "id": 9328, + "nodeType": "Return", + "src": "5252:7:26" + } + ] + }, + "documentation": null, + "functionSelector": "1f3c156e", + "id": 9330, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9178, + "modifierName": { + "argumentTypes": null, + "id": 9177, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "3905:16:26", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3905:16:26" + } + ], + "name": "claimAssets", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9176, + "nodeType": "ParameterList", + "parameters": [], + "src": "3893:2:26" + }, + "returnParameters": { + "id": 9179, + "nodeType": "ParameterList", + "parameters": [], + "src": "3922:0:26" + }, + "scope": 9396, + "src": "3873:1392:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9394, + "nodeType": "Block", + "src": "5392:513:26", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9339, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9332, + "src": "5406:5:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 9340, + "name": "_BASE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9447, + "src": "5415:12:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5406:21:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9361, + "nodeType": "IfStatement", + "src": "5402:214:26", + "trueBody": { + "id": 9360, + "nodeType": "Block", + "src": "5429:187:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9349, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5507:4:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + ], + "id": 9348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5499:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 9347, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5499:7:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 9350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5499:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9344, + "name": "_BASE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9447, + "src": "5475:12:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9343, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5468:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 9345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5468:20:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 9346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "5468:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 9351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5468:45:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9354, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9334, + "src": "5536:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9352, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "5517:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5517:18:26", + "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": 9355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5517:26:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5468:75:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f424153455f42414c414e43455f4e4f545f454e4f554748", + "id": 9357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5561:30:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + }, + "value": "DODO_BASE_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 9342, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5443:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5443:162:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9359, + "nodeType": "ExpressionStatement", + "src": "5443:162:26" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9362, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9332, + "src": "5629:5:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 9363, + "name": "_QUOTE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9449, + "src": "5638:13:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5629:22:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9384, + "nodeType": "IfStatement", + "src": "5625:218:26", + "trueBody": { + "id": 9383, + "nodeType": "Block", + "src": "5653:190:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9372, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5732:4:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + ], + "id": 9371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5724:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 9370, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5724:7:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 9373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5724:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9367, + "name": "_QUOTE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9449, + "src": "5699:13:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9366, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5692:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 9368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5692:21:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 9369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "5692:31:26", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 9374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5692:46:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9377, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9334, + "src": "5762:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9375, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "5742:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5742:19:26", + "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": 9378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5742:27:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5692:77:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f51554f54455f42414c414e43455f4e4f545f454e4f554748", + "id": 9380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5787:31:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_01a080c50343e863e17230c1a9c9900101809eaf44c06794af82120907bb21f5", + "typeString": "literal_string \"DODO_QUOTE_BALANCE_NOT_ENOUGH\"" + }, + "value": "DODO_QUOTE_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_01a080c50343e863e17230c1a9c9900101809eaf44c06794af82120907bb21f5", + "typeString": "literal_string \"DODO_QUOTE_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 9365, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5667:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5667:165:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9382, + "nodeType": "ExpressionStatement", + "src": "5667:165:26" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9389, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5879:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5879:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9391, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9334, + "src": "5891:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9386, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9332, + "src": "5859:5:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9385, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5852:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 9387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5852:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 9388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "5852:26:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 9392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5852:46:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9393, + "nodeType": "ExpressionStatement", + "src": "5852:46:26" + } + ] + }, + "documentation": null, + "functionSelector": "c3a2a665", + "id": 9395, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9337, + "modifierName": { + "argumentTypes": null, + "id": 9336, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "5382:9:26", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5382:9:26" + } + ], + "name": "retrieve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9332, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9395, + "src": "5342:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9331, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5342:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9334, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9395, + "src": "5357:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5357:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5341:31:26" + }, + "returnParameters": { + "id": 9338, + "nodeType": "ParameterList", + "parameters": [], + "src": "5392:0:26" + }, + "scope": 9396, + "src": "5324:581:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 9397, + "src": "560:5347:26" + } + ], + "src": "78:5830:26" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Settlement.sol", + "exportedSymbols": { + "Settlement": [ + 9396 + ] + }, + "id": 9397, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8855, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:26" + }, + { + "id": 8856, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:26" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 8858, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 11624, + "src": "136:45:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8857, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "../lib/SafeERC20.sol", + "id": 8860, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 11441, + "src": "182:47:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8859, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "190:9:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 8862, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 11079, + "src": "230:51:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8861, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "238:11:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "file": "../lib/Types.sol", + "id": 8864, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 11632, + "src": "282:39:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8863, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "290:5:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol", + "file": "../intf/IDODOLpToken.sol", + "id": 8866, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 10537, + "src": "322:54:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8865, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "330:12:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 8868, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 10608, + "src": "377:42:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8867, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "385:6:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "file": "./Storage.sol", + "id": 8870, + "nodeType": "ImportDirective", + "scope": 9397, + "sourceUnit": 9614, + "src": "420:38:26", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 8869, + "name": "Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "428:7:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 8872, + "name": "Storage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9613, + "src": "583:7:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Storage_$9613", + "typeString": "contract Storage" + } + }, + "id": 8873, + "nodeType": "InheritanceSpecifier", + "src": "583:7:26" + } + ], + "contractDependencies": [ + 9613, + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 8871, + "nodeType": "StructuredDocumentation", + "src": "461:98:26", + "text": " @title Settlement\n @author DODO Breeder\n @notice Functions for assets settlement" + }, + "fullyImplemented": true, + "id": 9396, + "linearizedBaseContracts": [ + 9396, + 9613, + 11296, + 11166 + ], + "name": "Settlement", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 8876, + "libraryName": { + "contractScope": null, + "id": 8874, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "603:8:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "597:27:26", + "typeName": { + "id": 8875, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "616:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 8879, + "libraryName": { + "contractScope": null, + "id": 8877, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "635:9:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "629:27:26", + "typeName": { + "contractScope": null, + "id": 8878, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "649:6:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 8885, + "name": "Donate", + "nodeType": "EventDefinition", + "parameters": { + "id": 8884, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8881, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8885, + "src": "716:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8880, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "716:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8883, + "indexed": false, + "mutability": "mutable", + "name": "isBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8885, + "src": "732:16:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8882, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "732:4:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "715:34:26" + }, + "src": "703:47:26" + }, + { + "anonymous": false, + "documentation": null, + "id": 8893, + "name": "ClaimAssets", + "nodeType": "EventDefinition", + "parameters": { + "id": 8892, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8887, + "indexed": true, + "mutability": "mutable", + "name": "user", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8893, + "src": "774:20:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8886, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "774:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8889, + "indexed": false, + "mutability": "mutable", + "name": "baseTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8893, + "src": "796:23:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8888, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "796:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8891, + "indexed": false, + "mutability": "mutable", + "name": "quoteTokenAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8893, + "src": "821:24:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8890, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "821:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "773:73:26" + }, + "src": "756:91:26" + }, + { + "body": { + "id": 8929, + "nodeType": "Block", + "src": "980:236:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8903, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8897, + "src": "1017:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8901, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "998:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "998:18:26", + "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": 8904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "998:26:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8905, + "name": "_BASE_BALANCE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9439, + "src": "1028:20:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "998:50:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "424153455f42414c414e43455f4c494d49545f4558434545444544", + "id": 8907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1050:29:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_73112b7b3e7782e99b674721f6033538d0f440b164e0f7d64c222cd9d5354cac", + "typeString": "literal_string \"BASE_BALANCE_LIMIT_EXCEEDED\"" + }, + "value": "BASE_BALANCE_LIMIT_EXCEEDED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_73112b7b3e7782e99b674721f6033538d0f440b164e0f7d64c222cd9d5354cac", + "typeString": "literal_string \"BASE_BALANCE_LIMIT_EXCEEDED\"" + } + ], + "id": 8900, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "990:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "990:90:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8909, + "nodeType": "ExpressionStatement", + "src": "990:90:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8914, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8895, + "src": "1128:4:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8917, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1142:4:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + ], + "id": 8916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1134:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8915, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1134:7:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 8918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1134:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8919, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8897, + "src": "1149:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8911, + "name": "_BASE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9447, + "src": "1097:12:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8910, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1090:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1090:20:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 8913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11354, + "src": "1090:37:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 8920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1090:66:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8921, + "nodeType": "ExpressionStatement", + "src": "1090:66:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 8927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8922, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "1166:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8925, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8897, + "src": "1202:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8923, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "1183:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1183:18:26", + "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": 8926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1183:26:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1166:43:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8928, + "nodeType": "ExpressionStatement", + "src": "1166:43:26" + } + ] + }, + "documentation": null, + "id": 8930, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseTokenTransferIn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8895, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8930, + "src": "941:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8894, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "941:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8897, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8930, + "src": "955:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "955:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "940:30:26" + }, + "returnParameters": { + "id": 8899, + "nodeType": "ParameterList", + "parameters": [], + "src": "980:0:26" + }, + "scope": 9396, + "src": "911:305:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8966, + "nodeType": "Block", + "src": "1292:276:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8940, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8934, + "src": "1343:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8938, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "1323:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1323:19:26", + "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": 8941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1323:27:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8942, + "name": "_QUOTE_BALANCE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9441, + "src": "1354:21:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1323:52:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "51554f54455f42414c414e43455f4c494d49545f4558434545444544", + "id": 8944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1389:30:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_46871c05d43b94497f8d7f8fa48b2494d3e639610f744f02bdfb7bde16628eb4", + "typeString": "literal_string \"QUOTE_BALANCE_LIMIT_EXCEEDED\"" + }, + "value": "QUOTE_BALANCE_LIMIT_EXCEEDED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_46871c05d43b94497f8d7f8fa48b2494d3e639610f744f02bdfb7bde16628eb4", + "typeString": "literal_string \"QUOTE_BALANCE_LIMIT_EXCEEDED\"" + } + ], + "id": 8937, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1302:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1302:127:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8946, + "nodeType": "ExpressionStatement", + "src": "1302:127:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8951, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8932, + "src": "1478:4:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8954, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1492:4:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + ], + "id": 8953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1484:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1484:7:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 8955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1484:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8956, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8934, + "src": "1499:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8948, + "name": "_QUOTE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9449, + "src": "1446:13:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8947, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1439:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1439:21:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 8950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 11354, + "src": "1439:38:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,address,uint256)" + } + }, + "id": 8957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1439:67:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8958, + "nodeType": "ExpressionStatement", + "src": "1439:67:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 8964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8959, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "1516:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8962, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8934, + "src": "1554:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8960, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "1534:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1534:19:26", + "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": 8963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1534:27:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1516:45:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8965, + "nodeType": "ExpressionStatement", + "src": "1516:45:26" + } + ] + }, + "documentation": null, + "id": 8967, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_quoteTokenTransferIn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8935, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8932, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8967, + "src": "1253:12:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8931, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1253:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8934, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8967, + "src": "1267:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1267:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1252:30:26" + }, + "returnParameters": { + "id": 8936, + "nodeType": "ParameterList", + "parameters": [], + "src": "1292:0:26" + }, + "scope": 9396, + "src": "1222:346:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8989, + "nodeType": "Block", + "src": "1642:115:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8978, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8969, + "src": "1686:2:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8979, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8971, + "src": "1690:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8975, + "name": "_BASE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9447, + "src": "1659:12:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8974, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1652:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1652:20:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 8977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "1652:33:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 8980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1652:45:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8981, + "nodeType": "ExpressionStatement", + "src": "1652:45:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 8987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8982, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "1707:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8985, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8971, + "src": "1743:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8983, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "1724:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1724:18:26", + "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": 8986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1724:26:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1707:43:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8988, + "nodeType": "ExpressionStatement", + "src": "1707:43:26" + } + ] + }, + "documentation": null, + "id": 8990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_baseTokenTransferOut", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8969, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8990, + "src": "1605:10:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1605:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8971, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 8990, + "src": "1617:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8970, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1617:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1604:28:26" + }, + "returnParameters": { + "id": 8973, + "nodeType": "ParameterList", + "parameters": [], + "src": "1642:0:26" + }, + "scope": 9396, + "src": "1574:183:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9012, + "nodeType": "Block", + "src": "1832:118:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9001, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8992, + "src": "1877:2:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9002, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8994, + "src": "1881:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8998, + "name": "_QUOTE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9449, + "src": "1849:13:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8997, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1842:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1842:21:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 9000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "1842:34:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 9003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1842:46:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9004, + "nodeType": "ExpressionStatement", + "src": "1842:46:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9005, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "1898:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9008, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8994, + "src": "1936:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9006, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "1916:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1916:19:26", + "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": 9009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1916:27:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1898:45:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9011, + "nodeType": "ExpressionStatement", + "src": "1898:45:26" + } + ] + }, + "documentation": null, + "id": 9013, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_quoteTokenTransferOut", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 8995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8992, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9013, + "src": "1795:10:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1795:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8994, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9013, + "src": "1807:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8993, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1807:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1794:28:26" + }, + "returnParameters": { + "id": 8996, + "nodeType": "ParameterList", + "parameters": [], + "src": "1832:0:26" + }, + "scope": 9396, + "src": "1763:187:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9030, + "nodeType": "Block", + "src": "2076:119:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9018, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "2086:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9021, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9015, + "src": "2146:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9019, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "2115:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2115:30:26", + "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": 9022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2115:38:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2086:67:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9024, + "nodeType": "ExpressionStatement", + "src": "2086:67:26" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9026, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9015, + "src": "2175:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9027, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2183:4:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9025, + "name": "Donate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8885, + "src": "2168:6:26", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,bool)" + } + }, + "id": 9028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2168:20:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9029, + "nodeType": "EmitStatement", + "src": "2163:25:26" + } + ] + }, + "documentation": null, + "id": 9031, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_donateBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9016, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9015, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9031, + "src": "2051:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9014, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2051:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2050:16:26" + }, + "returnParameters": { + "id": 9017, + "nodeType": "ParameterList", + "parameters": [], + "src": "2076:0:26" + }, + "scope": 9396, + "src": "2025:170:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9048, + "nodeType": "Block", + "src": "2253:122:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9036, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "2263:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9039, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9033, + "src": "2325:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9037, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "2293:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2293:31:26", + "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": 9040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2293:39:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2263:69:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9042, + "nodeType": "ExpressionStatement", + "src": "2263:69:26" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9044, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9033, + "src": "2354:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2362:5:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9043, + "name": "Donate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8885, + "src": "2347:6:26", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,bool)" + } + }, + "id": 9046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2347:21:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9047, + "nodeType": "EmitStatement", + "src": "2342:26:26" + } + ] + }, + "documentation": null, + "id": 9049, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_donateQuoteToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9033, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9049, + "src": "2228:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2228:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2227:16:26" + }, + "returnParameters": { + "id": 9035, + "nodeType": "ParameterList", + "parameters": [], + "src": "2253:0:26" + }, + "scope": 9396, + "src": "2201:174:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9066, + "nodeType": "Block", + "src": "2448:91:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9057, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2479:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2479:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9059, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9051, + "src": "2491:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9056, + "name": "_baseTokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8930, + "src": "2458:20:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2458:40:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9061, + "nodeType": "ExpressionStatement", + "src": "2458:40:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9063, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9051, + "src": "2525:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9062, + "name": "_donateBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9031, + "src": "2508:16:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 9064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2508:24:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9065, + "nodeType": "ExpressionStatement", + "src": "2508:24:26" + } + ] + }, + "documentation": null, + "functionSelector": "ed0aa428", + "id": 9067, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9054, + "modifierName": { + "argumentTypes": null, + "id": 9053, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "2431:16:26", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2431:16:26" + } + ], + "name": "donateBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9051, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9067, + "src": "2406:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9050, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2406:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2405:16:26" + }, + "returnParameters": { + "id": 9055, + "nodeType": "ParameterList", + "parameters": [], + "src": "2448:0:26" + }, + "scope": 9396, + "src": "2381:158:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9084, + "nodeType": "Block", + "src": "2613:93:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9075, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2645:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2645:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9077, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9069, + "src": "2657:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9074, + "name": "_quoteTokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8967, + "src": "2623:21:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2623:41:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9079, + "nodeType": "ExpressionStatement", + "src": "2623:41:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9081, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9069, + "src": "2692:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9080, + "name": "_donateQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9049, + "src": "2674:17:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 9082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2674:25:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9083, + "nodeType": "ExpressionStatement", + "src": "2674:25:26" + } + ] + }, + "documentation": null, + "functionSelector": "387b0c11", + "id": 9085, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9072, + "modifierName": { + "argumentTypes": null, + "id": 9071, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "2596:16:26", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2596:16:26" + } + ], + "name": "donateQuoteToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9069, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9085, + "src": "2571:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2571:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2570:16:26" + }, + "returnParameters": { + "id": 9073, + "nodeType": "ParameterList", + "parameters": [], + "src": "2613:0:26" + }, + "scope": 9396, + "src": "2545:161:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9174, + "nodeType": "Block", + "src": "2864:950:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9092, + "name": "_CLOSED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9425, + "src": "2874:8:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2885:4:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2874:15:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9095, + "nodeType": "ExpressionStatement", + "src": "2874:15:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9096, + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9427, + "src": "2899:23:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2925:5:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2899:31:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9099, + "nodeType": "ExpressionStatement", + "src": "2899:31:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9100, + "name": "_DEPOSIT_BASE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9429, + "src": "2940:22:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2965:5:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2940:30:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9103, + "nodeType": "ExpressionStatement", + "src": "2940:30:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9104, + "name": "_TRADE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9431, + "src": "2980:15:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2998:5:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2980:23:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9107, + "nodeType": "ExpressionStatement", + "src": "2980:23:26" + }, + { + "assignments": [ + 9109 + ], + "declarations": [ + { + "constant": false, + "id": 9109, + "mutability": "mutable", + "name": "totalBaseCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9174, + "src": "3013:24:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3013:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9112, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9110, + "name": "getTotalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "3040:19:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 9111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3040:21:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3013:48:26" + }, + { + "assignments": [ + 9114 + ], + "declarations": [ + { + "constant": false, + "id": 9114, + "mutability": "mutable", + "name": "totalQuoteCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9174, + "src": "3071:25:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3071:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9117, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9115, + "name": "getTotalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9604, + "src": "3099:20:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 9116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3099:22:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3071:50:26" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9118, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "3136:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 9119, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "3154:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3136:45:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 9141, + "nodeType": "Block", + "src": "3378:70:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9137, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "3392:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9138, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "3422:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3392:45:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9140, + "nodeType": "ExpressionStatement", + "src": "3392:45:26" + } + ] + }, + "id": 9142, + "nodeType": "IfStatement", + "src": "3132:316:26", + "trueBody": { + "id": 9136, + "nodeType": "Block", + "src": "3183:189:26", + "statements": [ + { + "assignments": [ + 9122 + ], + "declarations": [ + { + "constant": false, + "id": 9122, + "mutability": "mutable", + "name": "spareQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9136, + "src": "3197:18:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3197:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9127, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9125, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "3238:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9123, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "3218:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3218:19:26", + "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": 9126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3218:48:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3197:69:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9128, + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9473, + "src": "3280:28:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9131, + "name": "spareQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9122, + "src": "3332:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9132, + "name": "totalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9109, + "src": "3344:16:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9129, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3311:11:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 9130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "3311:20:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 9133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3311:50:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3280:81:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9135, + "nodeType": "ExpressionStatement", + "src": "3280:81:26" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9143, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "3462:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 9144, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "3479:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3462:43:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 9166, + "nodeType": "Block", + "src": "3699:68:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9162, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "3713:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9163, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "3742:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3713:43:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9165, + "nodeType": "ExpressionStatement", + "src": "3713:43:26" + } + ] + }, + "id": 9167, + "nodeType": "IfStatement", + "src": "3458:309:26", + "trueBody": { + "id": 9161, + "nodeType": "Block", + "src": "3507:186:26", + "statements": [ + { + "assignments": [ + 9147 + ], + "declarations": [ + { + "constant": false, + "id": 9147, + "mutability": "mutable", + "name": "spareBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9161, + "src": "3521:17:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3521:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9152, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9150, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "3560:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9148, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "3541:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3541:18:26", + "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": 9151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3541:46:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3521:66:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9153, + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9475, + "src": "3601:28:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9156, + "name": "spareBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9147, + "src": "3653:9:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9157, + "name": "totalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9114, + "src": "3664:17:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9154, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "3632:11:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 9155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "divFloor", + "nodeType": "MemberAccess", + "referencedDeclaration": 11059, + "src": "3632:20:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 9158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3632:50:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3601:81:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9160, + "nodeType": "ExpressionStatement", + "src": "3601:81:26" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 9172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9168, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "3777:10:26", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9169, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "3790:5:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 9170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "3790:13:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 9171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3790:17:26", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "3777:30:26", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 9173, + "nodeType": "ExpressionStatement", + "src": "3777:30:26" + } + ] + }, + "documentation": null, + "functionSelector": "648a4fac", + "id": 9175, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9088, + "modifierName": { + "argumentTypes": null, + "id": 9087, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "2844:9:26", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2844:9:26" + }, + { + "arguments": null, + "id": 9090, + "modifierName": { + "argumentTypes": null, + "id": 9089, + "name": "notClosed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9506, + "src": "2854:9:26", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2854:9:26" + } + ], + "name": "finalSettlement", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9086, + "nodeType": "ParameterList", + "parameters": [], + "src": "2832:2:26" + }, + "returnParameters": { + "id": 9091, + "nodeType": "ParameterList", + "parameters": [], + "src": "2864:0:26" + }, + "scope": 9396, + "src": "2808:1006:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9329, + "nodeType": "Block", + "src": "3922:1343:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9181, + "name": "_CLOSED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9425, + "src": "3940:8:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f4e4f545f434c4f534544", + "id": 9182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3950:17:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fdecdbea6b0a4c5263013d9193a4b5225e5c7851ff0e83a8bf5860fa4ea7f6f6", + "typeString": "literal_string \"DODO_NOT_CLOSED\"" + }, + "value": "DODO_NOT_CLOSED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fdecdbea6b0a4c5263013d9193a4b5225e5c7851ff0e83a8bf5860fa4ea7f6f6", + "typeString": "literal_string \"DODO_NOT_CLOSED\"" + } + ], + "id": 9180, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3932:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3932:36:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9184, + "nodeType": "ExpressionStatement", + "src": "3932:36:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3986:22:26", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9186, + "name": "_CLAIMED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9479, + "src": "3987:9:26", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 9189, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9187, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3997:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3997:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3987:21:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414c52454144595f434c41494d4544", + "id": 9191, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4010:17:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fc7a4f08369e04191e5d601ef52230a181560bfbd7431497090a8eabc5119861", + "typeString": "literal_string \"ALREADY_CLAIMED\"" + }, + "value": "ALREADY_CLAIMED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fc7a4f08369e04191e5d601ef52230a181560bfbd7431497090a8eabc5119861", + "typeString": "literal_string \"ALREADY_CLAIMED\"" + } + ], + "id": 9185, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3978:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3978:50:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9193, + "nodeType": "ExpressionStatement", + "src": "3978:50:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9194, + "name": "_CLAIMED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9479, + "src": "4038:9:26", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 9197, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9195, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4048:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4048:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4038:21:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9198, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4062:4:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4038:28:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9200, + "nodeType": "ExpressionStatement", + "src": "4038:28:26" + }, + { + "assignments": [ + 9202 + ], + "declarations": [ + { + "constant": false, + "id": 9202, + "mutability": "mutable", + "name": "quoteCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9329, + "src": "4077:20:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4077:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9207, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9204, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4125:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4125:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 9203, + "name": "getQuoteCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9592, + "src": "4100:24:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 9206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4100:36:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4077:59:26" + }, + { + "assignments": [ + 9209 + ], + "declarations": [ + { + "constant": false, + "id": 9209, + "mutability": "mutable", + "name": "baseCapital", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9329, + "src": "4146:19:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9208, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4146:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9214, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9211, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4192:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4192:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 9210, + "name": "getBaseCapitalBalanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9565, + "src": "4168:23:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 9213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4168:35:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4146:57:26" + }, + { + "assignments": [ + 9216 + ], + "declarations": [ + { + "constant": false, + "id": 9216, + "mutability": "mutable", + "name": "quoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9329, + "src": "4214:19:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4214:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9218, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 9217, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4236:1:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4214:23:26" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9219, + "name": "quoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9202, + "src": "4251:12:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4266:1:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4251:16:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9234, + "nodeType": "IfStatement", + "src": "4247:134:26", + "trueBody": { + "id": 9233, + "nodeType": "Block", + "src": "4269:112:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9222, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9216, + "src": "4283:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9228, + "name": "getTotalQuoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9604, + "src": "4347:20:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 9229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4347:22:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9225, + "name": "quoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9202, + "src": "4329:12:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9223, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4297:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "4297:31:26", + "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": 9226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4297:45:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "4297:49:26", + "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": 9230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4297:73:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4283:87:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9232, + "nodeType": "ExpressionStatement", + "src": "4283:87:26" + } + ] + } + }, + { + "assignments": [ + 9236 + ], + "declarations": [ + { + "constant": false, + "id": 9236, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9329, + "src": "4390:18:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9235, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9238, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 9237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4411:1:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4390:22:26" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9239, + "name": "baseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9209, + "src": "4426:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4440:1:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4426:15:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9254, + "nodeType": "IfStatement", + "src": "4422:129:26", + "trueBody": { + "id": 9253, + "nodeType": "Block", + "src": "4443:108:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9242, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9236, + "src": "4457:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9248, + "name": "getTotalBaseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "4518:19:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 9249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4518:21:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9245, + "name": "baseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9209, + "src": "4501:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9243, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "4470:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "4470:30:26", + "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": 9246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4470:43:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "4470:47:26", + "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": 9250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4470:70:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4457:83:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9252, + "nodeType": "ExpressionStatement", + "src": "4457:83:26" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 9260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9255, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4561:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9258, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9216, + "src": "4623:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9256, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4591:27:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4591:31:26", + "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": 9259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4591:44:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4561:74:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9261, + "nodeType": "ExpressionStatement", + "src": "4561:74:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9262, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "4645:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9265, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9236, + "src": "4705:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9263, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "4674:26:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4674:30:26", + "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": 9266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4674:42:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4645:71:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9268, + "nodeType": "ExpressionStatement", + "src": "4645:71:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9269, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9216, + "src": "4727:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9274, + "name": "baseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9209, + "src": "4773:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9275, + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9473, + "src": "4786:28:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9272, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "4757:11:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 9273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "4757:15:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 9276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4757:58:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9270, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9216, + "src": "4741:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4741:15:26", + "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": 9277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4741:75:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4727:89:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9279, + "nodeType": "ExpressionStatement", + "src": "4727:89:26" + }, + { + "expression": { + "argumentTypes": null, + "id": 9289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9280, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9236, + "src": "4826:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9285, + "name": "quoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9202, + "src": "4870:12:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9286, + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9475, + "src": "4884:28:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9283, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "4854:11:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 9284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "4854:15:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 9287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4854:59:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9281, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9236, + "src": "4839:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4839:14:26", + "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": 9288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4839:75:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4826:88:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9290, + "nodeType": "ExpressionStatement", + "src": "4826:88:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4947:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4947:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9294, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9236, + "src": "4959:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9291, + "name": "_baseTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8990, + "src": "4925:21:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4925:45:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9296, + "nodeType": "ExpressionStatement", + "src": "4925:45:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9298, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5003:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5003:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9300, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9216, + "src": "5015:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9297, + "name": "_quoteTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9013, + "src": "4980:22:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4980:47:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9302, + "nodeType": "ExpressionStatement", + "src": "4980:47:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9307, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5078:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5078:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9309, + "name": "baseCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9209, + "src": "5090:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9304, + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9469, + "src": "5051:20:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9303, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "5038:12:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 9305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5038:34:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 9306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 10523, + "src": "5038:39:26", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 9310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5038:64:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9311, + "nodeType": "ExpressionStatement", + "src": "5038:64:26" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9316, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5153:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5153:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9318, + "name": "quoteCapital", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9202, + "src": "5165:12:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9313, + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9471, + "src": "5125:21:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9312, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "5112:12:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 9314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5112:35:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 9315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 10523, + "src": "5112:40:26", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 9319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5112:66:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9320, + "nodeType": "ExpressionStatement", + "src": "5112:66:26" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9322, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5206:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5206:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9324, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9236, + "src": "5218:10:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9325, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9216, + "src": "5230:11:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9321, + "name": "ClaimAssets", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8893, + "src": "5194:11:26", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 9326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5194:48:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9327, + "nodeType": "EmitStatement", + "src": "5189:53:26" + }, + { + "expression": null, + "functionReturnParameters": 9179, + "id": 9328, + "nodeType": "Return", + "src": "5252:7:26" + } + ] + }, + "documentation": null, + "functionSelector": "1f3c156e", + "id": 9330, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9178, + "modifierName": { + "argumentTypes": null, + "id": 9177, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "3905:16:26", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3905:16:26" + } + ], + "name": "claimAssets", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9176, + "nodeType": "ParameterList", + "parameters": [], + "src": "3893:2:26" + }, + "returnParameters": { + "id": 9179, + "nodeType": "ParameterList", + "parameters": [], + "src": "3922:0:26" + }, + "scope": 9396, + "src": "3873:1392:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9394, + "nodeType": "Block", + "src": "5392:513:26", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9339, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9332, + "src": "5406:5:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 9340, + "name": "_BASE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9447, + "src": "5415:12:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5406:21:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9361, + "nodeType": "IfStatement", + "src": "5402:214:26", + "trueBody": { + "id": 9360, + "nodeType": "Block", + "src": "5429:187:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9349, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5507:4:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + ], + "id": 9348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5499:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 9347, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5499:7:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 9350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5499:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9344, + "name": "_BASE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9447, + "src": "5475:12:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9343, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5468:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 9345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5468:20:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 9346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "5468:30:26", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 9351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5468:45:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9354, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9334, + "src": "5536:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9352, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "5517:14:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5517:18:26", + "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": 9355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5517:26:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5468:75:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f424153455f42414c414e43455f4e4f545f454e4f554748", + "id": 9357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5561:30:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + }, + "value": "DODO_BASE_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_997068fbd59291c0e94aa73a95de3c076c00f04014e63bef27a7316bb88c0e69", + "typeString": "literal_string \"DODO_BASE_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 9342, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5443:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5443:162:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9359, + "nodeType": "ExpressionStatement", + "src": "5443:162:26" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9362, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9332, + "src": "5629:5:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 9363, + "name": "_QUOTE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9449, + "src": "5638:13:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5629:22:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9384, + "nodeType": "IfStatement", + "src": "5625:218:26", + "trueBody": { + "id": 9383, + "nodeType": "Block", + "src": "5653:190:26", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9372, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5732:4:26", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + ], + "id": 9371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5724:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 9370, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5724:7:26", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 9373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5724:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9367, + "name": "_QUOTE_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9449, + "src": "5699:13:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9366, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5692:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 9368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5692:21:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 9369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "5692:31:26", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 9374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5692:46:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9377, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9334, + "src": "5762:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9375, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "5742:15:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5742:19:26", + "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": 9378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5742:27:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5692:77:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f51554f54455f42414c414e43455f4e4f545f454e4f554748", + "id": 9380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5787:31:26", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_01a080c50343e863e17230c1a9c9900101809eaf44c06794af82120907bb21f5", + "typeString": "literal_string \"DODO_QUOTE_BALANCE_NOT_ENOUGH\"" + }, + "value": "DODO_QUOTE_BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_01a080c50343e863e17230c1a9c9900101809eaf44c06794af82120907bb21f5", + "typeString": "literal_string \"DODO_QUOTE_BALANCE_NOT_ENOUGH\"" + } + ], + "id": 9365, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5667:7:26", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5667:165:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9382, + "nodeType": "ExpressionStatement", + "src": "5667:165:26" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9389, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5879:3:26", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5879:10:26", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9391, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9334, + "src": "5891:6:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9386, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9332, + "src": "5859:5:26", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9385, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5852:6:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 9387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5852:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 9388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "5852:26:26", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 9392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5852:46:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9393, + "nodeType": "ExpressionStatement", + "src": "5852:46:26" + } + ] + }, + "documentation": null, + "functionSelector": "c3a2a665", + "id": 9395, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9337, + "modifierName": { + "argumentTypes": null, + "id": 9336, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11110, + "src": "5382:9:26", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5382:9:26" + } + ], + "name": "retrieve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9332, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9395, + "src": "5342:13:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9331, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5342:7:26", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9334, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9395, + "src": "5357:14:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5357:7:26", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5341:31:26" + }, + "returnParameters": { + "id": 9338, + "nodeType": "ParameterList", + "parameters": [], + "src": "5392:0:26" + }, + "scope": 9396, + "src": "5324:581:26", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 9397, + "src": "560:5347:26" + } + ], + "src": "78:5830:26" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.696Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "Settlement" + }, + "userdoc": { + "methods": {}, + "notice": "Functions for assets settlement" + } +} \ No newline at end of file diff --git a/build-v1/contracts/Storage.json b/build-v1/contracts/Storage.json new file mode 100644 index 0000000..d8945f9 --- /dev/null +++ b/build-v1/contracts/Storage.json @@ -0,0 +1,6490 @@ +{ + "contractName": "Storage", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BUYING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "_CLAIMED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_CLOSED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_BASE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_GAS_PRICE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_K_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_LP_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MAINTAINER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MT_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_ORACLE_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_R_STATUS_", + "outputs": [ + { + "internalType": "enum Types.RStatus", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SELLING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SUPERVISOR_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TRADE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getBaseCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalBaseCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getQuoteCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalQuoteCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_RECEIVE_QUOTE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BUYING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_CLAIMED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_CLOSED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_BASE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_QUOTE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_GAS_PRICE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_K_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_LP_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MAINTAINER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MT_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_ORACLE_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_RECEIVE_BASE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_R_STATUS_\",\"outputs\":[{\"internalType\":\"enum Types.RStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SELLING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SUPERVISOR_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_BASE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_QUOTE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TRADE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getBaseCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOraclePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getQuoteCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalBaseCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalQuoteCapital\",\"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\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"Storage\"},\"userdoc\":{\"methods\":{},\"notice\":\"Local Variables\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol\":\"Storage\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol\":{\"keccak256\":\"0xbf15f2a72d59bbf0ed32b2a24fc4a68d45ffaa60dd2b2c1cc555d03ec1cd2f0a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7289884a2a8939295c4f61aeb7754bd3ce49e9d09188a1eddb762342589f36be\",\"dweb:/ipfs/QmaHYH51wieAyxBDASyHyfYSeu6UJNV7adD3AceeZXCgcZ\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol\":{\"keccak256\":\"0x2183977c7a3cf5aa8d2f56d2167bf59515e34a8e4ebd2402efa85b612631955f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://61766578f8d1bef7f51912a5327e8d4e95e3d9adb509e9486b4e2c8cf179f5e6\",\"dweb:/ipfs/QmXJRK4JKMrJkdn7BFVueoNRixsu26shnX3Dxeb5T9JKK4\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol\":{\"keccak256\":\"0xed4a31155c30a764366aba2244e42406269e59618088f93c02f1b4c9fec9e53c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bd3d50110c9120d942f7713e1cfced848ba7721ea336b2d9c4a87a6eb2a82ca9\",\"dweb:/ipfs/QmTYFeDcAyA2JpfoL1LsGLgj4TeRJxNV1rM27vdcaZSwpF\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":{\"keccak256\":\"0x9a093cbac4e37ed4ee5e27495dae08754bbfec81f7c0ceb57a5a7ac4f362208f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ddd9e5de1c555f0d1232e148fe18574e6adaa348e792844d9011bbd39bf908f\",\"dweb:/ipfs/QmSgZNwPNqCrQC4kJNdwH3iQNasbTfw2cbTtAtNVcpqnYc\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol\":{\"keccak256\":\"0xf462d86a85221f424c5a40f3c0d4a699c72a61b31ed07091ffb0e0b28b3cd137\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3d92b79f4527b3d7812395c41e5d0786309a121b99af3bff5cd7663f7255d335\",\"dweb:/ipfs/QmYkQANWtKsJNHKeD6PrtUFeC3D6uWAxhXjB97eBHwqtzK\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol\":{\"keccak256\":\"0xc9c3fc946350fd72083a9d5b1327ff923533ef37b054bc7b6007562b20b0faaf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fc140417457139fb240427629673bfaf970c5d4568ad1cfe582764c6e4855bbb\",\"dweb:/ipfs/Qmd7ESYe5kyM6NYiSzeFE74f1YGGPXzpdVd5qnYg2AvgH8\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol\":{\"keccak256\":\"0x0aebcc897b4de833e87e46a11e5a70d2b6e1d2fd99ebdf9e32e6421924f18b15\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a1098dace4f0664b0e3f5c3b6ce535ad2aba52e68fb6d1ea94b09debc06ed33c\",\"dweb:/ipfs/QmRbiq7M3Y8utAXaPWmVooGmoYF27N5dKVn6QYTaDFwqdP\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610937806100206000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80637c9b8e8911610130578063c0ffa178116100b8578063dd58b41c1161007c578063dd58b41c14610381578063eab5d20e14610389578063ec2fd46d14610391578063f2fde38b14610399578063f67ed448146103ac57610227565b8063c0ffa17814610359578063c5bbffe814610361578063c6b73cf914610369578063d4b9704614610371578063d689107c1461037957610227565b8063a3161a56116100ff578063a3161a5614610331578063a598aca714610339578063ab44a7a314610341578063ac1fbc9814610349578063b2094fd31461035157610227565b80637c9b8e89146103115780638456db15146103195780638ff5e742146103215780639b020fba1461032957610227565b80634a248d2a116101b357806368be20ad1161018257806368be20ad146102c65780636ec6a58d146102e657806373a2ab7c146102ee578063796da7af146102f65780637aed942d146102fe57610227565b80634a248d2a146102a45780634de4527e146102ac5780634e71e0c8146102b457806354fd4d50146102be57610227565b806317be952e116101fa57806317be952e1461026f578063245c9685146102845780632aa82c651461028c5780633960f142146102945780634322ec831461029c57610227565b80630cd1667d1461022c5780630e6518e91461024a57806316048bc4146102525780631769ddaa14610267575b600080fd5b6102346103bf565b60405161024191906108f8565b60405180910390f35b610234610441565b61025a610447565b6040516102419190610854565b610234610456565b61027761045c565b6040516102419190610873565b610234610465565b61023461046b565b61025a6104b0565b61025a6104bf565b61025a6104ce565b6102346104dd565b6102bc6104e3565b005b61023461057a565b6102d96102d436600461080e565b61057f565b6040516102419190610868565b6102d9610594565b61025a6105a4565b6102346105b3565b61023461030c36600461080e565b6105f8565b61023461067f565b61025a610685565b6102d9610694565b6102346106a2565b6102d96106a8565b6102d96106b1565b6102346106c1565b61025a6106c7565b6102346106d6565b6102346106dc565b6102d96106e2565b6102346106f2565b61025a6106f8565b61025a610707565b6102d9610716565b610234610726565b61023461072c565b6102bc6103a736600461080e565b610732565b6102346103ba36600461080e565b6107dd565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561040457600080fd5b505afa158015610418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043c919061083c565b905090565b60165481565b6000546001600160a01b031681565b60055481565b600e5460ff1681565b60105481565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561040457600080fd5b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b031633146105165760405162461bcd60e51b815260040161050d90610887565b60405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561040457600080fd5b6013546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610629908590600401610854565b60206040518083038186803b15801561064157600080fd5b505afa158015610655573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610679919061083c565b92915050565b60125481565b6001546001600160a01b031681565b600354610100900460ff1681565b60045481565b60035460ff1681565b600154600160c01b900460ff1681565b600b5481565b6014546001600160a01b031681565b600f5481565b600c5481565b600154600160b81b900460ff1681565b60155481565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b60115481565b600d5481565b6000546001600160a01b0316331461075c5760405162461bcd60e51b815260040161050d906108d5565b6001600160a01b0381166107825760405162461bcd60e51b815260040161050d906108ae565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610629908590600401610854565b60006020828403121561081f578081fd5b81356001600160a01b0381168114610835578182fd5b9392505050565b60006020828403121561084d578081fd5b5051919050565b6001600160a01b0391909116815260200190565b901515815260200190565b602081016003831061088157fe5b91905290565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b9081526020019056fea2646970667358221220de85d30714b6ff26479b2b7380794f9558de8935208fe987a8e942c67d0d78b064736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102275760003560e01c80637c9b8e8911610130578063c0ffa178116100b8578063dd58b41c1161007c578063dd58b41c14610381578063eab5d20e14610389578063ec2fd46d14610391578063f2fde38b14610399578063f67ed448146103ac57610227565b8063c0ffa17814610359578063c5bbffe814610361578063c6b73cf914610369578063d4b9704614610371578063d689107c1461037957610227565b8063a3161a56116100ff578063a3161a5614610331578063a598aca714610339578063ab44a7a314610341578063ac1fbc9814610349578063b2094fd31461035157610227565b80637c9b8e89146103115780638456db15146103195780638ff5e742146103215780639b020fba1461032957610227565b80634a248d2a116101b357806368be20ad1161018257806368be20ad146102c65780636ec6a58d146102e657806373a2ab7c146102ee578063796da7af146102f65780637aed942d146102fe57610227565b80634a248d2a146102a45780634de4527e146102ac5780634e71e0c8146102b457806354fd4d50146102be57610227565b806317be952e116101fa57806317be952e1461026f578063245c9685146102845780632aa82c651461028c5780633960f142146102945780634322ec831461029c57610227565b80630cd1667d1461022c5780630e6518e91461024a57806316048bc4146102525780631769ddaa14610267575b600080fd5b6102346103bf565b60405161024191906108f8565b60405180910390f35b610234610441565b61025a610447565b6040516102419190610854565b610234610456565b61027761045c565b6040516102419190610873565b610234610465565b61023461046b565b61025a6104b0565b61025a6104bf565b61025a6104ce565b6102346104dd565b6102bc6104e3565b005b61023461057a565b6102d96102d436600461080e565b61057f565b6040516102419190610868565b6102d9610594565b61025a6105a4565b6102346105b3565b61023461030c36600461080e565b6105f8565b61023461067f565b61025a610685565b6102d9610694565b6102346106a2565b6102d96106a8565b6102d96106b1565b6102346106c1565b61025a6106c7565b6102346106d6565b6102346106dc565b6102d96106e2565b6102346106f2565b61025a6106f8565b61025a610707565b6102d9610716565b610234610726565b61023461072c565b6102bc6103a736600461080e565b610732565b6102346103ba36600461080e565b6107dd565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561040457600080fd5b505afa158015610418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061043c919061083c565b905090565b60165481565b6000546001600160a01b031681565b60055481565b600e5460ff1681565b60105481565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561040457600080fd5b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b031633146105165760405162461bcd60e51b815260040161050d90610887565b60405180910390fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561040457600080fd5b6013546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610629908590600401610854565b60206040518083038186803b15801561064157600080fd5b505afa158015610655573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610679919061083c565b92915050565b60125481565b6001546001600160a01b031681565b600354610100900460ff1681565b60045481565b60035460ff1681565b600154600160c01b900460ff1681565b600b5481565b6014546001600160a01b031681565b600f5481565b600c5481565b600154600160b81b900460ff1681565b60155481565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b60115481565b600d5481565b6000546001600160a01b0316331461075c5760405162461bcd60e51b815260040161050d906108d5565b6001600160a01b0381166107825760405162461bcd60e51b815260040161050d906108ae565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610629908590600401610854565b60006020828403121561081f578081fd5b81356001600160a01b0381168114610835578182fd5b9392505050565b60006020828403121561084d578081fd5b5051919050565b6001600160a01b0391909116815260200190565b901515815260200190565b602081016003831061088157fe5b91905290565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b9081526020019056fea2646970667358221220de85d30714b6ff26479b2b7380794f9558de8935208fe987a8e942c67d0d78b064736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "586:2936:27:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "586:2936:27:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2949:133;;;:::i;:::-;;;;;;;;;;;;;;;;2006:43;;;:::i;264:22:37:-;;;:::i;:::-;;;;;;;;1112:36:27;;;:::i;1604:31::-;;;:::i;:::-;;;;;;;;1688:42;;;:::i;3243:135::-;;;:::i;1202:27::-;;;:::i;1271:::-;;;:::i;1352:::-;;;:::i;912:32::-;;;:::i;963:225:37:-;;;:::i;:::-;;3433:87:27;;;:::i;2055:41::-;;;;;;;;;:::i;:::-;;;;;;;;772:20;;;:::i;1419:23::-;;;:::i;2682:108::-;;;:::i;2796:147::-;;;;;;;;;:::i;1771:30::-;;;:::i;292:26:37:-;;;:::i;1036:29:27:-;;;:::i;1071:35::-;;;:::i;1002:28::-;;;:::i;839:34::-;;;:::i;1511:28::-;;;:::i;1849:36::-;;;:::i;1641:41::-;;;:::i;1545:28::-;;;:::i;798:35::-;;;:::i;1957:43::-;;;:::i;1385:28::-;;;:::i;1808:35::-;;;:::i;879:27::-;;;:::i;1736:29::-;;;:::i;1579:18::-;;;:::i;737:220:37:-;;;;;;;;;:::i;3088:149:27:-;;;;;;;;;:::i;2949:133::-;3040:20;;3027:48;;;-1:-1:-1;;;3027:48:27;;;;3001:7;;-1:-1:-1;;;;;3040:20:27;;3027:46;;:48;;;;;;;;;;;;;;3040:20;3027:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:55;;2949:133;:::o;2006:43::-;;;;:::o;264:22:37:-;;;-1:-1:-1;;;;;264:22:37;;:::o;1112:36:27:-;;;;:::o;1604:31::-;;;;;;:::o;1688:42::-;;;;:::o;3243:135::-;3335:21;;3322:49;;;-1:-1:-1;;;3322:49:27;;;;3296:7;;-1:-1:-1;;;;;3335:21:27;;3322:47;;:49;;;;;;;;;;;;;;3335:21;3322:49;;;;;;;;;;1202:27;;;-1:-1:-1;;;;;1202:27:27;;:::o;1271:::-;;;-1:-1:-1;;;;;1271:27:27;;:::o;1352:::-;;;-1:-1:-1;;;;;1352:27:27;;:::o;912:32::-;;;;:::o;963:225:37:-;1030:11;;-1:-1:-1;;;;;1030:11:37;1016:10;:25;1008:51;;;;-1:-1:-1;;;1008:51:37;;;;;;;;;;;;;;;;;1104:11;;;1095:7;;1074:42;;-1:-1:-1;;;;;1104:11:37;;;;1095:7;;;;1074:42;;;1136:11;;;;1126:21;;-1:-1:-1;;;;;;1126:21:37;;;-1:-1:-1;;;;;1136:11:37;;1126:21;;;;1157:24;;;963:225::o;3433:87:27:-;3501:3;3433:87;:::o;2055:41::-;;;;;;;;;;;;;;;:::o;772:20::-;;;-1:-1:-1;;;772:20:27;;;;;:::o;1419:23::-;;;-1:-1:-1;;;;;1419:23:27;;:::o;2682:108::-;2763:8;;2755:28;;;-1:-1:-1;;;2755:28:27;;;;2729:7;;-1:-1:-1;;;;;2763:8:27;;2755:26;;:28;;;;;;;;;;;;;;2763:8;2755:28;;;;;;;;;;2796:147;2901:20;;2888:48;;-1:-1:-1;;;2888:48:27;;2862:7;;-1:-1:-1;;;;;2901:20:27;;2888:44;;:48;;2933:2;;2888:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2881:55;2796:147;-1:-1:-1;;2796:147:27:o;1771:30::-;;;;:::o;292:26:37:-;;;-1:-1:-1;;;;;292:26:37;;:::o;1036:29:27:-;;;;;;;;;:::o;1071:35::-;;;;:::o;1002:28::-;;;;;;:::o;839:34::-;;;-1:-1:-1;;;839:34:27;;;;;:::o;1511:28::-;;;;:::o;1849:36::-;;;-1:-1:-1;;;;;1849:36:27;;:::o;1641:41::-;;;;:::o;1545:28::-;;;;:::o;798:35::-;;;-1:-1:-1;;;798:35:27;;;;;:::o;1957:43::-;;;;:::o;1385:28::-;;;-1:-1:-1;;;;;1385:28:27;;:::o;1808:35::-;;;-1:-1:-1;;;;;1808:35:27;;:::o;879:27::-;;;-1:-1:-1;;;879:27:27;;;;;:::o;1736:29::-;;;;:::o;1579:18::-;;;;:::o;737:220:37:-;648:7;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;-1:-1:-1;;;;;819:22:37;::::1;811:48;;;;-1:-1:-1::0;;;811:48:37::1;;;;;;;;;900:7;::::0;;874:44:::1;::::0;-1:-1:-1;;;;;874:44:37;;::::1;::::0;900:7;::::1;::::0;874:44:::1;::::0;::::1;928:11;:22:::0;;-1:-1:-1;;;;;;928:22:37::1;-1:-1:-1::0;;;;;928:22:37;;;::::1;::::0;;;::::1;::::0;;737:220::o;3088:149:27:-;3194:21;;3181:49;;-1:-1:-1;;;3181:49:27;;3155:7;;-1:-1:-1;;;;;3194:21:27;;3181:45;;:49;;3227:2;;3181:49;;;;283:241:-1;;387:2;375:9;366:7;362:23;358:32;355:2;;;-1:-1;;393:12;355:2;72:20;;-1:-1;;;;;5026:54;;5480:35;;5470:2;;-1:-1;;5519:12;5470:2;445:63;349:175;-1:-1;;;349:175;531:263;;646:2;634:9;625:7;621:23;617:32;614:2;;;-1:-1;;652:12;614:2;-1:-1;220:13;;608:186;-1:-1;608:186;2268:222;-1:-1;;;;;5026:54;;;;872:37;;2395:2;2380:18;;2366:124;2497:210;4799:13;;4792:21;986:34;;2618:2;2603:18;;2589:118;2714:244;2852:2;2837:18;;5392:1;5382:12;;5372:2;;5398:9;5372:2;1114:61;;;2823:135;;2965:416;3165:2;3179:47;;;1412:2;3150:18;;;4567:19;-1:-1;;;4607:14;;;1428:36;1483:12;;;3136:245;3388:416;3588:2;3602:47;;;1734:2;3573:18;;;4567:19;-1:-1;;;4607:14;;;1750:36;1805:12;;;3559:245;3811:416;4011:2;4025:47;;;2056:1;3996:18;;;4567:19;-1:-1;;;4607:14;;;2071:32;2122:12;;;3982:245;4234:222;2219:37;;;4361:2;4346:18;;4332:124", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {InitializableOwnable} from \"../lib/InitializableOwnable.sol\";\nimport {SafeMath} from \"../lib/SafeMath.sol\";\nimport {DecimalMath} from \"../lib/DecimalMath.sol\";\nimport {ReentrancyGuard} from \"../lib/ReentrancyGuard.sol\";\nimport {IOracle} from \"../intf/IOracle.sol\";\nimport {IDODOLpToken} from \"../intf/IDODOLpToken.sol\";\nimport {Types} from \"../lib/Types.sol\";\n\n\n/**\n * @title Storage\n * @author DODO Breeder\n *\n * @notice Local Variables\n */\ncontract Storage is InitializableOwnable, ReentrancyGuard {\n using SafeMath for uint256;\n\n // ============ Variables for Control ============\n\n bool internal _INITIALIZED_;\n bool public _CLOSED_;\n bool public _DEPOSIT_QUOTE_ALLOWED_;\n bool public _DEPOSIT_BASE_ALLOWED_;\n bool public _TRADE_ALLOWED_;\n uint256 public _GAS_PRICE_LIMIT_;\n\n // ============ Advanced Controls ============\n bool public _BUYING_ALLOWED_;\n bool public _SELLING_ALLOWED_;\n uint256 public _BASE_BALANCE_LIMIT_;\n uint256 public _QUOTE_BALANCE_LIMIT_;\n\n // ============ Core Address ============\n\n address public _SUPERVISOR_; // could freeze system in emergency\n address public _MAINTAINER_; // collect maintainer fee to buy food for DODO\n\n address public _BASE_TOKEN_;\n address public _QUOTE_TOKEN_;\n address public _ORACLE_;\n\n // ============ Variables for PMM Algorithm ============\n\n uint256 public _LP_FEE_RATE_;\n uint256 public _MT_FEE_RATE_;\n uint256 public _K_;\n\n Types.RStatus public _R_STATUS_;\n uint256 public _TARGET_BASE_TOKEN_AMOUNT_;\n uint256 public _TARGET_QUOTE_TOKEN_AMOUNT_;\n uint256 public _BASE_BALANCE_;\n uint256 public _QUOTE_BALANCE_;\n\n address public _BASE_CAPITAL_TOKEN_;\n address public _QUOTE_CAPITAL_TOKEN_;\n\n // ============ Variables for Final Settlement ============\n\n uint256 public _BASE_CAPITAL_RECEIVE_QUOTE_;\n uint256 public _QUOTE_CAPITAL_RECEIVE_BASE_;\n mapping(address => bool) public _CLAIMED_;\n\n // ============ Modifiers ============\n\n modifier onlySupervisorOrOwner() {\n require(msg.sender == _SUPERVISOR_ || msg.sender == _OWNER_, \"NOT_SUPERVISOR_OR_OWNER\");\n _;\n }\n\n modifier notClosed() {\n require(!_CLOSED_, \"DODO_CLOSED\");\n _;\n }\n\n // ============ Helper Functions ============\n\n function _checkDODOParameters() internal view returns (uint256) {\n require(_K_ < DecimalMath.ONE, \"K>=1\");\n require(_K_ > 0, \"K=0\");\n require(_LP_FEE_RATE_.add(_MT_FEE_RATE_) < DecimalMath.ONE, \"FEE_RATE>=1\");\n }\n\n function getOraclePrice() public view returns (uint256) {\n return IOracle(_ORACLE_).getPrice();\n }\n\n function getBaseCapitalBalanceOf(address lp) public view returns (uint256) {\n return IDODOLpToken(_BASE_CAPITAL_TOKEN_).balanceOf(lp);\n }\n\n function getTotalBaseCapital() public view returns (uint256) {\n return IDODOLpToken(_BASE_CAPITAL_TOKEN_).totalSupply();\n }\n\n function getQuoteCapitalBalanceOf(address lp) public view returns (uint256) {\n return IDODOLpToken(_QUOTE_CAPITAL_TOKEN_).balanceOf(lp);\n }\n\n function getTotalQuoteCapital() public view returns (uint256) {\n return IDODOLpToken(_QUOTE_CAPITAL_TOKEN_).totalSupply();\n }\n\n // ============ Version Control ============\n function version() external pure returns (uint256) {\n return 101; // 1.0.1\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "exportedSymbols": { + "Storage": [ + 9613 + ] + }, + "id": 9614, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9398, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:27" + }, + { + "id": 9399, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:27" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol", + "file": "../lib/InitializableOwnable.sol", + "id": 9401, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 11167, + "src": "136:69:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9400, + "name": "InitializableOwnable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:20:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 9403, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 11624, + "src": "206:45:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9402, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "214:8:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 9405, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 11079, + "src": "252:51:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9404, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "260:11:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol", + "file": "../lib/ReentrancyGuard.sol", + "id": 9407, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 11297, + "src": "304:59:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9406, + "name": "ReentrancyGuard", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "312:15:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol", + "file": "../intf/IOracle.sol", + "id": 9409, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 10617, + "src": "364:44:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9408, + "name": "IOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "372:7:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol", + "file": "../intf/IDODOLpToken.sol", + "id": 9411, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 10537, + "src": "409:54:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9410, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "417:12:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "file": "../lib/Types.sol", + "id": 9413, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 11632, + "src": "464:39:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9412, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "472:5:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9415, + "name": "InitializableOwnable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11166, + "src": "606:20:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_InitializableOwnable_$11166", + "typeString": "contract InitializableOwnable" + } + }, + "id": 9416, + "nodeType": "InheritanceSpecifier", + "src": "606:20:27" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9417, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11296, + "src": "628:15:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$11296", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 9418, + "nodeType": "InheritanceSpecifier", + "src": "628:15:27" + } + ], + "contractDependencies": [ + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 9414, + "nodeType": "StructuredDocumentation", + "src": "506:79:27", + "text": " @title Storage\n @author DODO Breeder\n @notice Local Variables" + }, + "fullyImplemented": true, + "id": 9613, + "linearizedBaseContracts": [ + 9613, + 11296, + 11166 + ], + "name": "Storage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 9421, + "libraryName": { + "contractScope": null, + "id": 9419, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "656:8:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "650:27:27", + "typeName": { + "id": 9420, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "669:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 9423, + "mutability": "mutable", + "name": "_INITIALIZED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "739:27:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9422, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "739:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "functionSelector": "6ec6a58d", + "id": 9425, + "mutability": "mutable", + "name": "_CLOSED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "772:20:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9424, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "772:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "c5bbffe8", + "id": 9427, + "mutability": "mutable", + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "798:35:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9426, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "798:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "a598aca7", + "id": 9429, + "mutability": "mutable", + "name": "_DEPOSIT_BASE_ALLOWED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "839:34:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9428, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "839:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd58b41c", + "id": 9431, + "mutability": "mutable", + "name": "_TRADE_ALLOWED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "879:27:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9430, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "879:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "4de4527e", + "id": 9433, + "mutability": "mutable", + "name": "_GAS_PRICE_LIMIT_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "912:32:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "912:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "a3161a56", + "id": 9435, + "mutability": "mutable", + "name": "_BUYING_ALLOWED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1002:28:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9434, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1002:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "8ff5e742", + "id": 9437, + "mutability": "mutable", + "name": "_SELLING_ALLOWED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1036:29:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9436, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1036:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "9b020fba", + "id": 9439, + "mutability": "mutable", + "name": "_BASE_BALANCE_LIMIT_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1071:35:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1071:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "1769ddaa", + "id": 9441, + "mutability": "mutable", + "name": "_QUOTE_BALANCE_LIMIT_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1112:36:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1112:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3960f142", + "id": 9443, + "mutability": "mutable", + "name": "_SUPERVISOR_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1202:27:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1202:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "4322ec83", + "id": 9445, + "mutability": "mutable", + "name": "_MAINTAINER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1271:27:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1271:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "4a248d2a", + "id": 9447, + "mutability": "mutable", + "name": "_BASE_TOKEN_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1352:27:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1352:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d4b97046", + "id": 9449, + "mutability": "mutable", + "name": "_QUOTE_TOKEN_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1385:28:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9448, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1385:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "73a2ab7c", + "id": 9451, + "mutability": "mutable", + "name": "_ORACLE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1419:23:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9450, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1419:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ab44a7a3", + "id": 9453, + "mutability": "mutable", + "name": "_LP_FEE_RATE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1511:28:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "c0ffa178", + "id": 9455, + "mutability": "mutable", + "name": "_MT_FEE_RATE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1545:28:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1545:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ec2fd46d", + "id": 9457, + "mutability": "mutable", + "name": "_K_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1579:18:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9456, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1579:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "17be952e", + "id": 9459, + "mutability": "mutable", + "name": "_R_STATUS_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1604:31:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "typeName": { + "contractScope": null, + "id": 9458, + "name": "Types.RStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11630, + "src": "1604:13:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "b2094fd3", + "id": 9461, + "mutability": "mutable", + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1641:41:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9460, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1641:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "245c9685", + "id": 9463, + "mutability": "mutable", + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1688:42:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1688:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "eab5d20e", + "id": 9465, + "mutability": "mutable", + "name": "_BASE_BALANCE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1736:29:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1736:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7c9b8e89", + "id": 9467, + "mutability": "mutable", + "name": "_QUOTE_BALANCE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1771:30:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1771:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d689107c", + "id": 9469, + "mutability": "mutable", + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1808:35:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9468, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1808:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ac1fbc98", + "id": 9471, + "mutability": "mutable", + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1849:36:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1849:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "c6b73cf9", + "id": 9473, + "mutability": "mutable", + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1957:43:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9472, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1957:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0e6518e9", + "id": 9475, + "mutability": "mutable", + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "2006:43:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2006:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "68be20ad", + "id": 9479, + "mutability": "mutable", + "name": "_CLAIMED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "2055:41:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 9478, + "keyType": { + "id": 9476, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2063:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2055:24:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 9477, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2074:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 9495, + "nodeType": "Block", + "src": "2180:115:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9482, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2198:3:27", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2198:10:27", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 9484, + "name": "_SUPERVISOR_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9443, + "src": "2212:12:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2198:26:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9486, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2228:3:27", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2228:10:27", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 9488, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "2242:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2228:21:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2198:51:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f53555045525649534f525f4f525f4f574e4552", + "id": 9491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2251:25:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_716afe251bc9bae4f6e9638d04b57f9f66445d4c3374ff04a93247ab41abac9a", + "typeString": "literal_string \"NOT_SUPERVISOR_OR_OWNER\"" + }, + "value": "NOT_SUPERVISOR_OR_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_716afe251bc9bae4f6e9638d04b57f9f66445d4c3374ff04a93247ab41abac9a", + "typeString": "literal_string \"NOT_SUPERVISOR_OR_OWNER\"" + } + ], + "id": 9481, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2190:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2190:87:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9493, + "nodeType": "ExpressionStatement", + "src": "2190:87:27" + }, + { + "id": 9494, + "nodeType": "PlaceholderStatement", + "src": "2287:1:27" + } + ] + }, + "documentation": null, + "id": 9496, + "name": "onlySupervisorOrOwner", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 9480, + "nodeType": "ParameterList", + "parameters": [], + "src": "2177:2:27" + }, + "src": "2147:148:27", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9505, + "nodeType": "Block", + "src": "2322:61:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2340:9:27", + "subExpression": { + "argumentTypes": null, + "id": 9499, + "name": "_CLOSED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9425, + "src": "2341:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f434c4f534544", + "id": 9501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2351:13:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b376000e0a4ab5aa456645b38033c091a45a656f290df894531d9e6e6accb956", + "typeString": "literal_string \"DODO_CLOSED\"" + }, + "value": "DODO_CLOSED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b376000e0a4ab5aa456645b38033c091a45a656f290df894531d9e6e6accb956", + "typeString": "literal_string \"DODO_CLOSED\"" + } + ], + "id": 9498, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2332:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2332:33:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9503, + "nodeType": "ExpressionStatement", + "src": "2332:33:27" + }, + { + "id": 9504, + "nodeType": "PlaceholderStatement", + "src": "2375:1:27" + } + ] + }, + "documentation": null, + "id": 9506, + "name": "notClosed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 9497, + "nodeType": "ParameterList", + "parameters": [], + "src": "2319:2:27" + }, + "src": "2301:82:27", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9537, + "nodeType": "Block", + "src": "2504:172:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9512, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "2522:3:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9513, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2528:11:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 9514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "2528:15:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2522:21:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4b3e3d31", + "id": 9516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2545:6:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f32497f7bac148ff47bc1203ad47fe8a0ef22a3fa4552d202153e69a26fe1aad", + "typeString": "literal_string \"K>=1\"" + }, + "value": "K>=1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f32497f7bac148ff47bc1203ad47fe8a0ef22a3fa4552d202153e69a26fe1aad", + "typeString": "literal_string \"K>=1\"" + } + ], + "id": 9511, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2514:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2514:38:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9518, + "nodeType": "ExpressionStatement", + "src": "2514:38:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9520, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "2570:3:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2576:1:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2570:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4b3d30", + "id": 9523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2579:5:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_073372277ec99e9e4cf2a06fd1edb82dafb2feb9157ad05dc9a6b226f860caa8", + "typeString": "literal_string \"K=0\"" + }, + "value": "K=0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_073372277ec99e9e4cf2a06fd1edb82dafb2feb9157ad05dc9a6b226f860caa8", + "typeString": "literal_string \"K=0\"" + } + ], + "id": 9519, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2562:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2562:23:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9525, + "nodeType": "ExpressionStatement", + "src": "2562:23:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9529, + "name": "_MT_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "2621:13:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9527, + "name": "_LP_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "2603:13:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2603:17:27", + "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": 9530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2603:32:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9531, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2638:11:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 9532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "2638:15:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2603:50:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4645455f524154453e3d31", + "id": 9534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2655:13:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c1e25429552344d4cbd26a7a72c34d9ad4ef4370ab35aa3b8f141898b46156fb", + "typeString": "literal_string \"FEE_RATE>=1\"" + }, + "value": "FEE_RATE>=1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c1e25429552344d4cbd26a7a72c34d9ad4ef4370ab35aa3b8f141898b46156fb", + "typeString": "literal_string \"FEE_RATE>=1\"" + } + ], + "id": 9526, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2595:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2595:74:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9536, + "nodeType": "ExpressionStatement", + "src": "2595:74:27" + } + ] + }, + "documentation": null, + "id": 9538, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkDODOParameters", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9507, + "nodeType": "ParameterList", + "parameters": [], + "src": "2469:2:27" + }, + "returnParameters": { + "id": 9510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9509, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9538, + "src": "2495:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2495:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2494:9:27" + }, + "scope": 9613, + "src": "2440:236:27", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9549, + "nodeType": "Block", + "src": "2738:52:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9544, + "name": "_ORACLE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9451, + "src": "2763:8:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9543, + "name": "IOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10616, + "src": "2755:7:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IOracle_$10616_$", + "typeString": "type(contract IOracle)" + } + }, + "id": 9545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2755:17:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$10616", + "typeString": "contract IOracle" + } + }, + "id": 9546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 10615, + "src": "2755:26:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 9547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2755:28:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9542, + "id": 9548, + "nodeType": "Return", + "src": "2748:35:27" + } + ] + }, + "documentation": null, + "functionSelector": "796da7af", + "id": 9550, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getOraclePrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9539, + "nodeType": "ParameterList", + "parameters": [], + "src": "2705:2:27" + }, + "returnParameters": { + "id": 9542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9541, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9550, + "src": "2729:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2729:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2728:9:27" + }, + "scope": 9613, + "src": "2682:108:27", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9564, + "nodeType": "Block", + "src": "2871:72:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9561, + "name": "lp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9552, + "src": "2933:2:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9558, + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9469, + "src": "2901:20:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9557, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "2888:12:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 9559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2888:34:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 9560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10530, + "src": "2888:44:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 9562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2888:48:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9556, + "id": 9563, + "nodeType": "Return", + "src": "2881:55:27" + } + ] + }, + "documentation": null, + "functionSelector": "7aed942d", + "id": 9565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBaseCapitalBalanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9552, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9565, + "src": "2829:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9551, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2829:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2828:12:27" + }, + "returnParameters": { + "id": 9556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9555, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9565, + "src": "2862:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9554, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2862:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2861:9:27" + }, + "scope": 9613, + "src": "2796:147:27", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9576, + "nodeType": "Block", + "src": "3010:72:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9571, + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9469, + "src": "3040:20:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9570, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "3027:12:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 9572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3027:34:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 9573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 10535, + "src": "3027:46:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 9574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3027:48:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9569, + "id": 9575, + "nodeType": "Return", + "src": "3020:55:27" + } + ] + }, + "documentation": null, + "functionSelector": "0cd1667d", + "id": 9577, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTotalBaseCapital", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9566, + "nodeType": "ParameterList", + "parameters": [], + "src": "2977:2:27" + }, + "returnParameters": { + "id": 9569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9568, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9577, + "src": "3001:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9567, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3001:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3000:9:27" + }, + "scope": 9613, + "src": "2949:133:27", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9591, + "nodeType": "Block", + "src": "3164:73:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9588, + "name": "lp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9579, + "src": "3227:2:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9585, + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9471, + "src": "3194:21:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9584, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "3181:12:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 9586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3181:35:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 9587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10530, + "src": "3181:45:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 9589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3181:49:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9583, + "id": 9590, + "nodeType": "Return", + "src": "3174:56:27" + } + ] + }, + "documentation": null, + "functionSelector": "f67ed448", + "id": 9592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getQuoteCapitalBalanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9579, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9592, + "src": "3122:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9578, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3122:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3121:12:27" + }, + "returnParameters": { + "id": 9583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9582, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9592, + "src": "3155:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9581, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3155:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3154:9:27" + }, + "scope": 9613, + "src": "3088:149:27", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9603, + "nodeType": "Block", + "src": "3305:73:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9598, + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9471, + "src": "3335:21:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9597, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "3322:12:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 9599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3322:35:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 9600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 10535, + "src": "3322:47:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 9601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3322:49:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9596, + "id": 9602, + "nodeType": "Return", + "src": "3315:56:27" + } + ] + }, + "documentation": null, + "functionSelector": "2aa82c65", + "id": 9604, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTotalQuoteCapital", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9593, + "nodeType": "ParameterList", + "parameters": [], + "src": "3272:2:27" + }, + "returnParameters": { + "id": 9596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9595, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9604, + "src": "3296:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3296:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3295:9:27" + }, + "scope": 9613, + "src": "3243:135:27", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9611, + "nodeType": "Block", + "src": "3484:36:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "313031", + "id": 9609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3501:3:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_101_by_1", + "typeString": "int_const 101" + }, + "value": "101" + }, + "functionReturnParameters": 9608, + "id": 9610, + "nodeType": "Return", + "src": "3494:10:27" + } + ] + }, + "documentation": null, + "functionSelector": "54fd4d50", + "id": 9612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "version", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9605, + "nodeType": "ParameterList", + "parameters": [], + "src": "3449:2:27" + }, + "returnParameters": { + "id": 9608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9607, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9612, + "src": "3475:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9606, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3475:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3474:9:27" + }, + "scope": 9613, + "src": "3433:87:27", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + } + ], + "scope": 9614, + "src": "586:2936:27" + } + ], + "src": "78:3445:27" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "exportedSymbols": { + "Storage": [ + 9613 + ] + }, + "id": 9614, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9398, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:27" + }, + { + "id": 9399, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:27" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol", + "file": "../lib/InitializableOwnable.sol", + "id": 9401, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 11167, + "src": "136:69:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9400, + "name": "InitializableOwnable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:20:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 9403, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 11624, + "src": "206:45:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9402, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "214:8:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 9405, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 11079, + "src": "252:51:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9404, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "260:11:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol", + "file": "../lib/ReentrancyGuard.sol", + "id": 9407, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 11297, + "src": "304:59:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9406, + "name": "ReentrancyGuard", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "312:15:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol", + "file": "../intf/IOracle.sol", + "id": 9409, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 10617, + "src": "364:44:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9408, + "name": "IOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "372:7:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol", + "file": "../intf/IDODOLpToken.sol", + "id": 9411, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 10537, + "src": "409:54:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9410, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "417:12:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "file": "../lib/Types.sol", + "id": 9413, + "nodeType": "ImportDirective", + "scope": 9614, + "sourceUnit": 11632, + "src": "464:39:27", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9412, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "472:5:27", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9415, + "name": "InitializableOwnable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11166, + "src": "606:20:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_InitializableOwnable_$11166", + "typeString": "contract InitializableOwnable" + } + }, + "id": 9416, + "nodeType": "InheritanceSpecifier", + "src": "606:20:27" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9417, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11296, + "src": "628:15:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$11296", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 9418, + "nodeType": "InheritanceSpecifier", + "src": "628:15:27" + } + ], + "contractDependencies": [ + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 9414, + "nodeType": "StructuredDocumentation", + "src": "506:79:27", + "text": " @title Storage\n @author DODO Breeder\n @notice Local Variables" + }, + "fullyImplemented": true, + "id": 9613, + "linearizedBaseContracts": [ + 9613, + 11296, + 11166 + ], + "name": "Storage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 9421, + "libraryName": { + "contractScope": null, + "id": 9419, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "656:8:27", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "650:27:27", + "typeName": { + "id": 9420, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "669:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 9423, + "mutability": "mutable", + "name": "_INITIALIZED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "739:27:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9422, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "739:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "functionSelector": "6ec6a58d", + "id": 9425, + "mutability": "mutable", + "name": "_CLOSED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "772:20:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9424, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "772:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "c5bbffe8", + "id": 9427, + "mutability": "mutable", + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "798:35:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9426, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "798:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "a598aca7", + "id": 9429, + "mutability": "mutable", + "name": "_DEPOSIT_BASE_ALLOWED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "839:34:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9428, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "839:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd58b41c", + "id": 9431, + "mutability": "mutable", + "name": "_TRADE_ALLOWED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "879:27:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9430, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "879:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "4de4527e", + "id": 9433, + "mutability": "mutable", + "name": "_GAS_PRICE_LIMIT_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "912:32:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "912:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "a3161a56", + "id": 9435, + "mutability": "mutable", + "name": "_BUYING_ALLOWED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1002:28:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9434, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1002:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "8ff5e742", + "id": 9437, + "mutability": "mutable", + "name": "_SELLING_ALLOWED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1036:29:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9436, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1036:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "9b020fba", + "id": 9439, + "mutability": "mutable", + "name": "_BASE_BALANCE_LIMIT_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1071:35:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1071:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "1769ddaa", + "id": 9441, + "mutability": "mutable", + "name": "_QUOTE_BALANCE_LIMIT_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1112:36:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1112:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3960f142", + "id": 9443, + "mutability": "mutable", + "name": "_SUPERVISOR_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1202:27:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1202:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "4322ec83", + "id": 9445, + "mutability": "mutable", + "name": "_MAINTAINER_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1271:27:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1271:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "4a248d2a", + "id": 9447, + "mutability": "mutable", + "name": "_BASE_TOKEN_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1352:27:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9446, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1352:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d4b97046", + "id": 9449, + "mutability": "mutable", + "name": "_QUOTE_TOKEN_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1385:28:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9448, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1385:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "73a2ab7c", + "id": 9451, + "mutability": "mutable", + "name": "_ORACLE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1419:23:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9450, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1419:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ab44a7a3", + "id": 9453, + "mutability": "mutable", + "name": "_LP_FEE_RATE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1511:28:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "c0ffa178", + "id": 9455, + "mutability": "mutable", + "name": "_MT_FEE_RATE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1545:28:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9454, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1545:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ec2fd46d", + "id": 9457, + "mutability": "mutable", + "name": "_K_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1579:18:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9456, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1579:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "17be952e", + "id": 9459, + "mutability": "mutable", + "name": "_R_STATUS_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1604:31:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "typeName": { + "contractScope": null, + "id": 9458, + "name": "Types.RStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11630, + "src": "1604:13:27", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "b2094fd3", + "id": 9461, + "mutability": "mutable", + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1641:41:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9460, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1641:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "245c9685", + "id": 9463, + "mutability": "mutable", + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1688:42:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1688:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "eab5d20e", + "id": 9465, + "mutability": "mutable", + "name": "_BASE_BALANCE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1736:29:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1736:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7c9b8e89", + "id": 9467, + "mutability": "mutable", + "name": "_QUOTE_BALANCE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1771:30:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1771:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d689107c", + "id": 9469, + "mutability": "mutable", + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1808:35:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9468, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1808:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ac1fbc98", + "id": 9471, + "mutability": "mutable", + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1849:36:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1849:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "c6b73cf9", + "id": 9473, + "mutability": "mutable", + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "1957:43:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9472, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1957:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0e6518e9", + "id": 9475, + "mutability": "mutable", + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "2006:43:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2006:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "68be20ad", + "id": 9479, + "mutability": "mutable", + "name": "_CLAIMED_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9613, + "src": "2055:41:27", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 9478, + "keyType": { + "id": 9476, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2063:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2055:24:27", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 9477, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2074:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 9495, + "nodeType": "Block", + "src": "2180:115:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9482, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2198:3:27", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2198:10:27", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 9484, + "name": "_SUPERVISOR_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9443, + "src": "2212:12:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2198:26:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9486, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2228:3:27", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2228:10:27", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 9488, + "name": "_OWNER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11084, + "src": "2242:7:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2228:21:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2198:51:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f53555045525649534f525f4f525f4f574e4552", + "id": 9491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2251:25:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_716afe251bc9bae4f6e9638d04b57f9f66445d4c3374ff04a93247ab41abac9a", + "typeString": "literal_string \"NOT_SUPERVISOR_OR_OWNER\"" + }, + "value": "NOT_SUPERVISOR_OR_OWNER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_716afe251bc9bae4f6e9638d04b57f9f66445d4c3374ff04a93247ab41abac9a", + "typeString": "literal_string \"NOT_SUPERVISOR_OR_OWNER\"" + } + ], + "id": 9481, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2190:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2190:87:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9493, + "nodeType": "ExpressionStatement", + "src": "2190:87:27" + }, + { + "id": 9494, + "nodeType": "PlaceholderStatement", + "src": "2287:1:27" + } + ] + }, + "documentation": null, + "id": 9496, + "name": "onlySupervisorOrOwner", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 9480, + "nodeType": "ParameterList", + "parameters": [], + "src": "2177:2:27" + }, + "src": "2147:148:27", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9505, + "nodeType": "Block", + "src": "2322:61:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2340:9:27", + "subExpression": { + "argumentTypes": null, + "id": 9499, + "name": "_CLOSED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9425, + "src": "2341:8:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f434c4f534544", + "id": 9501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2351:13:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b376000e0a4ab5aa456645b38033c091a45a656f290df894531d9e6e6accb956", + "typeString": "literal_string \"DODO_CLOSED\"" + }, + "value": "DODO_CLOSED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b376000e0a4ab5aa456645b38033c091a45a656f290df894531d9e6e6accb956", + "typeString": "literal_string \"DODO_CLOSED\"" + } + ], + "id": 9498, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2332:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2332:33:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9503, + "nodeType": "ExpressionStatement", + "src": "2332:33:27" + }, + { + "id": 9504, + "nodeType": "PlaceholderStatement", + "src": "2375:1:27" + } + ] + }, + "documentation": null, + "id": 9506, + "name": "notClosed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 9497, + "nodeType": "ParameterList", + "parameters": [], + "src": "2319:2:27" + }, + "src": "2301:82:27", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9537, + "nodeType": "Block", + "src": "2504:172:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9512, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "2522:3:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9513, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2528:11:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 9514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "2528:15:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2522:21:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4b3e3d31", + "id": 9516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2545:6:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f32497f7bac148ff47bc1203ad47fe8a0ef22a3fa4552d202153e69a26fe1aad", + "typeString": "literal_string \"K>=1\"" + }, + "value": "K>=1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f32497f7bac148ff47bc1203ad47fe8a0ef22a3fa4552d202153e69a26fe1aad", + "typeString": "literal_string \"K>=1\"" + } + ], + "id": 9511, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2514:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2514:38:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9518, + "nodeType": "ExpressionStatement", + "src": "2514:38:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9520, + "name": "_K_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "2570:3:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2576:1:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2570:7:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4b3d30", + "id": 9523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2579:5:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_073372277ec99e9e4cf2a06fd1edb82dafb2feb9157ad05dc9a6b226f860caa8", + "typeString": "literal_string \"K=0\"" + }, + "value": "K=0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_073372277ec99e9e4cf2a06fd1edb82dafb2feb9157ad05dc9a6b226f860caa8", + "typeString": "literal_string \"K=0\"" + } + ], + "id": 9519, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2562:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2562:23:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9525, + "nodeType": "ExpressionStatement", + "src": "2562:23:27" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9529, + "name": "_MT_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "2621:13:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9527, + "name": "_LP_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "2603:13:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2603:17:27", + "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": 9530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2603:32:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9531, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "2638:11:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 9532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": 11006, + "src": "2638:15:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2603:50:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4645455f524154453e3d31", + "id": 9534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2655:13:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c1e25429552344d4cbd26a7a72c34d9ad4ef4370ab35aa3b8f141898b46156fb", + "typeString": "literal_string \"FEE_RATE>=1\"" + }, + "value": "FEE_RATE>=1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c1e25429552344d4cbd26a7a72c34d9ad4ef4370ab35aa3b8f141898b46156fb", + "typeString": "literal_string \"FEE_RATE>=1\"" + } + ], + "id": 9526, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2595:7:27", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2595:74:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9536, + "nodeType": "ExpressionStatement", + "src": "2595:74:27" + } + ] + }, + "documentation": null, + "id": 9538, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkDODOParameters", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9507, + "nodeType": "ParameterList", + "parameters": [], + "src": "2469:2:27" + }, + "returnParameters": { + "id": 9510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9509, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9538, + "src": "2495:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2495:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2494:9:27" + }, + "scope": 9613, + "src": "2440:236:27", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9549, + "nodeType": "Block", + "src": "2738:52:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9544, + "name": "_ORACLE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9451, + "src": "2763:8:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9543, + "name": "IOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10616, + "src": "2755:7:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IOracle_$10616_$", + "typeString": "type(contract IOracle)" + } + }, + "id": 9545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2755:17:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$10616", + "typeString": "contract IOracle" + } + }, + "id": 9546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getPrice", + "nodeType": "MemberAccess", + "referencedDeclaration": 10615, + "src": "2755:26:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 9547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2755:28:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9542, + "id": 9548, + "nodeType": "Return", + "src": "2748:35:27" + } + ] + }, + "documentation": null, + "functionSelector": "796da7af", + "id": 9550, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getOraclePrice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9539, + "nodeType": "ParameterList", + "parameters": [], + "src": "2705:2:27" + }, + "returnParameters": { + "id": 9542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9541, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9550, + "src": "2729:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2729:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2728:9:27" + }, + "scope": 9613, + "src": "2682:108:27", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9564, + "nodeType": "Block", + "src": "2871:72:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9561, + "name": "lp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9552, + "src": "2933:2:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9558, + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9469, + "src": "2901:20:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9557, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "2888:12:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 9559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2888:34:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 9560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10530, + "src": "2888:44:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 9562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2888:48:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9556, + "id": 9563, + "nodeType": "Return", + "src": "2881:55:27" + } + ] + }, + "documentation": null, + "functionSelector": "7aed942d", + "id": 9565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBaseCapitalBalanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9552, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9565, + "src": "2829:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9551, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2829:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2828:12:27" + }, + "returnParameters": { + "id": 9556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9555, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9565, + "src": "2862:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9554, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2862:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2861:9:27" + }, + "scope": 9613, + "src": "2796:147:27", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9576, + "nodeType": "Block", + "src": "3010:72:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9571, + "name": "_BASE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9469, + "src": "3040:20:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9570, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "3027:12:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 9572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3027:34:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 9573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 10535, + "src": "3027:46:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 9574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3027:48:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9569, + "id": 9575, + "nodeType": "Return", + "src": "3020:55:27" + } + ] + }, + "documentation": null, + "functionSelector": "0cd1667d", + "id": 9577, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTotalBaseCapital", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9566, + "nodeType": "ParameterList", + "parameters": [], + "src": "2977:2:27" + }, + "returnParameters": { + "id": 9569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9568, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9577, + "src": "3001:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9567, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3001:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3000:9:27" + }, + "scope": 9613, + "src": "2949:133:27", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9591, + "nodeType": "Block", + "src": "3164:73:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9588, + "name": "lp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9579, + "src": "3227:2:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9585, + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9471, + "src": "3194:21:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9584, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "3181:12:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 9586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3181:35:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 9587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10530, + "src": "3181:45:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 9589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3181:49:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9583, + "id": 9590, + "nodeType": "Return", + "src": "3174:56:27" + } + ] + }, + "documentation": null, + "functionSelector": "f67ed448", + "id": 9592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getQuoteCapitalBalanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9579, + "mutability": "mutable", + "name": "lp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9592, + "src": "3122:10:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9578, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3122:7:27", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3121:12:27" + }, + "returnParameters": { + "id": 9583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9582, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9592, + "src": "3155:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9581, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3155:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3154:9:27" + }, + "scope": 9613, + "src": "3088:149:27", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9603, + "nodeType": "Block", + "src": "3305:73:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9598, + "name": "_QUOTE_CAPITAL_TOKEN_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9471, + "src": "3335:21:27", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9597, + "name": "IDODOLpToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10536, + "src": "3322:12:27", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOLpToken_$10536_$", + "typeString": "type(contract IDODOLpToken)" + } + }, + "id": 9599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3322:35:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOLpToken_$10536", + "typeString": "contract IDODOLpToken" + } + }, + "id": 9600, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 10535, + "src": "3322:47:27", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 9601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3322:49:27", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9596, + "id": 9602, + "nodeType": "Return", + "src": "3315:56:27" + } + ] + }, + "documentation": null, + "functionSelector": "2aa82c65", + "id": 9604, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTotalQuoteCapital", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9593, + "nodeType": "ParameterList", + "parameters": [], + "src": "3272:2:27" + }, + "returnParameters": { + "id": 9596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9595, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9604, + "src": "3296:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3296:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3295:9:27" + }, + "scope": 9613, + "src": "3243:135:27", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 9611, + "nodeType": "Block", + "src": "3484:36:27", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "313031", + "id": 9609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3501:3:27", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_101_by_1", + "typeString": "int_const 101" + }, + "value": "101" + }, + "functionReturnParameters": 9608, + "id": 9610, + "nodeType": "Return", + "src": "3494:10:27" + } + ] + }, + "documentation": null, + "functionSelector": "54fd4d50", + "id": 9612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "version", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9605, + "nodeType": "ParameterList", + "parameters": [], + "src": "3449:2:27" + }, + "returnParameters": { + "id": 9608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9607, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9612, + "src": "3475:7:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9606, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3475:7:27", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3474:9:27" + }, + "scope": 9613, + "src": "3433:87:27", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + } + ], + "scope": 9614, + "src": "586:2936:27" + } + ], + "src": "78:3445:27" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.702Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "Storage" + }, + "userdoc": { + "methods": {}, + "notice": "Local Variables" + } +} \ No newline at end of file diff --git a/build-v1/contracts/TestERC20.json b/build-v1/contracts/TestERC20.json new file mode 100644 index 0000000..70ba4b4 --- /dev/null +++ b/build-v1/contracts/TestERC20.json @@ -0,0 +1,7880 @@ +{ + "contractName": "TestERC20", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "uint8", + "name": "_decimals", + "type": "uint8" + } + ], + "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": "amount", + "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": "amount", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "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": "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": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"}],\"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\":\"amount\",\"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\":\"amount\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestERC20.sol\":\"TestERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestERC20.sol\":{\"keccak256\":\"0xc13acbc1f6185f191e7f9a3fee3900dfa87638c6cdfcbfa6c2bf0bf1a8721833\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://31f92675293b1eb0573e6be4b66d1ae6de482d90b2d0ac29b405159f555ef804\",\"dweb:/ipfs/QmaE3D4EktRykz6TPBFayxaSXTa1LuQRNWKRmHR2hbzWuS\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50604051610a03380380610a038339818101604052604081101561003357600080fd5b810190808051604051939291908464010000000082111561005357600080fd5b90830190602082018581111561006857600080fd5b825164010000000081118282018810171561008257600080fd5b82525081516020918201929091019080838360005b838110156100af578181015183820152602001610097565b50505050905090810190601f1680156100dc5780820380516001836020036101000a031916815260200191505b5060405260209081015184519093506100fb9250600091850190610116565b506001805460ff191660ff92909216919091179055506101b1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061015757805160ff1916838001178555610184565b82800160010185558215610184579182015b82811115610184578251825591602001919060010190610169565b50610190929150610194565b5090565b6101ae91905b80821115610190576000815560010161019a565b90565b610843806101c06000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806340c10f191161005b57806340c10f191461019e57806370a08231146101cc578063a9059cbb14610204578063dd62ed3e1461023057610088565b806306fdde031461008d578063095ea7b31461010a57806323b872dd1461014a578063313ce56714610180575b600080fd5b61009561025e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100cf5781810151838201526020016100b7565b50505050905090810190601f1680156100fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101366004803603604081101561012057600080fd5b506001600160a01b0381351690602001356102ec565b604080519115158252519081900360200190f35b6101366004803603606081101561016057600080fd5b506001600160a01b03813581169160208101359091169060400135610352565b610188610583565b6040805160ff9092168252519081900360200190f35b6101ca600480360360408110156101b457600080fd5b506001600160a01b03813516906020013561058c565b005b6101f2600480360360208110156101e257600080fd5b50356001600160a01b03166105d5565b60408051918252519081900360200190f35b6101366004803603604081101561021a57600080fd5b506001600160a01b0381351690602001356105f0565b6101f26004803603604081101561024657600080fd5b506001600160a01b038135811691602001351661074c565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b820191906000526020600020905b8154815290600101906020018083116102c757829003601f168201915b505050505081565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60006001600160a01b0383166103a5576040805162461bcd60e51b8152602060048201526013602482015272544f5f414444524553535f49535f454d50545960681b604482015290519081900360640190fd5b6001600160a01b038416600090815260026020526040902054821115610407576040805162461bcd60e51b81526020600482015260126024820152710848298829c868abe9c9ea8be8a9c9eaa8e960731b604482015290519081900360640190fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902054821115610476576040805162461bcd60e51b815260206004820152601460248201527308298989eae829c868abe9c9ea8be8a9c9eaa8e960631b604482015290519081900360640190fd5b6001600160a01b03841660009081526002602052604090205461049f908363ffffffff61077716565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546104d4908363ffffffff6107c016565b6001600160a01b038085166000908152600260209081526040808320949094559187168152600382528281203382529091522054610518908363ffffffff61077716565b6001600160a01b03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b60015460ff1681565b6001600160a01b0382166000908152600260205260409020546105b5908263ffffffff6107c016565b6001600160a01b0390921660009081526002602052604090209190915550565b6001600160a01b031660009081526002602052604090205490565b60006001600160a01b038316610643576040805162461bcd60e51b8152602060048201526013602482015272544f5f414444524553535f49535f454d50545960681b604482015290519081900360640190fd5b3360009081526002602052604090205482111561069c576040805162461bcd60e51b81526020600482015260126024820152710848298829c868abe9c9ea8be8a9c9eaa8e960731b604482015290519081900360640190fd5b336000908152600260205260409020546106bc908363ffffffff61077716565b33600090815260026020526040808220929092556001600160a01b038516815220546106ee908363ffffffff6107c016565b6001600160a01b0384166000818152600260209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000828211156107ba576040805162461bcd60e51b815260206004820152600960248201526829aaa12fa2a92927a960b91b604482015290519081900360640190fd5b50900390565b600082820183811015610806576040805162461bcd60e51b815260206004820152600960248201526820a2222fa2a92927a960b91b604482015290519081900360640190fd5b939250505056fea26469706673582212209b4001f11f1ed42060bced92266b334f9bbd1d4e12dd53256158cb612df765f164736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806340c10f191161005b57806340c10f191461019e57806370a08231146101cc578063a9059cbb14610204578063dd62ed3e1461023057610088565b806306fdde031461008d578063095ea7b31461010a57806323b872dd1461014a578063313ce56714610180575b600080fd5b61009561025e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100cf5781810151838201526020016100b7565b50505050905090810190601f1680156100fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101366004803603604081101561012057600080fd5b506001600160a01b0381351690602001356102ec565b604080519115158252519081900360200190f35b6101366004803603606081101561016057600080fd5b506001600160a01b03813581169160208101359091169060400135610352565b610188610583565b6040805160ff9092168252519081900360200190f35b6101ca600480360360408110156101b457600080fd5b506001600160a01b03813516906020013561058c565b005b6101f2600480360360208110156101e257600080fd5b50356001600160a01b03166105d5565b60408051918252519081900360200190f35b6101366004803603604081101561021a57600080fd5b506001600160a01b0381351690602001356105f0565b6101f26004803603604081101561024657600080fd5b506001600160a01b038135811691602001351661074c565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b820191906000526020600020905b8154815290600101906020018083116102c757829003601f168201915b505050505081565b3360008181526003602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60006001600160a01b0383166103a5576040805162461bcd60e51b8152602060048201526013602482015272544f5f414444524553535f49535f454d50545960681b604482015290519081900360640190fd5b6001600160a01b038416600090815260026020526040902054821115610407576040805162461bcd60e51b81526020600482015260126024820152710848298829c868abe9c9ea8be8a9c9eaa8e960731b604482015290519081900360640190fd5b6001600160a01b0384166000908152600360209081526040808320338452909152902054821115610476576040805162461bcd60e51b815260206004820152601460248201527308298989eae829c868abe9c9ea8be8a9c9eaa8e960631b604482015290519081900360640190fd5b6001600160a01b03841660009081526002602052604090205461049f908363ffffffff61077716565b6001600160a01b0380861660009081526002602052604080822093909355908516815220546104d4908363ffffffff6107c016565b6001600160a01b038085166000908152600260209081526040808320949094559187168152600382528281203382529091522054610518908363ffffffff61077716565b6001600160a01b03808616600081815260036020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b60015460ff1681565b6001600160a01b0382166000908152600260205260409020546105b5908263ffffffff6107c016565b6001600160a01b0390921660009081526002602052604090209190915550565b6001600160a01b031660009081526002602052604090205490565b60006001600160a01b038316610643576040805162461bcd60e51b8152602060048201526013602482015272544f5f414444524553535f49535f454d50545960681b604482015290519081900360640190fd5b3360009081526002602052604090205482111561069c576040805162461bcd60e51b81526020600482015260126024820152710848298829c868abe9c9ea8be8a9c9eaa8e960731b604482015290519081900360640190fd5b336000908152600260205260409020546106bc908363ffffffff61077716565b33600090815260026020526040808220929092556001600160a01b038516815220546106ee908363ffffffff6107c016565b6001600160a01b0384166000818152600260209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000828211156107ba576040805162461bcd60e51b815260206004820152600960248201526829aaa12fa2a92927a960b91b604482015290519081900360640190fd5b50900390565b600082820183811015610806576040805162461bcd60e51b815260206004820152600960248201526820a2222fa2a92927a960b91b604482015290519081900360640190fd5b939250505056fea26469706673582212209b4001f11f1ed42060bced92266b334f9bbd1d4e12dd53256158cb612df765f164736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "149:2051:18:-:0;;;535:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;535:116:18;;;;;;;;;;-1:-1:-1;535:116:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;535:116:18;;;;;;;602:12;;535:116;;-1:-1:-1;602:12:18;;-1:-1:-1;602:4:18;;:12;;;;:::i;:::-;-1:-1:-1;624:8:18;:20;;-1:-1:-1;;624:20:18;;;;;;;;;;;;-1:-1:-1;149:2051:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;149:2051:18;;;-1:-1:-1;149:2051:18;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "149:2051:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;207:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1737:199;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1737:199:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1167:564;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1167:564:18;;;;;;;;;;;;;;;;;:::i;231:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2076:122;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2076:122:18;;;;;;;;:::i;:::-;;1050:111;;;;;;;;;;;;;;;;-1:-1:-1;1050:111:18;-1:-1:-1;;;;;1050:111:18;;:::i;:::-;;;;;;;;;;;;;;;;657:387;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;657:387:18;;;;;;;;:::i;1942:128::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1942:128:18;;;;;;;;;;:::i;207:18::-;;;;;;;;;;;;;;;-1:-1:-1;;207:18:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1737:199::-;1827:10;1803:4;1819:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;1819:28:18;;;;;;;;;;;:37;;;1871;;;;;;;1803:4;;1819:28;;1827:10;;1871:37;;;;;;;;-1:-1:-1;1925:4:18;1737:199;;;;:::o;1167:564::-;1277:4;-1:-1:-1;;;;;1301:16:18;;1293:48;;;;;-1:-1:-1;;;1293:48:18;;;;;;;;;;;;-1:-1:-1;;;1293:48:18;;;;;;;;;;;;;;;-1:-1:-1;;;;;1369:14:18;;;;;;:8;:14;;;;;;1359:24;;;1351:55;;;;;-1:-1:-1;;;1351:55:18;;;;;;;;;;;;-1:-1:-1;;;1351:55:18;;;;;;;;;;;;;;;-1:-1:-1;;;;;1434:13:18;;;;;;:7;:13;;;;;;;;1448:10;1434:25;;;;;;;;1424:35;;;1416:68;;;;;-1:-1:-1;;;1416:68:18;;;;;;;;;;;;-1:-1:-1;;;1416:68:18;;;;;;;;;;;;;;;-1:-1:-1;;;;;1512:14:18;;;;;;:8;:14;;;;;;:26;;1531:6;1512:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;1495:14:18;;;;;;;:8;:14;;;;;;:43;;;;1563:12;;;;;;;:24;;1580:6;1563:24;:16;:24;:::i;:::-;-1:-1:-1;;;;;1548:12:18;;;;;;;:8;:12;;;;;;;;:39;;;;1625:13;;;;;:7;:13;;;;;1639:10;1625:25;;;;;;;:37;;1655:6;1625:37;:29;:37;:::i;:::-;-1:-1:-1;;;;;1597:13:18;;;;;;;:7;:13;;;;;;;;1611:10;1597:25;;;;;;;;:65;;;;1677:26;;;;;;;;;;;1597:13;;1677:26;;;;;;;;;;;-1:-1:-1;1720:4:18;1167:564;;;;;:::o;231:21::-;;;;;;:::o;2076:122::-;-1:-1:-1;;;;;2162:17:18;;;;;;:8;:17;;;;;;:29;;2184:6;2162:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;2142:17:18;;;;;;;:8;:17;;;;;:49;;;;-1:-1:-1;2076:122:18:o;1050:111::-;-1:-1:-1;;;;;1139:15:18;1105;1139;;;:8;:15;;;;;;;1050:111::o;657:387::-;719:4;-1:-1:-1;;;;;743:16:18;;735:48;;;;;-1:-1:-1;;;735:48:18;;;;;;;;;;;;-1:-1:-1;;;735:48:18;;;;;;;;;;;;;;;820:10;811:20;;;;:8;:20;;;;;;801:30;;;793:61;;;;;-1:-1:-1;;;793:61:18;;;;;;;;;;;;-1:-1:-1;;;793:61:18;;;;;;;;;;;;;;;897:10;888:20;;;;:8;:20;;;;;;:32;;913:6;888:32;:24;:32;:::i;:::-;874:10;865:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;945:12:18;;;;;;:24;;962:6;945:24;:16;:24;:::i;:::-;-1:-1:-1;;;;;930:12:18;;;;;;:8;:12;;;;;;;;;:39;;;;984:32;;;;;;;930:12;;993:10;;984:32;;;;;;;;;;-1:-1:-1;1033:4:18;657:387;;;;:::o;1942:128::-;-1:-1:-1;;;;;2040:14:18;;;2014:7;2040:14;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;1942:128::o;934:134:41:-;992:7;1024:1;1019;:6;;1011:28;;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;1074:157::-;1132:7;1163:5;;;1186:6;;;;1178:28;;;;;-1:-1:-1;;;1178:28:41;;;;;;;;;;;;-1:-1:-1;;;1178:28:41;;;;;;;;;;;;;;;1223:1;1074:157;-1:-1:-1;;;1074:157:41:o", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\n\nimport {SafeMath} from \"../lib/SafeMath.sol\";\n\ncontract TestERC20 {\n using SafeMath for uint256;\n\n string public name;\n uint8 public decimals;\n\n mapping(address => uint256) balances;\n mapping(address => mapping(address => uint256)) internal allowed;\n\n event Transfer(address indexed from, address indexed to, uint256 amount);\n event Approval(address indexed owner, address indexed spender, uint256 amount);\n\n constructor(string memory _name, uint8 _decimals) public {\n name = _name;\n decimals = _decimals;\n }\n\n function transfer(address to, uint256 amount) public returns (bool) {\n require(to != address(0), \"TO_ADDRESS_IS_EMPTY\");\n require(amount <= balances[msg.sender], \"BALANCE_NOT_ENOUGH\");\n\n balances[msg.sender] = balances[msg.sender].sub(amount);\n balances[to] = balances[to].add(amount);\n emit Transfer(msg.sender, to, amount);\n return true;\n }\n\n function balanceOf(address owner) public view returns (uint256 balance) {\n return balances[owner];\n }\n\n function transferFrom(\n address from,\n address to,\n uint256 amount\n ) public returns (bool) {\n require(to != address(0), \"TO_ADDRESS_IS_EMPTY\");\n require(amount <= balances[from], \"BALANCE_NOT_ENOUGH\");\n require(amount <= allowed[from][msg.sender], \"ALLOWANCE_NOT_ENOUGH\");\n\n balances[from] = balances[from].sub(amount);\n balances[to] = balances[to].add(amount);\n allowed[from][msg.sender] = allowed[from][msg.sender].sub(amount);\n emit Transfer(from, to, amount);\n return true;\n }\n\n function approve(address spender, uint256 amount) public returns (bool) {\n allowed[msg.sender][spender] = amount;\n emit Approval(msg.sender, spender, amount);\n return true;\n }\n\n function allowance(address owner, address spender) public view returns (uint256) {\n return allowed[owner][spender];\n }\n\n function mint(address account, uint256 amount) external {\n balances[account] = balances[account].add(amount);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestERC20.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestERC20.sol", + "exportedSymbols": { + "TestERC20": [ + 3697 + ] + }, + "id": 3698, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3417, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:18" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 3419, + "nodeType": "ImportDirective", + "scope": 3698, + "sourceUnit": 11624, + "src": "102:45:18", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3418, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "110:8:18", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3697, + "linearizedBaseContracts": [ + 3697 + ], + "name": "TestERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3422, + "libraryName": { + "contractScope": null, + "id": 3420, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "180:8:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "174:27:18", + "typeName": { + "id": 3421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "193:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "06fdde03", + "id": 3424, + "mutability": "mutable", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3697, + "src": "207:18:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3423, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "207:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "313ce567", + "id": 3426, + "mutability": "mutable", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3697, + "src": "231:21:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3425, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "231:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3430, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3697, + "src": "259:36:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3429, + "keyType": { + "id": 3427, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "267:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "259:27:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "278:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3436, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3697, + "src": "301:64:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 3435, + "keyType": { + "id": 3431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "309:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "301:47:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3434, + "keyType": { + "id": 3432, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "328:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "320:27:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3433, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "339:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 3444, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3438, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3444, + "src": "387:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3437, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "387:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3440, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3444, + "src": "409:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3439, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "409:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3442, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3444, + "src": "429:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "429:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "386:58:18" + }, + "src": "372:73:18" + }, + { + "anonymous": false, + "documentation": null, + "id": 3452, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3446, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3452, + "src": "465:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3445, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "465:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3448, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3452, + "src": "488:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3447, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "488:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3450, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3452, + "src": "513:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3449, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "513:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "464:64:18" + }, + "src": "450:79:18" + }, + { + "body": { + "id": 3467, + "nodeType": "Block", + "src": "592:59:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3459, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "602:4:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3460, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3454, + "src": "609:5:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "602:12:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3462, + "nodeType": "ExpressionStatement", + "src": "602:12:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 3465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3463, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "624:8:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3464, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3456, + "src": "635:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "624:20:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 3466, + "nodeType": "ExpressionStatement", + "src": "624:20:18" + } + ] + }, + "documentation": null, + "id": 3468, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3454, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3468, + "src": "547:19:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "547:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3456, + "mutability": "mutable", + "name": "_decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3468, + "src": "568:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3455, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "568:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "546:38:18" + }, + "returnParameters": { + "id": 3458, + "nodeType": "ParameterList", + "parameters": [], + "src": "592:0:18" + }, + "scope": 3697, + "src": "535:116:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3530, + "nodeType": "Block", + "src": "725:319:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3478, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3470, + "src": "743:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "757:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "749:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "749:7:18", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "749:10:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "743:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "544f5f414444524553535f49535f454d505459", + "id": 3484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "761:21:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fce9c4217ab16f66c8c9e439976e964c9744fcc6b732bc83ede5eb9685cdc356", + "typeString": "literal_string \"TO_ADDRESS_IS_EMPTY\"" + }, + "value": "TO_ADDRESS_IS_EMPTY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fce9c4217ab16f66c8c9e439976e964c9744fcc6b732bc83ede5eb9685cdc356", + "typeString": "literal_string \"TO_ADDRESS_IS_EMPTY\"" + } + ], + "id": 3477, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "735:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "735:48:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3486, + "nodeType": "ExpressionStatement", + "src": "735:48:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3488, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3472, + "src": "801:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3489, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "811:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3492, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3490, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "820:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "820:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "811:20:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "801:30:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "42414c414e43455f4e4f545f454e4f554748", + "id": 3494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "833:20:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + }, + "value": "BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + } + ], + "id": 3487, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "793:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "793:61:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3496, + "nodeType": "ExpressionStatement", + "src": "793:61:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 3508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3497, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "865:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3500, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3498, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "874:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "874:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "865:20:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3506, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3472, + "src": "913:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3501, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "888:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3504, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3502, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "897:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "897:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "888:20:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "888:24:18", + "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": 3507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "888:32:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "865:55:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3509, + "nodeType": "ExpressionStatement", + "src": "865:55:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 3519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3510, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "930:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3512, + "indexExpression": { + "argumentTypes": null, + "id": 3511, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3470, + "src": "939:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "930:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3517, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3472, + "src": "962:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3513, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "945:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3515, + "indexExpression": { + "argumentTypes": null, + "id": 3514, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3470, + "src": "954:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "945:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "945:16:18", + "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": 3518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "945:24:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "930:39:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3520, + "nodeType": "ExpressionStatement", + "src": "930:39:18" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3522, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "993:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "993:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3524, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3470, + "src": "1005:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3525, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3472, + "src": "1009:6:18", + "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": 3521, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3444, + "src": "984:8:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "984:32:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3527, + "nodeType": "EmitStatement", + "src": "979:37:18" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1033:4:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3476, + "id": 3529, + "nodeType": "Return", + "src": "1026:11:18" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 3531, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3473, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3470, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3531, + "src": "675:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "675:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3472, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3531, + "src": "687:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3471, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "687:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "674:28:18" + }, + "returnParameters": { + "id": 3476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3475, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3531, + "src": "719:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3474, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "719:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "718:6:18" + }, + "scope": 3697, + "src": "657:387:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3542, + "nodeType": "Block", + "src": "1122:39:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3538, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "1139:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3540, + "indexExpression": { + "argumentTypes": null, + "id": 3539, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3533, + "src": "1148:5:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1139:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3537, + "id": 3541, + "nodeType": "Return", + "src": "1132:22:18" + } + ] + }, + "documentation": null, + "functionSelector": "70a08231", + "id": 3543, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3533, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3543, + "src": "1069:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1069:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1068:15:18" + }, + "returnParameters": { + "id": 3537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3536, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3543, + "src": "1105:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3535, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1105:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1104:17:18" + }, + "scope": 3697, + "src": "1050:111:18", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3632, + "nodeType": "Block", + "src": "1283:448:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3555, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "1301:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1315:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1307:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1307:7:18", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1307:10:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1301:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "544f5f414444524553535f49535f454d505459", + "id": 3561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1319:21:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fce9c4217ab16f66c8c9e439976e964c9744fcc6b732bc83ede5eb9685cdc356", + "typeString": "literal_string \"TO_ADDRESS_IS_EMPTY\"" + }, + "value": "TO_ADDRESS_IS_EMPTY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fce9c4217ab16f66c8c9e439976e964c9744fcc6b732bc83ede5eb9685cdc356", + "typeString": "literal_string \"TO_ADDRESS_IS_EMPTY\"" + } + ], + "id": 3554, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1293:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1293:48:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3563, + "nodeType": "ExpressionStatement", + "src": "1293:48:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3565, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "1359:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3566, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "1369:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3568, + "indexExpression": { + "argumentTypes": null, + "id": 3567, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1378:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1369:14:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1359:24:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "42414c414e43455f4e4f545f454e4f554748", + "id": 3570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1385:20:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + }, + "value": "BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + } + ], + "id": 3564, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1351:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1351:55:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3572, + "nodeType": "ExpressionStatement", + "src": "1351:55:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3574, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "1424:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3575, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "1434:7:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3577, + "indexExpression": { + "argumentTypes": null, + "id": 3576, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1442:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1434:13:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3580, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3578, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1448:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1448:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1434:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1424:35:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414c4c4f57414e43455f4e4f545f454e4f554748", + "id": 3582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1461:22:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_28638f118cb48e54afcdd39bdb97baeb95a670cffee1fd95f73350a923dc1c6f", + "typeString": "literal_string \"ALLOWANCE_NOT_ENOUGH\"" + }, + "value": "ALLOWANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_28638f118cb48e54afcdd39bdb97baeb95a670cffee1fd95f73350a923dc1c6f", + "typeString": "literal_string \"ALLOWANCE_NOT_ENOUGH\"" + } + ], + "id": 3573, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1416:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1416:68:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3584, + "nodeType": "ExpressionStatement", + "src": "1416:68:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3585, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "1495:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3587, + "indexExpression": { + "argumentTypes": null, + "id": 3586, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1504:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1495:14:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3592, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "1531:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3588, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "1512:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3590, + "indexExpression": { + "argumentTypes": null, + "id": 3589, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1521:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1512:14:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1512:18:18", + "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": 3593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1512:26:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1495:43:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3595, + "nodeType": "ExpressionStatement", + "src": "1495:43:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 3605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3596, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "1548:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3598, + "indexExpression": { + "argumentTypes": null, + "id": 3597, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "1557:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1548:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3603, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "1580:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3599, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "1563:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3601, + "indexExpression": { + "argumentTypes": null, + "id": 3600, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "1572:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1563:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1563:16:18", + "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": 3604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1563:24:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1548:39:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3606, + "nodeType": "ExpressionStatement", + "src": "1548:39:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 3622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3607, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "1597:7:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3611, + "indexExpression": { + "argumentTypes": null, + "id": 3608, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1605:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1597:13:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3612, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3609, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1611:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1611:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1597:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3620, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "1655:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3613, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "1625:7:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3615, + "indexExpression": { + "argumentTypes": null, + "id": 3614, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1633:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1625:13:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3618, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3616, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1639:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1639:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1625:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1625:29:18", + "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": 3621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1625:37:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1597:65:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3623, + "nodeType": "ExpressionStatement", + "src": "1597:65:18" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3625, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1686:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3626, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "1692:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3627, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "1696:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3624, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3444, + "src": "1677:8:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1677:26:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3629, + "nodeType": "EmitStatement", + "src": "1672:31:18" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1720:4:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3553, + "id": 3631, + "nodeType": "Return", + "src": "1713:11:18" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 3633, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3545, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3633, + "src": "1198:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1198:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3547, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3633, + "src": "1220:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1220:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3549, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3633, + "src": "1240:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1240:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1188:72:18" + }, + "returnParameters": { + "id": 3553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3552, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3633, + "src": "1277:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3551, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1277:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1276:6:18" + }, + "scope": 3697, + "src": "1167:564:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3660, + "nodeType": "Block", + "src": "1809:127:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3642, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "1819:7:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3646, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3643, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1827:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1827:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1819:19:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3647, + "indexExpression": { + "argumentTypes": null, + "id": 3645, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3635, + "src": "1839:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1819:28:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3648, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3637, + "src": "1850:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1819:37:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3650, + "nodeType": "ExpressionStatement", + "src": "1819:37:18" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3652, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1880:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1880:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3654, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3635, + "src": "1892:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3655, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3637, + "src": "1901:6:18", + "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": 3651, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3452, + "src": "1871:8:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1871:37:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3657, + "nodeType": "EmitStatement", + "src": "1866:42:18" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1925:4:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3641, + "id": 3659, + "nodeType": "Return", + "src": "1918:11:18" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 3661, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3635, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3661, + "src": "1754:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1754:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3637, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3661, + "src": "1771:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1771:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1753:33:18" + }, + "returnParameters": { + "id": 3641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3661, + "src": "1803:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1803:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1802:6:18" + }, + "scope": 3697, + "src": "1737:199:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3676, + "nodeType": "Block", + "src": "2023:47:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3670, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "2040:7:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3672, + "indexExpression": { + "argumentTypes": null, + "id": 3671, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3663, + "src": "2048:5:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2040:14:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3674, + "indexExpression": { + "argumentTypes": null, + "id": 3673, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3665, + "src": "2055:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2040:23:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3669, + "id": 3675, + "nodeType": "Return", + "src": "2033:30:18" + } + ] + }, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 3677, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3677, + "src": "1961:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1961:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3665, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3677, + "src": "1976:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1976:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1960:32:18" + }, + "returnParameters": { + "id": 3669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3668, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3677, + "src": "2014:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2014:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2013:9:18" + }, + "scope": 3697, + "src": "1942:128:18", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3695, + "nodeType": "Block", + "src": "2132:66:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3684, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "2142:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3686, + "indexExpression": { + "argumentTypes": null, + "id": 3685, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3679, + "src": "2151:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2142:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3691, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3681, + "src": "2184:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3687, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "2162:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3689, + "indexExpression": { + "argumentTypes": null, + "id": 3688, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3679, + "src": "2171:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2162:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2162:21:18", + "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": 3692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2162:29:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2142:49:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3694, + "nodeType": "ExpressionStatement", + "src": "2142:49:18" + } + ] + }, + "documentation": null, + "functionSelector": "40c10f19", + "id": 3696, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3679, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3696, + "src": "2090:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3678, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2090:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3681, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3696, + "src": "2107:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2107:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2089:33:18" + }, + "returnParameters": { + "id": 3683, + "nodeType": "ParameterList", + "parameters": [], + "src": "2132:0:18" + }, + "scope": 3697, + "src": "2076:122:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3698, + "src": "149:2051:18" + } + ], + "src": "78:2123:18" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestERC20.sol", + "exportedSymbols": { + "TestERC20": [ + 3697 + ] + }, + "id": 3698, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3417, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:18" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 3419, + "nodeType": "ImportDirective", + "scope": 3698, + "sourceUnit": 11624, + "src": "102:45:18", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3418, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "110:8:18", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3697, + "linearizedBaseContracts": [ + 3697 + ], + "name": "TestERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3422, + "libraryName": { + "contractScope": null, + "id": 3420, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "180:8:18", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "174:27:18", + "typeName": { + "id": 3421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "193:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "functionSelector": "06fdde03", + "id": 3424, + "mutability": "mutable", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3697, + "src": "207:18:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3423, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "207:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "313ce567", + "id": 3426, + "mutability": "mutable", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3697, + "src": "231:21:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3425, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "231:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3430, + "mutability": "mutable", + "name": "balances", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3697, + "src": "259:36:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3429, + "keyType": { + "id": 3427, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "267:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "259:27:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3428, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "278:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3436, + "mutability": "mutable", + "name": "allowed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3697, + "src": "301:64:18", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 3435, + "keyType": { + "id": 3431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "309:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "301:47:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3434, + "keyType": { + "id": 3432, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "328:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "320:27:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3433, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "339:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 3444, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3438, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3444, + "src": "387:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3437, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "387:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3440, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3444, + "src": "409:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3439, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "409:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3442, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3444, + "src": "429:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3441, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "429:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "386:58:18" + }, + "src": "372:73:18" + }, + { + "anonymous": false, + "documentation": null, + "id": 3452, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3446, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3452, + "src": "465:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3445, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "465:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3448, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3452, + "src": "488:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3447, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "488:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3450, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3452, + "src": "513:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3449, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "513:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "464:64:18" + }, + "src": "450:79:18" + }, + { + "body": { + "id": 3467, + "nodeType": "Block", + "src": "592:59:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3459, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "602:4:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3460, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3454, + "src": "609:5:18", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "602:12:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3462, + "nodeType": "ExpressionStatement", + "src": "602:12:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 3465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3463, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3426, + "src": "624:8:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3464, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3456, + "src": "635:9:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "624:20:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 3466, + "nodeType": "ExpressionStatement", + "src": "624:20:18" + } + ] + }, + "documentation": null, + "id": 3468, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3457, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3454, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3468, + "src": "547:19:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "547:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3456, + "mutability": "mutable", + "name": "_decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3468, + "src": "568:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3455, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "568:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "546:38:18" + }, + "returnParameters": { + "id": 3458, + "nodeType": "ParameterList", + "parameters": [], + "src": "592:0:18" + }, + "scope": 3697, + "src": "535:116:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3530, + "nodeType": "Block", + "src": "725:319:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3478, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3470, + "src": "743:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "757:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "749:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3479, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "749:7:18", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "749:10:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "743:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "544f5f414444524553535f49535f454d505459", + "id": 3484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "761:21:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fce9c4217ab16f66c8c9e439976e964c9744fcc6b732bc83ede5eb9685cdc356", + "typeString": "literal_string \"TO_ADDRESS_IS_EMPTY\"" + }, + "value": "TO_ADDRESS_IS_EMPTY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fce9c4217ab16f66c8c9e439976e964c9744fcc6b732bc83ede5eb9685cdc356", + "typeString": "literal_string \"TO_ADDRESS_IS_EMPTY\"" + } + ], + "id": 3477, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "735:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "735:48:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3486, + "nodeType": "ExpressionStatement", + "src": "735:48:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3488, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3472, + "src": "801:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3489, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "811:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3492, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3490, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "820:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "820:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "811:20:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "801:30:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "42414c414e43455f4e4f545f454e4f554748", + "id": 3494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "833:20:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + }, + "value": "BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + } + ], + "id": 3487, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "793:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "793:61:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3496, + "nodeType": "ExpressionStatement", + "src": "793:61:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 3508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3497, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "865:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3500, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3498, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "874:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "874:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "865:20:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3506, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3472, + "src": "913:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3501, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "888:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3504, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3502, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "897:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "897:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "888:20:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "888:24:18", + "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": 3507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "888:32:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "865:55:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3509, + "nodeType": "ExpressionStatement", + "src": "865:55:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 3519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3510, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "930:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3512, + "indexExpression": { + "argumentTypes": null, + "id": 3511, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3470, + "src": "939:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "930:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3517, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3472, + "src": "962:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3513, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "945:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3515, + "indexExpression": { + "argumentTypes": null, + "id": 3514, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3470, + "src": "954:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "945:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "945:16:18", + "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": 3518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "945:24:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "930:39:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3520, + "nodeType": "ExpressionStatement", + "src": "930:39:18" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3522, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "993:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "993:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3524, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3470, + "src": "1005:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3525, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3472, + "src": "1009:6:18", + "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": 3521, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3444, + "src": "984:8:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "984:32:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3527, + "nodeType": "EmitStatement", + "src": "979:37:18" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1033:4:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3476, + "id": 3529, + "nodeType": "Return", + "src": "1026:11:18" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 3531, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3473, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3470, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3531, + "src": "675:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "675:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3472, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3531, + "src": "687:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3471, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "687:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "674:28:18" + }, + "returnParameters": { + "id": 3476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3475, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3531, + "src": "719:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3474, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "719:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "718:6:18" + }, + "scope": 3697, + "src": "657:387:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3542, + "nodeType": "Block", + "src": "1122:39:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3538, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "1139:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3540, + "indexExpression": { + "argumentTypes": null, + "id": 3539, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3533, + "src": "1148:5:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1139:15:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3537, + "id": 3541, + "nodeType": "Return", + "src": "1132:22:18" + } + ] + }, + "documentation": null, + "functionSelector": "70a08231", + "id": 3543, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3533, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3543, + "src": "1069:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1069:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1068:15:18" + }, + "returnParameters": { + "id": 3537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3536, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3543, + "src": "1105:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3535, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1105:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1104:17:18" + }, + "scope": 3697, + "src": "1050:111:18", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3632, + "nodeType": "Block", + "src": "1283:448:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3555, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "1301:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1315:1:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1307:7:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1307:7:18", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1307:10:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1301:16:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "544f5f414444524553535f49535f454d505459", + "id": 3561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1319:21:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fce9c4217ab16f66c8c9e439976e964c9744fcc6b732bc83ede5eb9685cdc356", + "typeString": "literal_string \"TO_ADDRESS_IS_EMPTY\"" + }, + "value": "TO_ADDRESS_IS_EMPTY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fce9c4217ab16f66c8c9e439976e964c9744fcc6b732bc83ede5eb9685cdc356", + "typeString": "literal_string \"TO_ADDRESS_IS_EMPTY\"" + } + ], + "id": 3554, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1293:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1293:48:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3563, + "nodeType": "ExpressionStatement", + "src": "1293:48:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3565, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "1359:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3566, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "1369:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3568, + "indexExpression": { + "argumentTypes": null, + "id": 3567, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1378:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1369:14:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1359:24:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "42414c414e43455f4e4f545f454e4f554748", + "id": 3570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1385:20:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + }, + "value": "BALANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdd726e298d9165e3d91fe96d56676b5342c508882ebbe585be31adbc426425d", + "typeString": "literal_string \"BALANCE_NOT_ENOUGH\"" + } + ], + "id": 3564, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1351:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1351:55:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3572, + "nodeType": "ExpressionStatement", + "src": "1351:55:18" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3574, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "1424:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3575, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "1434:7:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3577, + "indexExpression": { + "argumentTypes": null, + "id": 3576, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1442:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1434:13:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3580, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3578, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1448:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1448:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1434:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1424:35:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "414c4c4f57414e43455f4e4f545f454e4f554748", + "id": 3582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1461:22:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_28638f118cb48e54afcdd39bdb97baeb95a670cffee1fd95f73350a923dc1c6f", + "typeString": "literal_string \"ALLOWANCE_NOT_ENOUGH\"" + }, + "value": "ALLOWANCE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_28638f118cb48e54afcdd39bdb97baeb95a670cffee1fd95f73350a923dc1c6f", + "typeString": "literal_string \"ALLOWANCE_NOT_ENOUGH\"" + } + ], + "id": 3573, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1416:7:18", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1416:68:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3584, + "nodeType": "ExpressionStatement", + "src": "1416:68:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3585, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "1495:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3587, + "indexExpression": { + "argumentTypes": null, + "id": 3586, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1504:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1495:14:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3592, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "1531:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3588, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "1512:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3590, + "indexExpression": { + "argumentTypes": null, + "id": 3589, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1521:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1512:14:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1512:18:18", + "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": 3593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1512:26:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1495:43:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3595, + "nodeType": "ExpressionStatement", + "src": "1495:43:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 3605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3596, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "1548:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3598, + "indexExpression": { + "argumentTypes": null, + "id": 3597, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "1557:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1548:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3603, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "1580:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3599, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "1563:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3601, + "indexExpression": { + "argumentTypes": null, + "id": 3600, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "1572:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1563:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "1563:16:18", + "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": 3604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1563:24:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1548:39:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3606, + "nodeType": "ExpressionStatement", + "src": "1548:39:18" + }, + { + "expression": { + "argumentTypes": null, + "id": 3622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3607, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "1597:7:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3611, + "indexExpression": { + "argumentTypes": null, + "id": 3608, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1605:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1597:13:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3612, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3609, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1611:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1611:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1597:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3620, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "1655:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3613, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "1625:7:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3615, + "indexExpression": { + "argumentTypes": null, + "id": 3614, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1633:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1625:13:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3618, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3616, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1639:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1639:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1625:25:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "1625:29:18", + "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": 3621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1625:37:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1597:65:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3623, + "nodeType": "ExpressionStatement", + "src": "1597:65:18" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3625, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "1686:4:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3626, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "1692:2:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3627, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "1696:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3624, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3444, + "src": "1677:8:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1677:26:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3629, + "nodeType": "EmitStatement", + "src": "1672:31:18" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1720:4:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3553, + "id": 3631, + "nodeType": "Return", + "src": "1713:11:18" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 3633, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3545, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3633, + "src": "1198:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1198:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3547, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3633, + "src": "1220:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1220:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3549, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3633, + "src": "1240:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1240:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1188:72:18" + }, + "returnParameters": { + "id": 3553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3552, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3633, + "src": "1277:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3551, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1277:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1276:6:18" + }, + "scope": 3697, + "src": "1167:564:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3660, + "nodeType": "Block", + "src": "1809:127:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3642, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "1819:7:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3646, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3643, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1827:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1827:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1819:19:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3647, + "indexExpression": { + "argumentTypes": null, + "id": 3645, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3635, + "src": "1839:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1819:28:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3648, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3637, + "src": "1850:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1819:37:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3650, + "nodeType": "ExpressionStatement", + "src": "1819:37:18" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3652, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1880:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1880:10:18", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3654, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3635, + "src": "1892:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3655, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3637, + "src": "1901:6:18", + "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": 3651, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3452, + "src": "1871:8:18", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1871:37:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3657, + "nodeType": "EmitStatement", + "src": "1866:42:18" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1925:4:18", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3641, + "id": 3659, + "nodeType": "Return", + "src": "1918:11:18" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 3661, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3635, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3661, + "src": "1754:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1754:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3637, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3661, + "src": "1771:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1771:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1753:33:18" + }, + "returnParameters": { + "id": 3641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3661, + "src": "1803:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1803:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1802:6:18" + }, + "scope": 3697, + "src": "1737:199:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3676, + "nodeType": "Block", + "src": "2023:47:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3670, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "2040:7:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3672, + "indexExpression": { + "argumentTypes": null, + "id": 3671, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3663, + "src": "2048:5:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2040:14:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3674, + "indexExpression": { + "argumentTypes": null, + "id": 3673, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3665, + "src": "2055:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2040:23:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3669, + "id": 3675, + "nodeType": "Return", + "src": "2033:30:18" + } + ] + }, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 3677, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3677, + "src": "1961:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1961:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3665, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3677, + "src": "1976:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1976:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1960:32:18" + }, + "returnParameters": { + "id": 3669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3668, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3677, + "src": "2014:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2014:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2013:9:18" + }, + "scope": 3697, + "src": "1942:128:18", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3695, + "nodeType": "Block", + "src": "2132:66:18", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3684, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "2142:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3686, + "indexExpression": { + "argumentTypes": null, + "id": 3685, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3679, + "src": "2151:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2142:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3691, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3681, + "src": "2184:6:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3687, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "2162:8:18", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3689, + "indexExpression": { + "argumentTypes": null, + "id": 3688, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3679, + "src": "2171:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2162:17:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "2162:21:18", + "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": 3692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2162:29:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2142:49:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3694, + "nodeType": "ExpressionStatement", + "src": "2142:49:18" + } + ] + }, + "documentation": null, + "functionSelector": "40c10f19", + "id": 3696, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3679, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3696, + "src": "2090:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3678, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2090:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3681, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3696, + "src": "2107:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2107:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2089:33:18" + }, + "returnParameters": { + "id": 3683, + "nodeType": "ParameterList", + "parameters": [], + "src": "2132:0:18" + }, + "scope": 3697, + "src": "2076:122:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3698, + "src": "149:2051:18" + } + ], + "src": "78:2123:18" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.523Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/Trader.json b/build-v1/contracts/Trader.json new file mode 100644 index 0000000..ad7d990 --- /dev/null +++ b/build-v1/contracts/Trader.json @@ -0,0 +1,20610 @@ +{ + "contractName": "Trader", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "buyer", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "receiveBase", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payQuote", + "type": "uint256" + } + ], + "name": "BuyBaseToken", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "maintainer", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isBaseToken", + "type": "bool" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "ChargeMaintainerFee", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "baseTokenAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "quoteTokenAmount", + "type": "uint256" + } + ], + "name": "ClaimAssets", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isBaseToken", + "type": "bool" + } + ], + "name": "Donate", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferPrepared", + "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": true, + "internalType": "address", + "name": "seller", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payBase", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "receiveQuote", + "type": "uint256" + } + ], + "name": "SellBaseToken", + "type": "event" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_RECEIVE_QUOTE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BASE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_BUYING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "_CLAIMED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_CLOSED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_BASE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DEPOSIT_QUOTE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_GAS_PRICE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_K_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_LP_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MAINTAINER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_MT_FEE_RATE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_NEW_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_ORACLE_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_OWNER_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_BALANCE_LIMIT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_RECEIVE_BASE_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_CAPITAL_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_TOKEN_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_R_STATUS_", + "outputs": [ + { + "internalType": "enum Types.RStatus", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SELLING_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_SUPERVISOR_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_TRADE_ALLOWED_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claimAssets", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "donateBaseToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "donateQuoteToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "finalSettlement", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getBaseCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getExpectedTarget", + "outputs": [ + { + "internalType": "uint256", + "name": "baseTarget", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quoteTarget", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMidPrice", + "outputs": [ + { + "internalType": "uint256", + "name": "midPrice", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOraclePrice", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "lp", + "type": "address" + } + ], + "name": "getQuoteCapitalBalanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalBaseCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTotalQuoteCapital", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "retrieve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minReceiveQuote", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "sellBaseToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxPayQuote", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "buyBaseToken", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "querySellBaseToken", + "outputs": [ + { + "internalType": "uint256", + "name": "receiveQuote", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "queryBuyBaseToken", + "outputs": [ + { + "internalType": "uint256", + "name": "payQuote", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"receiveBase\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payQuote\",\"type\":\"uint256\"}],\"name\":\"BuyBaseToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maintainer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBaseToken\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"ChargeMaintainerFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseTokenAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"quoteTokenAmount\",\"type\":\"uint256\"}],\"name\":\"ClaimAssets\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isBaseToken\",\"type\":\"bool\"}],\"name\":\"Donate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferPrepared\",\"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\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payBase\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"receiveQuote\",\"type\":\"uint256\"}],\"name\":\"SellBaseToken\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_RECEIVE_QUOTE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BASE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_BUYING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_CLAIMED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_CLOSED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_BASE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DEPOSIT_QUOTE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_GAS_PRICE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_K_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_LP_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MAINTAINER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_MT_FEE_RATE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_NEW_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_ORACLE_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_OWNER_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_BALANCE_LIMIT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_RECEIVE_BASE_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_CAPITAL_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_TOKEN_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_R_STATUS_\",\"outputs\":[{\"internalType\":\"enum Types.RStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SELLING_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_SUPERVISOR_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_BASE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TARGET_QUOTE_TOKEN_AMOUNT_\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_TRADE_ALLOWED_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPayQuote\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"buyBaseToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"donateBaseToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"donateQuoteToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalSettlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getBaseCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExpectedTarget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"baseTarget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quoteTarget\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMidPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"midPrice\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOraclePrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"lp\",\"type\":\"address\"}],\"name\":\"getQuoteCapitalBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalBaseCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalQuoteCapital\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"queryBuyBaseToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"payQuote\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"querySellBaseToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"receiveQuote\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"retrieve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minReceiveQuote\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"sellBaseToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"DODO Breeder\",\"methods\":{},\"title\":\"Trader\"},\"userdoc\":{\"methods\":{},\"notice\":\"Functions for trader operations\"}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Trader.sol\":\"Trader\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Pricing.sol\":{\"keccak256\":\"0xaec47be06aa7f8994923c80f2c2318304423666300a48f03a43265787f27c708\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e187f46639dd1127abc81439896e67e21338e9eee8707996606b0c9c8ede68a1\",\"dweb:/ipfs/QmPSfPbZuyM3haHZtWVFknZLAMqg2Jy613jQ36JGuCm7LS\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Settlement.sol\":{\"keccak256\":\"0x8167f472615dc95cf743254785eeef730a0a3b753f05f5b64391fbb9992c8ab6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3e2a25e398638f4bbecf434cf9b8b608c34a1271c051ee7e411b6c2c32702439\",\"dweb:/ipfs/QmUQmysLQ1k8uBWGzsTdmGCqyWQhZ4xtzPWAfsALGWYLPh\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol\":{\"keccak256\":\"0xbf15f2a72d59bbf0ed32b2a24fc4a68d45ffaa60dd2b2c1cc555d03ec1cd2f0a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7289884a2a8939295c4f61aeb7754bd3ce49e9d09188a1eddb762342589f36be\",\"dweb:/ipfs/QmaHYH51wieAyxBDASyHyfYSeu6UJNV7adD3AceeZXCgcZ\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Trader.sol\":{\"keccak256\":\"0x5646e8b46c11ec0405e6111d3ef46019235694c6940d3bc1eed20873ed545498\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5cc7c25e66cec9cee54e4dbcb48b8022391f4566b94e32d5ce8fd2e278cdc7b8\",\"dweb:/ipfs/QmVR9sWfVtnEyBhEPSppidiAdE9efTe5FcEZtzfUFXcbcZ\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOCallee.sol\":{\"keccak256\":\"0x229c6157d9f467f52d98634966a88fce7c7d68d1b7ee5c4897957b3bc33ee2c5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d9ca56838de93c5727da081665c37fb7e4448cc584e3ff72f5d9867775c0ee5f\",\"dweb:/ipfs/QmTVeQ8EJqnrSYsu4GU4jhaUzW9FC45fAoXKHniBNXNaZs\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOLpToken.sol\":{\"keccak256\":\"0x2183977c7a3cf5aa8d2f56d2167bf59515e34a8e4ebd2402efa85b612631955f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://61766578f8d1bef7f51912a5327e8d4e95e3d9adb509e9486b4e2c8cf179f5e6\",\"dweb:/ipfs/QmXJRK4JKMrJkdn7BFVueoNRixsu26shnX3Dxeb5T9JKK4\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IOracle.sol\":{\"keccak256\":\"0xed4a31155c30a764366aba2244e42406269e59618088f93c02f1b4c9fec9e53c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://bd3d50110c9120d942f7713e1cfced848ba7721ea336b2d9c4a87a6eb2a82ca9\",\"dweb:/ipfs/QmTYFeDcAyA2JpfoL1LsGLgj4TeRJxNV1rM27vdcaZSwpF\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DODOMath.sol\":{\"keccak256\":\"0xe3f63c53706f21ad68ebeff69321682ffa83bb0552db7e4453dff9772724f657\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://64e385f8c3fbe9e485d0b1b0f90f9621bf50fe02ee7cb95a44828a255db3581f\",\"dweb:/ipfs/QmNesw9cspw1fDDumDy1BSrCeGVij1BAfAVXpfajKHGUcn\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol\":{\"keccak256\":\"0x9a093cbac4e37ed4ee5e27495dae08754bbfec81f7c0ceb57a5a7ac4f362208f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://1ddd9e5de1c555f0d1232e148fe18574e6adaa348e792844d9011bbd39bf908f\",\"dweb:/ipfs/QmSgZNwPNqCrQC4kJNdwH3iQNasbTfw2cbTtAtNVcpqnYc\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/InitializableOwnable.sol\":{\"keccak256\":\"0xf462d86a85221f424c5a40f3c0d4a699c72a61b31ed07091ffb0e0b28b3cd137\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3d92b79f4527b3d7812395c41e5d0786309a121b99af3bff5cd7663f7255d335\",\"dweb:/ipfs/QmYkQANWtKsJNHKeD6PrtUFeC3D6uWAxhXjB97eBHwqtzK\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/ReentrancyGuard.sol\":{\"keccak256\":\"0xc9c3fc946350fd72083a9d5b1327ff923533ef37b054bc7b6007562b20b0faaf\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://fc140417457139fb240427629673bfaf970c5d4568ad1cfe582764c6e4855bbb\",\"dweb:/ipfs/Qmd7ESYe5kyM6NYiSzeFE74f1YGGPXzpdVd5qnYg2AvgH8\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol\":{\"keccak256\":\"0x0aebcc897b4de833e87e46a11e5a70d2b6e1d2fd99ebdf9e32e6421924f18b15\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a1098dace4f0664b0e3f5c3b6ce535ad2aba52e68fb6d1ea94b09debc06ed33c\",\"dweb:/ipfs/QmRbiq7M3Y8utAXaPWmVooGmoYF27N5dKVn6QYTaDFwqdP\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50612928806100206000396000f3fe608060405234801561001057600080fd5b50600436106102a05760003560e01c80638dae733311610167578063c6b73cf9116100ce578063ec2fd46d11610087578063ec2fd46d1461048c578063ed0aa42814610494578063ee27c689146104a7578063f2fde38b146104af578063f67ed448146104c2578063ffa64225146104d5576102a0565b8063c6b73cf914610451578063d4b9704614610459578063d689107c14610461578063dd58b41c14610469578063e67ce70614610471578063eab5d20e14610484576102a0565b8063ab44a7a311610120578063ab44a7a314610416578063ac1fbc981461041e578063b2094fd314610426578063c0ffa1781461042e578063c3a2a66514610436578063c5bbffe814610449576102a0565b80638dae7333146103d05780638ff5e742146103e35780639b020fba146103eb578063a2801e16146103f3578063a3161a5614610406578063a598aca71461040e576102a0565b80634a248d2a1161020b5780636ec6a58d116101c45780636ec6a58d1461039557806373a2ab7c1461039d578063796da7af146103a55780637aed942d146103ad5780637c9b8e89146103c05780638456db15146103c8576102a0565b80634a248d2a1461034d5780634de4527e146103555780634e71e0c81461035d57806354fd4d5014610365578063648a4fac1461036d57806368be20ad14610375576102a0565b80631f3c156e1161025d5780631f3c156e14610310578063245c96851461031a5780632aa82c6514610322578063387b0c111461032a5780633960f1421461033d5780634322ec8314610345576102a0565b80630cd1667d146102a55780630e6518e9146102c357806316048bc4146102cb5780631769ddaa146102e057806317be952e146102e857806318c0bbe4146102fd575b600080fd5b6102ad6104eb565b6040516102ba91906128cb565b60405180910390f35b6102ad61056e565b6102d3610574565b6040516102ba91906123f9565b6102ad610583565b6102f0610589565b6040516102ba91906124ab565b6102ad61030b366004612313565b610592565b6103186105a9565b005b6102ad610875565b6102ad61087b565b610318610338366004612313565b6108c0565b6102d3610920565b6102d361092f565b6102d361093e565b6102ad61094d565b610318610953565b6102ad6109e1565b6103186109e6565b6103886103833660046122ae565b610b00565b6040516102ba919061244a565b610388610b15565b6102d3610b25565b6102ad610b34565b6102ad6103bb3660046122ae565b610b79565b6102ad610c00565b6102d3610c06565b6102ad6103de366004612343565b610c15565b610388610eaa565b6102ad610eb8565b6102ad610401366004612313565b610ebe565b610388610ec9565b610388610ed2565b6102ad610ee2565b6102d3610ee8565b6102ad610ef7565b6102ad610efd565b6103186104443660046122c9565b610f03565b6103886110d9565b6102ad6110e9565b6102d36110ef565b6102d36110fe565b61038861110d565b6102ad61047f366004612343565b61111d565b6102ad611389565b6102ad61138f565b6103186104a2366004612313565b611395565b6102ad6113e5565b6103186104bd3660046122ae565b6114d6565b6102ad6104d03660046122ae565b611581565b6104dd6115b2565b6040516102ba9291906128e4565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561053057600080fd5b505afa158015610544573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610568919061232b565b90505b90565b60165481565b6000546001600160a01b031681565b60055481565b600e5460ff1681565b600061059d82611676565b50939695505050505050565b600154600160a01b900460ff16156105dc5760405162461bcd60e51b81526004016105d39061251d565b60405180910390fd5b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff166106175760405162461bcd60e51b81526004016105d390612876565b3360009081526017602052604090205460ff16156106475760405162461bcd60e51b81526004016105d39061284d565b336000818152601760205260408120805460ff191660011790559061066b90611581565b9050600061067833610b79565b9050600082156106af576106ac61068d61087b565b6010546106a0908663ffffffff6117c616565b9063ffffffff61180716565b90505b600082156106d8576106d56106c26104eb565b600f546106a0908663ffffffff6117c616565b90505b6010546106eb908363ffffffff61183916565b601055600f54610701908263ffffffff61183916565b600f8190555061072361071684601554611861565b839063ffffffff61188316565b915061074161073485601654611861565b829063ffffffff61188316565b905061074d33826118a8565b61075733836118df565b601354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90610789903390879060040161240d565b600060405180830381600087803b1580156107a357600080fd5b505af11580156107b7573d6000803e3d6000fd5b5050601454604051632770a7eb60e21b81526001600160a01b039091169250639dc29fac91506107ed903390889060040161240d565b600060405180830381600087803b15801561080757600080fd5b505af115801561081b573d6000803e3d6000fd5b50505050336001600160a01b03167fbe5f7fe66d16c6a87bb5b8b08a96634fe4f1c2bac9e5e413efe41a782d4d0c43828460405161085a9291906128e4565b60405180910390a2505050506001805460ff60a01b19169055565b60105481565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561053057600080fd5b600154600160a01b900460ff16156108ea5760405162461bcd60e51b81526004016105d39061251d565b6001805460ff60a01b1916600160a01b1790556109073382611916565b6109108161197b565b506001805460ff60a01b19169055565b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b0316331461097d5760405162461bcd60e51b81526004016105d3906124f6565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b6000546001600160a01b03163314610a105760405162461bcd60e51b81526004016105d390612709565b600154600160b01b900460ff1615610a3a5760405162461bcd60e51b81526004016105d3906126b7565b6001805462ffffff60b81b1960ff60b01b19909116600160b01b171690556000610a626104eb565b90506000610a6e61087b565b90506010546012541115610aaa576000610a9560105460125461183990919063ffffffff16565b9050610aa181846119cf565b60155550610ab1565b6012546010555b600f546011541115610aeb576000610ad6600f5460115461183990919063ffffffff16565b9050610ae281836119cf565b60165550610af2565b601154600f555b5050600e805460ff19169055565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561053057600080fd5b6013546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610baa9085906004016123f9565b60206040518083038186803b158015610bc257600080fd5b505afa158015610bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfa919061232b565b92915050565b60125481565b6001546001600160a01b031681565b600154600090600160c81b900460ff16610c415760405162461bcd60e51b81526004016105d390612665565b600354610100900460ff16610c685760405162461bcd60e51b81526004016105d3906126dc565b6002543a1115610c8a5760405162461bcd60e51b81526004016105d390612823565b600154600160a01b900460ff1615610cb45760405162461bcd60e51b81526004016105d39061251d565b6001805460ff60a01b1916600160a01b17905560008080808080610cd78b6119ed565b95509550955095509550955089861015610d035760405162461bcd60e51b81526004016105d390612799565b610d0d33876118df565b8715610d725760405163301bc67560e11b815233906360378cea90610d3f906000908f908b908f908f90600401612465565b600060405180830381600087803b158015610d5957600080fd5b505af1158015610d6d573d6000803e3d6000fd5b505050505b610d7c338c611b42565b8315610de357600754610d98906001600160a01b0316856118df565b6007546040516001600160a01b03909116907fe4fed5362e2669c70e5da5a18942d1e617d8917f6adc0164d9668bd3a6d0cebe90610dda906000908890612455565b60405180910390a25b8160105414610df25760108290555b80600f5414610e0157600f8190555b826002811115610e0d57fe5b600e5460ff166002811115610e1e57fe5b14610e4257600e805484919060ff19166001836002811115610e3c57fe5b02179055505b610e4b8561197b565b336001600160a01b03167fd8648b6ac54162763c86fd54bf2005af8ecd2f9cb273a5775921fd7f91e17b2d8c88604051610e869291906128e4565b60405180910390a250506001805460ff60a01b191690555091979650505050505050565b600354610100900460ff1681565b60045481565b600061059d826119ed565b60035460ff1681565b600154600160c01b900460ff1681565b600b5481565b6014546001600160a01b031681565b600f5481565b600c5481565b6000546001600160a01b03163314610f2d5760405162461bcd60e51b81526004016105d390612709565b6008546001600160a01b0383811691161415610ff457601154610f56908263ffffffff61188316565b6008546040516370a0823160e01b81526001600160a01b03909116906370a0823190610f869030906004016123f9565b60206040518083038186803b158015610f9e57600080fd5b505afa158015610fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd6919061232b565b1015610ff45760405162461bcd60e51b81526004016105d39061262e565b6009546001600160a01b03838116911614156110bb5760125461101d908263ffffffff61188316565b6009546040516370a0823160e01b81526001600160a01b03909116906370a082319061104d9030906004016123f9565b60206040518083038186803b15801561106557600080fd5b505afa158015611079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109d919061232b565b10156110bb5760405162461bcd60e51b81526004016105d3906124bf565b6110d56001600160a01b038316338363ffffffff611ba716565b5050565b600154600160b81b900460ff1681565b60155481565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b600154600090600160c81b900460ff166111495760405162461bcd60e51b81526004016105d390612665565b60035460ff1661116b5760405162461bcd60e51b81526004016105d39061289f565b6002543a111561118d5760405162461bcd60e51b81526004016105d390612823565b600154600160a01b900460ff16156111b75760405162461bcd60e51b81526004016105d39061251d565b6001805460ff60a01b1916600160a01b179055600080808080806111da8b611676565b955095509550955095509550898611156112065760405162461bcd60e51b81526004016105d3906127d0565b611210338c6118a8565b87156112755760405163301bc67560e11b815233906360378cea90611242906001908f908b908f908f90600401612465565b600060405180830381600087803b15801561125c57600080fd5b505af1158015611270573d6000803e3d6000fd5b505050505b61127f3387611916565b83156112e65760075461129b906001600160a01b0316856118a8565b6007546040516001600160a01b03909116907fe4fed5362e2669c70e5da5a18942d1e617d8917f6adc0164d9668bd3a6d0cebe906112dd906001908890612455565b60405180910390a25b81601054146112f55760108290555b80600f541461130457600f8190555b82600281111561131057fe5b600e5460ff16600281111561132157fe5b1461134557600e805484919060ff1916600183600281111561133f57fe5b02179055505b61134e85611c02565b336001600160a01b03167fe93ad76094f247c0dafc1c61adc2187de1ac2738f7a3b49cb20b2263420251a38c88604051610e869291906128e4565b60115481565b600d5481565b600154600160a01b900460ff16156113bf5760405162461bcd60e51b81526004016105d39061251d565b6001805460ff60a01b1916600160a01b1790556113dc3382611b42565b61091081611c02565b60008060006113f26115b2565b90925090506002600e5460ff16600281111561140a57fe5b141561148c57600061143661142e6012546106a085866117c690919063ffffffff16565b6012546119cf565b905061146f611447600d5483611861565b600d5461146390670de0b6b3a76400009063ffffffff61183916565b9063ffffffff61188316565b905061148261147c610b34565b826119cf565b935050505061056b565b60006114b26114aa6011546106a086876117c690919063ffffffff16565b6011546119cf565b90506114c3611447600d5483611861565b90506114826114d0610b34565b82611861565b6000546001600160a01b031633146115005760405162461bcd60e51b81526004016105d390612709565b6001600160a01b0381166115265760405162461bcd60e51b81526004016105d390612690565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610baa9085906004016123f9565b601254601154600091829182600e5460ff1660028111156115cf57fe5b14156115e657600f54601054935093505050611672565b6002600e5460ff1660028111156115f957fe5b141561162b576000611609611c4b565b600f5490915061161f848363ffffffff61188316565b94509450505050611672565b6001600e5460ff16600281111561163e57fe5b141561166f57600061164e611cb2565b9050611660828263ffffffff61188316565b60105494509450505050611672565b50505b9091565b6000806000806000806116876115b2565b809350819250505061169b87600b54611861565b94506116a987600c54611861565b935060006116c1856114638a8963ffffffff61188316565b90506000600e5460ff1660028111156116d657fe5b14156116f1576116e68183611d10565b9650600193506117bc565b6001600e5460ff16600281111561170457fe5b1415611717576116e68160115484611d58565b6002600e5460ff16600281111561172a57fe5b14156117bc5760006117476012548561183990919063ffffffff16565b905060006117608460115461183990919063ffffffff16565b905080831015611782576117778360125487611da1565b9850600295506117b9565b8083141561179657819850600095506117b9565b6117b26107166117ac858463ffffffff61183916565b86611d10565b9850600195505b50505b5091939550919395565b6000826117d557506000610bfa565b828202828482816117e257fe5b04146118005760405162461bcd60e51b81526004016105d390612800565b9392505050565b60008082116118285760405162461bcd60e51b81526004016105d3906125ac565b81838161183157fe5b049392505050565b60008282111561185b5760405162461bcd60e51b81526004016105d39061260b565b50900390565b6000670de0b6b3a764000061187c848463ffffffff6117c616565b8161183157fe5b6000828201838110156118005760405162461bcd60e51b81526004016105d39061272c565b6008546118c5906001600160a01b0316838363ffffffff611ba716565b6011546118d8908263ffffffff61183916565b6011555050565b6009546118fc906001600160a01b0316838363ffffffff611ba716565b60125461190f908263ffffffff61183916565b6012555050565b60055460125461192c908363ffffffff61188316565b111561194a5760405162461bcd60e51b81526004016105d390612540565b600954611968906001600160a01b031683308463ffffffff611de516565b60125461190f908263ffffffff61188316565b60105461198e908263ffffffff61188316565b6010556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e906119c49083906000906128d4565b60405180910390a150565b6000611800826106a085670de0b6b3a764000063ffffffff6117c616565b6000806000806000806119fe6115b2565b92509050866000600e5460ff166002811115611a1657fe5b1415611a3157611a268184611e0c565b965060029350611afa565b6001600e5460ff166002811115611a4457fe5b1415611ae6576000611a616011548461183990919063ffffffff16565b90506000611a7a8560125461183990919063ffffffff16565b905081831015611aa857611a918360115486611e46565b98506001955080891115611aa3578098505b611adf565b81831415611abc5780985060009550611adf565b611ad8610734611ad2858563ffffffff61183916565b87611e0c565b9850600295505b5050611afa565b611af38160125485611e66565b9650600293505b611b0687600b54611861565b9550611b1487600c54611861565b9450611b3685611b2a898963ffffffff61183916565b9063ffffffff61183916565b96505091939550919395565b600454601154611b58908363ffffffff61188316565b1115611b765760405162461bcd60e51b81526004016105d3906125d4565b600854611b94906001600160a01b031683308463ffffffff611de516565b6011546118d8908263ffffffff61188316565b611bfd8363a9059cbb60e01b8484604051602401611bc692919061240d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611e96565b505050565b600f54611c15908263ffffffff61188316565b600f556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e906119c49083906001906128d4565b600080611c65600f5460115461183990919063ffffffff16565b90506000611c71610b34565b90506000611c7f8383611861565b90506000611c92601254600d5484611f4d565b9050611ca96012548261183990919063ffffffff16565b94505050505090565b600080611ccc60105460125461183990919063ffffffff16565b90506000611cd8610b34565b90506000611ce683836119cf565b90506000611cf9601154600d5484611f4d565b9050611ca96011548261183990919063ffffffff16565b6000818310611d315760405162461bcd60e51b81526004016105d39061262e565b6000611d43838563ffffffff61183916565b9050611d50838483611ff2565b949350505050565b6000828410611d795760405162461bcd60e51b81526004016105d39061262e565b6000611d8b848663ffffffff61183916565b9050611d98838583611ff2565b95945050505050565b600080611dac610b34565b90506000611dc98486611dbf858a61200e565b6001600d54612038565b9050611ddb818663ffffffff61183916565b9695505050505050565b611e06846323b872dd60e01b858585604051602401611bc693929190612426565b50505050565b600080611e17610b34565b90506000611e348485611e2a8589611861565b6000600d54612038565b9050611d98848263ffffffff61183916565b600080611e59848663ffffffff61188316565b9050611d98838286611ff2565b600080611e71610b34565b90506000611e848486611e2a858a611861565b9050611ddb858263ffffffff61183916565b60006060836001600160a01b031683604051611eb291906123c0565b6000604051808303816000865af19150503d8060008114611eef576040519150601f19603f3d011682016040523d82523d6000602084013e611ef4565b606091505b509150915081611f165760405162461bcd60e51b81526004016105d390612577565b805115611e065780806020019051810190611f3191906122f3565b611e065760405162461bcd60e51b81526004016105d39061274f565b600080611f74611f6e6004611f628787611861565b9063ffffffff6117c616565b866121a0565b9050611f9a611f95670de0b6b3a7640000611f62848263ffffffff61188316565b6121be565b90506000611fcf611fb983670de0b6b3a764000063ffffffff61183916565b611fca87600263ffffffff6117c616565b6121a0565b9050611ddb86611fed670de0b6b3a76400008463ffffffff61188316565b611861565b600080611ffd610b34565b9050611d9885858584600d546121f5565b6000611800670de0b6b3a764000061202c858563ffffffff6117c616565b9063ffffffff61226a16565b60008061204d866106a089611f62878c611861565b9050600061207261206c670de0b6b3a76400008663ffffffff61183916565b88611861565b9050600185156120935761208c828863ffffffff61188316565b91506120a6565b6120a3838863ffffffff61188316565b92505b8282106120c8576120bd828463ffffffff61183916565b9150600190506120df565b6120d8838363ffffffff61183916565b9150600090505b600061210f6121016004611f62670de0b6b3a76400008a63ffffffff61183916565b611fed8c611f628a8f611861565b9050612128611f9582611463868063ffffffff6117c616565b905060006121496002611f62670de0b6b3a76400008a63ffffffff61183916565b90506000831561216a57612163858463ffffffff61188316565b905061217d565b61217a838663ffffffff61183916565b90505b881561219a5761218d81836119cf565b9650505050505050611d98565b61218d81835b60006118008261202c85670de0b6b3a764000063ffffffff6117c616565b80600160028204015b818110156121ef578091506002818285816121de57fe5b0401816121e757fe5b0490506121c7565b50919050565b60008061220c84611fed888863ffffffff61183916565b9050600061222d612227886106a08b8063ffffffff6117c616565b876121a0565b9050600061223b8583611861565b905061225d83611fed83611463670de0b6b3a76400008a63ffffffff61183916565b9998505050505050505050565b6000806122778484611807565b90508281028403801561228f57506001019050610bfa565b509050610bfa565b80356001600160a01b0381168114610bfa57600080fd5b6000602082840312156122bf578081fd5b6118008383612297565b600080604083850312156122db578081fd5b6122e58484612297565b946020939093013593505050565b600060208284031215612304578081fd5b81518015158114611800578182fd5b600060208284031215612324578081fd5b5035919050565b60006020828403121561233c578081fd5b5051919050565b60008060008060608587031215612358578182fd5b8435935060208501359250604085013567ffffffffffffffff8082111561237d578384fd5b81870188601f82011261238e578485fd5b803592508183111561239e578485fd5b8860208483010111156123af578485fd5b959894975050602090940194505050565b60008251815b818110156123e057602081860181015185830152016123c6565b818111156123ee5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b9115158252602082015260400190565b6000861515825285602083015284604083015260806060830152826080830152828460a084013781830160a090810191909152601f909201601f19160101949350505050565b60208101600383106124b957fe5b91905290565b6020808252601d908201527f444f444f5f51554f54455f42414c414e43455f4e4f545f454e4f554748000000604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526009908201526814915153951490539560ba1b604082015260600190565b6020808252601c908201527f51554f54455f42414c414e43455f4c494d49545f455843454544454400000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b6020808252601b908201527f424153455f42414c414e43455f4c494d49545f45584345454445440000000000604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252601c908201527f444f444f5f424153455f42414c414e43455f4e4f545f454e4f55474800000000604082015260600190565b602080825260119082015270151490511157d393d517d0531313d5d151607a1b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600b908201526a1113d113d7d0d313d4d15160aa1b604082015260600190565b60208082526013908201527214d15313125391d7d393d517d0531313d5d151606a1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601c908201527f53454c4c5f424153455f524543454956455f4e4f545f454e4f55474800000000604082015260600190565b602080825260169082015275084aab2be8482a68abe869ea6a8bea89e9ebe9aaa86960531b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b60208082526010908201526f11d054d7d4149250d157d15610d1515160821b604082015260600190565b6020808252600f908201526e1053149150511657d0d31052535151608a1b604082015260600190565b6020808252600f908201526e1113d113d7d393d517d0d313d4d151608a1b604082015260600190565b602080825260129082015271109556525391d7d393d517d0531313d5d15160721b604082015260600190565b90815260200190565b9182521515602082015260400190565b91825260208201526040019056fea26469706673582212207a4c255481018edf84fe613b9725b4a42410b40e0027c90d542b6341c231f00264736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102a05760003560e01c80638dae733311610167578063c6b73cf9116100ce578063ec2fd46d11610087578063ec2fd46d1461048c578063ed0aa42814610494578063ee27c689146104a7578063f2fde38b146104af578063f67ed448146104c2578063ffa64225146104d5576102a0565b8063c6b73cf914610451578063d4b9704614610459578063d689107c14610461578063dd58b41c14610469578063e67ce70614610471578063eab5d20e14610484576102a0565b8063ab44a7a311610120578063ab44a7a314610416578063ac1fbc981461041e578063b2094fd314610426578063c0ffa1781461042e578063c3a2a66514610436578063c5bbffe814610449576102a0565b80638dae7333146103d05780638ff5e742146103e35780639b020fba146103eb578063a2801e16146103f3578063a3161a5614610406578063a598aca71461040e576102a0565b80634a248d2a1161020b5780636ec6a58d116101c45780636ec6a58d1461039557806373a2ab7c1461039d578063796da7af146103a55780637aed942d146103ad5780637c9b8e89146103c05780638456db15146103c8576102a0565b80634a248d2a1461034d5780634de4527e146103555780634e71e0c81461035d57806354fd4d5014610365578063648a4fac1461036d57806368be20ad14610375576102a0565b80631f3c156e1161025d5780631f3c156e14610310578063245c96851461031a5780632aa82c6514610322578063387b0c111461032a5780633960f1421461033d5780634322ec8314610345576102a0565b80630cd1667d146102a55780630e6518e9146102c357806316048bc4146102cb5780631769ddaa146102e057806317be952e146102e857806318c0bbe4146102fd575b600080fd5b6102ad6104eb565b6040516102ba91906128cb565b60405180910390f35b6102ad61056e565b6102d3610574565b6040516102ba91906123f9565b6102ad610583565b6102f0610589565b6040516102ba91906124ab565b6102ad61030b366004612313565b610592565b6103186105a9565b005b6102ad610875565b6102ad61087b565b610318610338366004612313565b6108c0565b6102d3610920565b6102d361092f565b6102d361093e565b6102ad61094d565b610318610953565b6102ad6109e1565b6103186109e6565b6103886103833660046122ae565b610b00565b6040516102ba919061244a565b610388610b15565b6102d3610b25565b6102ad610b34565b6102ad6103bb3660046122ae565b610b79565b6102ad610c00565b6102d3610c06565b6102ad6103de366004612343565b610c15565b610388610eaa565b6102ad610eb8565b6102ad610401366004612313565b610ebe565b610388610ec9565b610388610ed2565b6102ad610ee2565b6102d3610ee8565b6102ad610ef7565b6102ad610efd565b6103186104443660046122c9565b610f03565b6103886110d9565b6102ad6110e9565b6102d36110ef565b6102d36110fe565b61038861110d565b6102ad61047f366004612343565b61111d565b6102ad611389565b6102ad61138f565b6103186104a2366004612313565b611395565b6102ad6113e5565b6103186104bd3660046122ae565b6114d6565b6102ad6104d03660046122ae565b611581565b6104dd6115b2565b6040516102ba9291906128e4565b601354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561053057600080fd5b505afa158015610544573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610568919061232b565b90505b90565b60165481565b6000546001600160a01b031681565b60055481565b600e5460ff1681565b600061059d82611676565b50939695505050505050565b600154600160a01b900460ff16156105dc5760405162461bcd60e51b81526004016105d39061251d565b60405180910390fd5b6001805460ff60a01b1916600160a01b1790819055600160b01b900460ff166106175760405162461bcd60e51b81526004016105d390612876565b3360009081526017602052604090205460ff16156106475760405162461bcd60e51b81526004016105d39061284d565b336000818152601760205260408120805460ff191660011790559061066b90611581565b9050600061067833610b79565b9050600082156106af576106ac61068d61087b565b6010546106a0908663ffffffff6117c616565b9063ffffffff61180716565b90505b600082156106d8576106d56106c26104eb565b600f546106a0908663ffffffff6117c616565b90505b6010546106eb908363ffffffff61183916565b601055600f54610701908263ffffffff61183916565b600f8190555061072361071684601554611861565b839063ffffffff61188316565b915061074161073485601654611861565b829063ffffffff61188316565b905061074d33826118a8565b61075733836118df565b601354604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90610789903390879060040161240d565b600060405180830381600087803b1580156107a357600080fd5b505af11580156107b7573d6000803e3d6000fd5b5050601454604051632770a7eb60e21b81526001600160a01b039091169250639dc29fac91506107ed903390889060040161240d565b600060405180830381600087803b15801561080757600080fd5b505af115801561081b573d6000803e3d6000fd5b50505050336001600160a01b03167fbe5f7fe66d16c6a87bb5b8b08a96634fe4f1c2bac9e5e413efe41a782d4d0c43828460405161085a9291906128e4565b60405180910390a2505050506001805460ff60a01b19169055565b60105481565b601454604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b15801561053057600080fd5b600154600160a01b900460ff16156108ea5760405162461bcd60e51b81526004016105d39061251d565b6001805460ff60a01b1916600160a01b1790556109073382611916565b6109108161197b565b506001805460ff60a01b19169055565b6006546001600160a01b031681565b6007546001600160a01b031681565b6008546001600160a01b031681565b60025481565b6001546001600160a01b0316331461097d5760405162461bcd60e51b81526004016105d3906124f6565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606590565b6000546001600160a01b03163314610a105760405162461bcd60e51b81526004016105d390612709565b600154600160b01b900460ff1615610a3a5760405162461bcd60e51b81526004016105d3906126b7565b6001805462ffffff60b81b1960ff60b01b19909116600160b01b171690556000610a626104eb565b90506000610a6e61087b565b90506010546012541115610aaa576000610a9560105460125461183990919063ffffffff16565b9050610aa181846119cf565b60155550610ab1565b6012546010555b600f546011541115610aeb576000610ad6600f5460115461183990919063ffffffff16565b9050610ae281836119cf565b60165550610af2565b601154600f555b5050600e805460ff19169055565b60176020526000908152604090205460ff1681565b600154600160b01b900460ff1681565b600a546001600160a01b031681565b600a5460408051634c6afee560e11b815290516000926001600160a01b0316916398d5fdca916004808301926020929190829003018186803b15801561053057600080fd5b6013546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610baa9085906004016123f9565b60206040518083038186803b158015610bc257600080fd5b505afa158015610bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfa919061232b565b92915050565b60125481565b6001546001600160a01b031681565b600154600090600160c81b900460ff16610c415760405162461bcd60e51b81526004016105d390612665565b600354610100900460ff16610c685760405162461bcd60e51b81526004016105d3906126dc565b6002543a1115610c8a5760405162461bcd60e51b81526004016105d390612823565b600154600160a01b900460ff1615610cb45760405162461bcd60e51b81526004016105d39061251d565b6001805460ff60a01b1916600160a01b17905560008080808080610cd78b6119ed565b95509550955095509550955089861015610d035760405162461bcd60e51b81526004016105d390612799565b610d0d33876118df565b8715610d725760405163301bc67560e11b815233906360378cea90610d3f906000908f908b908f908f90600401612465565b600060405180830381600087803b158015610d5957600080fd5b505af1158015610d6d573d6000803e3d6000fd5b505050505b610d7c338c611b42565b8315610de357600754610d98906001600160a01b0316856118df565b6007546040516001600160a01b03909116907fe4fed5362e2669c70e5da5a18942d1e617d8917f6adc0164d9668bd3a6d0cebe90610dda906000908890612455565b60405180910390a25b8160105414610df25760108290555b80600f5414610e0157600f8190555b826002811115610e0d57fe5b600e5460ff166002811115610e1e57fe5b14610e4257600e805484919060ff19166001836002811115610e3c57fe5b02179055505b610e4b8561197b565b336001600160a01b03167fd8648b6ac54162763c86fd54bf2005af8ecd2f9cb273a5775921fd7f91e17b2d8c88604051610e869291906128e4565b60405180910390a250506001805460ff60a01b191690555091979650505050505050565b600354610100900460ff1681565b60045481565b600061059d826119ed565b60035460ff1681565b600154600160c01b900460ff1681565b600b5481565b6014546001600160a01b031681565b600f5481565b600c5481565b6000546001600160a01b03163314610f2d5760405162461bcd60e51b81526004016105d390612709565b6008546001600160a01b0383811691161415610ff457601154610f56908263ffffffff61188316565b6008546040516370a0823160e01b81526001600160a01b03909116906370a0823190610f869030906004016123f9565b60206040518083038186803b158015610f9e57600080fd5b505afa158015610fb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd6919061232b565b1015610ff45760405162461bcd60e51b81526004016105d39061262e565b6009546001600160a01b03838116911614156110bb5760125461101d908263ffffffff61188316565b6009546040516370a0823160e01b81526001600160a01b03909116906370a082319061104d9030906004016123f9565b60206040518083038186803b15801561106557600080fd5b505afa158015611079573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109d919061232b565b10156110bb5760405162461bcd60e51b81526004016105d3906124bf565b6110d56001600160a01b038316338363ffffffff611ba716565b5050565b600154600160b81b900460ff1681565b60155481565b6009546001600160a01b031681565b6013546001600160a01b031681565b600154600160c81b900460ff1681565b600154600090600160c81b900460ff166111495760405162461bcd60e51b81526004016105d390612665565b60035460ff1661116b5760405162461bcd60e51b81526004016105d39061289f565b6002543a111561118d5760405162461bcd60e51b81526004016105d390612823565b600154600160a01b900460ff16156111b75760405162461bcd60e51b81526004016105d39061251d565b6001805460ff60a01b1916600160a01b179055600080808080806111da8b611676565b955095509550955095509550898611156112065760405162461bcd60e51b81526004016105d3906127d0565b611210338c6118a8565b87156112755760405163301bc67560e11b815233906360378cea90611242906001908f908b908f908f90600401612465565b600060405180830381600087803b15801561125c57600080fd5b505af1158015611270573d6000803e3d6000fd5b505050505b61127f3387611916565b83156112e65760075461129b906001600160a01b0316856118a8565b6007546040516001600160a01b03909116907fe4fed5362e2669c70e5da5a18942d1e617d8917f6adc0164d9668bd3a6d0cebe906112dd906001908890612455565b60405180910390a25b81601054146112f55760108290555b80600f541461130457600f8190555b82600281111561131057fe5b600e5460ff16600281111561132157fe5b1461134557600e805484919060ff1916600183600281111561133f57fe5b02179055505b61134e85611c02565b336001600160a01b03167fe93ad76094f247c0dafc1c61adc2187de1ac2738f7a3b49cb20b2263420251a38c88604051610e869291906128e4565b60115481565b600d5481565b600154600160a01b900460ff16156113bf5760405162461bcd60e51b81526004016105d39061251d565b6001805460ff60a01b1916600160a01b1790556113dc3382611b42565b61091081611c02565b60008060006113f26115b2565b90925090506002600e5460ff16600281111561140a57fe5b141561148c57600061143661142e6012546106a085866117c690919063ffffffff16565b6012546119cf565b905061146f611447600d5483611861565b600d5461146390670de0b6b3a76400009063ffffffff61183916565b9063ffffffff61188316565b905061148261147c610b34565b826119cf565b935050505061056b565b60006114b26114aa6011546106a086876117c690919063ffffffff16565b6011546119cf565b90506114c3611447600d5483611861565b90506114826114d0610b34565b82611861565b6000546001600160a01b031633146115005760405162461bcd60e51b81526004016105d390612709565b6001600160a01b0381166115265760405162461bcd60e51b81526004016105d390612690565b600080546040516001600160a01b03808516939216917fdcf55418cee3220104fef63f979ff3c4097ad240c0c43dcb33ce837748983e6291a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b6014546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610baa9085906004016123f9565b601254601154600091829182600e5460ff1660028111156115cf57fe5b14156115e657600f54601054935093505050611672565b6002600e5460ff1660028111156115f957fe5b141561162b576000611609611c4b565b600f5490915061161f848363ffffffff61188316565b94509450505050611672565b6001600e5460ff16600281111561163e57fe5b141561166f57600061164e611cb2565b9050611660828263ffffffff61188316565b60105494509450505050611672565b50505b9091565b6000806000806000806116876115b2565b809350819250505061169b87600b54611861565b94506116a987600c54611861565b935060006116c1856114638a8963ffffffff61188316565b90506000600e5460ff1660028111156116d657fe5b14156116f1576116e68183611d10565b9650600193506117bc565b6001600e5460ff16600281111561170457fe5b1415611717576116e68160115484611d58565b6002600e5460ff16600281111561172a57fe5b14156117bc5760006117476012548561183990919063ffffffff16565b905060006117608460115461183990919063ffffffff16565b905080831015611782576117778360125487611da1565b9850600295506117b9565b8083141561179657819850600095506117b9565b6117b26107166117ac858463ffffffff61183916565b86611d10565b9850600195505b50505b5091939550919395565b6000826117d557506000610bfa565b828202828482816117e257fe5b04146118005760405162461bcd60e51b81526004016105d390612800565b9392505050565b60008082116118285760405162461bcd60e51b81526004016105d3906125ac565b81838161183157fe5b049392505050565b60008282111561185b5760405162461bcd60e51b81526004016105d39061260b565b50900390565b6000670de0b6b3a764000061187c848463ffffffff6117c616565b8161183157fe5b6000828201838110156118005760405162461bcd60e51b81526004016105d39061272c565b6008546118c5906001600160a01b0316838363ffffffff611ba716565b6011546118d8908263ffffffff61183916565b6011555050565b6009546118fc906001600160a01b0316838363ffffffff611ba716565b60125461190f908263ffffffff61183916565b6012555050565b60055460125461192c908363ffffffff61188316565b111561194a5760405162461bcd60e51b81526004016105d390612540565b600954611968906001600160a01b031683308463ffffffff611de516565b60125461190f908263ffffffff61188316565b60105461198e908263ffffffff61188316565b6010556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e906119c49083906000906128d4565b60405180910390a150565b6000611800826106a085670de0b6b3a764000063ffffffff6117c616565b6000806000806000806119fe6115b2565b92509050866000600e5460ff166002811115611a1657fe5b1415611a3157611a268184611e0c565b965060029350611afa565b6001600e5460ff166002811115611a4457fe5b1415611ae6576000611a616011548461183990919063ffffffff16565b90506000611a7a8560125461183990919063ffffffff16565b905081831015611aa857611a918360115486611e46565b98506001955080891115611aa3578098505b611adf565b81831415611abc5780985060009550611adf565b611ad8610734611ad2858563ffffffff61183916565b87611e0c565b9850600295505b5050611afa565b611af38160125485611e66565b9650600293505b611b0687600b54611861565b9550611b1487600c54611861565b9450611b3685611b2a898963ffffffff61183916565b9063ffffffff61183916565b96505091939550919395565b600454601154611b58908363ffffffff61188316565b1115611b765760405162461bcd60e51b81526004016105d3906125d4565b600854611b94906001600160a01b031683308463ffffffff611de516565b6011546118d8908263ffffffff61188316565b611bfd8363a9059cbb60e01b8484604051602401611bc692919061240d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611e96565b505050565b600f54611c15908263ffffffff61188316565b600f556040517fa259c93818139b6bc90fb80e8feb75122b42edaae49560f81392cf4e1946726e906119c49083906001906128d4565b600080611c65600f5460115461183990919063ffffffff16565b90506000611c71610b34565b90506000611c7f8383611861565b90506000611c92601254600d5484611f4d565b9050611ca96012548261183990919063ffffffff16565b94505050505090565b600080611ccc60105460125461183990919063ffffffff16565b90506000611cd8610b34565b90506000611ce683836119cf565b90506000611cf9601154600d5484611f4d565b9050611ca96011548261183990919063ffffffff16565b6000818310611d315760405162461bcd60e51b81526004016105d39061262e565b6000611d43838563ffffffff61183916565b9050611d50838483611ff2565b949350505050565b6000828410611d795760405162461bcd60e51b81526004016105d39061262e565b6000611d8b848663ffffffff61183916565b9050611d98838583611ff2565b95945050505050565b600080611dac610b34565b90506000611dc98486611dbf858a61200e565b6001600d54612038565b9050611ddb818663ffffffff61183916565b9695505050505050565b611e06846323b872dd60e01b858585604051602401611bc693929190612426565b50505050565b600080611e17610b34565b90506000611e348485611e2a8589611861565b6000600d54612038565b9050611d98848263ffffffff61183916565b600080611e59848663ffffffff61188316565b9050611d98838286611ff2565b600080611e71610b34565b90506000611e848486611e2a858a611861565b9050611ddb858263ffffffff61183916565b60006060836001600160a01b031683604051611eb291906123c0565b6000604051808303816000865af19150503d8060008114611eef576040519150601f19603f3d011682016040523d82523d6000602084013e611ef4565b606091505b509150915081611f165760405162461bcd60e51b81526004016105d390612577565b805115611e065780806020019051810190611f3191906122f3565b611e065760405162461bcd60e51b81526004016105d39061274f565b600080611f74611f6e6004611f628787611861565b9063ffffffff6117c616565b866121a0565b9050611f9a611f95670de0b6b3a7640000611f62848263ffffffff61188316565b6121be565b90506000611fcf611fb983670de0b6b3a764000063ffffffff61183916565b611fca87600263ffffffff6117c616565b6121a0565b9050611ddb86611fed670de0b6b3a76400008463ffffffff61188316565b611861565b600080611ffd610b34565b9050611d9885858584600d546121f5565b6000611800670de0b6b3a764000061202c858563ffffffff6117c616565b9063ffffffff61226a16565b60008061204d866106a089611f62878c611861565b9050600061207261206c670de0b6b3a76400008663ffffffff61183916565b88611861565b9050600185156120935761208c828863ffffffff61188316565b91506120a6565b6120a3838863ffffffff61188316565b92505b8282106120c8576120bd828463ffffffff61183916565b9150600190506120df565b6120d8838363ffffffff61183916565b9150600090505b600061210f6121016004611f62670de0b6b3a76400008a63ffffffff61183916565b611fed8c611f628a8f611861565b9050612128611f9582611463868063ffffffff6117c616565b905060006121496002611f62670de0b6b3a76400008a63ffffffff61183916565b90506000831561216a57612163858463ffffffff61188316565b905061217d565b61217a838663ffffffff61183916565b90505b881561219a5761218d81836119cf565b9650505050505050611d98565b61218d81835b60006118008261202c85670de0b6b3a764000063ffffffff6117c616565b80600160028204015b818110156121ef578091506002818285816121de57fe5b0401816121e757fe5b0490506121c7565b50919050565b60008061220c84611fed888863ffffffff61183916565b9050600061222d612227886106a08b8063ffffffff6117c616565b876121a0565b9050600061223b8583611861565b905061225d83611fed83611463670de0b6b3a76400008a63ffffffff61183916565b9998505050505050505050565b6000806122778484611807565b90508281028403801561228f57506001019050610bfa565b509050610bfa565b80356001600160a01b0381168114610bfa57600080fd5b6000602082840312156122bf578081fd5b6118008383612297565b600080604083850312156122db578081fd5b6122e58484612297565b946020939093013593505050565b600060208284031215612304578081fd5b81518015158114611800578182fd5b600060208284031215612324578081fd5b5035919050565b60006020828403121561233c578081fd5b5051919050565b60008060008060608587031215612358578182fd5b8435935060208501359250604085013567ffffffffffffffff8082111561237d578384fd5b81870188601f82011261238e578485fd5b803592508183111561239e578485fd5b8860208483010111156123af578485fd5b959894975050602090940194505050565b60008251815b818110156123e057602081860181015185830152016123c6565b818111156123ee5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b901515815260200190565b9115158252602082015260400190565b6000861515825285602083015284604083015260806060830152826080830152828460a084013781830160a090810191909152601f909201601f19160101949350505050565b60208101600383106124b957fe5b91905290565b6020808252601d908201527f444f444f5f51554f54455f42414c414e43455f4e4f545f454e4f554748000000604082015260600190565b6020808252600d908201526c494e56414c49445f434c41494d60981b604082015260600190565b60208082526009908201526814915153951490539560ba1b604082015260600190565b6020808252601c908201527f51554f54455f42414c414e43455f4c494d49545f455843454544454400000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b6020808252601b908201527f424153455f42414c414e43455f4c494d49545f45584345454445440000000000604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b6020808252601c908201527f444f444f5f424153455f42414c414e43455f4e4f545f454e4f55474800000000604082015260600190565b602080825260119082015270151490511157d393d517d0531313d5d151607a1b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b6020808252600b908201526a1113d113d7d0d313d4d15160aa1b604082015260600190565b60208082526013908201527214d15313125391d7d393d517d0531313d5d151606a1b604082015260600190565b6020808252600990820152682727aa2fa7aba722a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601c908201527f53454c4c5f424153455f524543454956455f4e4f545f454e4f55474800000000604082015260600190565b602080825260169082015275084aab2be8482a68abe869ea6a8bea89e9ebe9aaa86960531b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b60208082526010908201526f11d054d7d4149250d157d15610d1515160821b604082015260600190565b6020808252600f908201526e1053149150511657d0d31052535151608a1b604082015260600190565b6020808252600f908201526e1113d113d7d393d517d0d313d4d151608a1b604082015260600190565b602080825260129082015271109556525391d7d393d517d0531313d5d15160721b604082015260600190565b90815260200190565b9182521515602082015260400190565b91825260208201526040019056fea26469706673582212207a4c255481018edf84fe613b9725b4a42410b40e0027c90d542b6341c231f00264736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "547:9374:28:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "547:9374:28:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2949:133:27;;;:::i;:::-;;;;;;;;;;;;;;;;2006:43;;;:::i;264:22:37:-;;;:::i;:::-;;;;;;;;1112:36:27;;;:::i;1604:31::-;;;:::i;:::-;;;;;;;;4680:175:28;;;;;;;;;:::i;3873:1392:26:-;;;:::i;:::-;;1688:42:27;;;:::i;3243:135::-;;;:::i;2545:161:26:-;;;;;;;;;:::i;1202:27:27:-;;;:::i;1271:::-;;;:::i;1352:::-;;;:::i;912:32::-;;;:::i;963:225:37:-;;;:::i;3433:87:27:-;;;:::i;2808:1006:26:-;;;:::i;2055:41:27:-;;;;;;;;;:::i;:::-;;;;;;;;772:20;;;:::i;1419:23::-;;;:::i;2682:108::-;;;:::i;2796:147::-;;;;;;;;;:::i;1771:30::-;;;:::i;292:26:37:-;;;:::i;1477:1499:28:-;;;;;;;;;:::i;1036:29:27:-;;;:::i;1071:35::-;;;:::i;4485:189:28:-;;;;;;;;;:::i;1002:28:27:-;;;:::i;839:34::-;;;:::i;1511:28::-;;;:::i;1849:36::-;;;:::i;1641:41::-;;;:::i;1545:28::-;;;:::i;5324:581:26:-;;;;;;;;;:::i;798:35:27:-;;;:::i;1957:43::-;;;:::i;1385:28::-;;;:::i;1808:35::-;;;:::i;879:27::-;;;:::i;2982:1447:28:-;;;;;;;;;:::i;1736:29:27:-;;;:::i;1579:18::-;;;:::i;2381:158:26:-;;;;;;;;;:::i;5504:799:25:-;;;:::i;737:220:37:-;;;;;;;;;:::i;3088:149:27:-;;;;;;;;;:::i;4819:679:25:-;;;:::i;:::-;;;;;;;;;2949:133:27;3040:20;;3027:48;;;-1:-1:-1;;;3027:48:27;;;;3001:7;;-1:-1:-1;;;;;3040:20:27;;3027:46;;:48;;;;;;;;;;;;;;3040:20;3027:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:55;;2949:133;;:::o;2006:43::-;;;;:::o;264:22:37:-;;;-1:-1:-1;;;;;264:22:37;;:::o;1112:36:27:-;;;;:::o;1604:31::-;;;;;;:::o;4680:175:28:-;4746:16;4797:26;4816:6;4797:18;:26::i;:::-;-1:-1:-1;4774:49:28;;4680:175;-1:-1:-1;;;;;;4680:175:28:o;3873:1392:26:-;515:9:39;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;;;-1:-1:-1;;;3940:8:26;::::1;548:16:39::0;3940:8:26::1;3932:36;;;;-1:-1:-1::0;;;3932:36:26::1;;;;;;;;;3997:10;3987:21;::::0;;;:9:::1;:21;::::0;;;;;::::1;;3986:22;3978:50;;;;-1:-1:-1::0;;;3978:50:26::1;;;;;;;;;4048:10;4038:21;::::0;;;:9:::1;:21;::::0;;;;:28;;-1:-1:-1;;4038:28:26::1;4062:4;4038:28;::::0;;:21;4100:36:::1;::::0;:24:::1;:36::i;:::-;4077:59;;4146:19;4168:35;4192:10;4168:23;:35::i;:::-;4146:57:::0;-1:-1:-1;4214:19:26::1;4251:16:::0;;4247:134:::1;;4297:73;4347:22;:20;:22::i;:::-;4297:27;::::0;:45:::1;::::0;4329:12;4297:45:::1;:31;:45;:::i;:::-;:49:::0;:73:::1;:49;:73;:::i;:::-;4283:87;;4247:134;4390:18;4426:15:::0;;4422:129:::1;;4470:70;4518:21;:19;:21::i;:::-;4470:26;::::0;:43:::1;::::0;4501:11;4470:43:::1;:30;:43;:::i;:70::-;4457:83;;4422:129;4591:27;::::0;:44:::1;::::0;4623:11;4591:44:::1;:31;:44;:::i;:::-;4561:27;:74:::0;4674:26:::1;::::0;:42:::1;::::0;4705:10;4674:42:::1;:30;:42;:::i;:::-;4645:26;:71;;;;4741:75;4757:58;4773:11;4786:28;;4757:15;:58::i;:::-;4741:11:::0;;:75:::1;:15;:75;:::i;:::-;4727:89;;4839:75;4854:59;4870:12;4884:28;;4854:15;:59::i;:::-;4839:10:::0;;:75:::1;:14;:75;:::i;:::-;4826:88;;4925:45;4947:10;4959;4925:21;:45::i;:::-;4980:47;5003:10;5015:11;4980:22;:47::i;:::-;5051:20;::::0;5038:64:::1;::::0;-1:-1:-1;;;5038:64:26;;-1:-1:-1;;;;;5051:20:26;;::::1;::::0;5038:39:::1;::::0;:64:::1;::::0;5078:10:::1;::::0;5090:11;;5038:64:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5125:21:26::1;::::0;5112:66:::1;::::0;-1:-1:-1;;;5112:66:26;;-1:-1:-1;;;;;5125:21:26;;::::1;::::0;-1:-1:-1;5112:40:26::1;::::0;-1:-1:-1;5112:66:26::1;::::0;5153:10:::1;::::0;5165:12;;5112:66:::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5206:10;-1:-1:-1::0;;;;;5194:48:26::1;;5218:10;5230:11;5194:48;;;;;;;;;;;;;;;;5252:7;;;;585:9:39::0;:17;;-1:-1:-1;;;;585:17:39;;;3873:1392:26:o;1688:42:27:-;;;;:::o;3243:135::-;3335:21;;3322:49;;;-1:-1:-1;;;3322:49:27;;;;3296:7;;-1:-1:-1;;;;;3335:21:27;;3322:47;;:49;;;;;;;;;;;;;;3335:21;3322:49;;;;;;;;;;2545:161:26;515:9:39;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;2623:41:26::1;2645:10;2657:6:::0;2623:21:::1;:41::i;:::-;2674:25;2692:6;2674:17;:25::i;:::-;-1:-1:-1::0;585:9:39;:17;;-1:-1:-1;;;;585:17:39;;;2545:161:26:o;1202:27:27:-;;;-1:-1:-1;;;;;1202:27:27;;:::o;1271:::-;;;-1:-1:-1;;;;;1271:27:27;;:::o;1352:::-;;;-1:-1:-1;;;;;1352:27:27;;:::o;912:32::-;;;;:::o;963:225:37:-;1030:11;;-1:-1:-1;;;;;1030:11:37;1016:10;:25;1008:51;;;;-1:-1:-1;;;1008:51:37;;;;;;;;;1104:11;;;1095:7;;1074:42;;-1:-1:-1;;;;;1104:11:37;;;;1095:7;;;;1074:42;;;1136:11;;;;1126:21;;-1:-1:-1;;;;;;1126:21:37;;;-1:-1:-1;;;;;1136:11:37;;1126:21;;;;1157:24;;;963:225::o;3433:87:27:-;3501:3;3433:87;:::o;2808:1006:26:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;2341:8:27::1;::::0;-1:-1:-1;;;2341:8:27;::::1;;;2340:9;2332:33;;;;-1:-1:-1::0;;;2332:33:27::1;;;;;;;;;2885:4:26::2;2874:15:::0;;-1:-1:-1;;;;;;;;2874:15:26;;::::2;-1:-1:-1::0;;;2874:15:26::2;2980:23:::0;;;2874:15;3040:21:::2;:19;:21::i;:::-;3013:48;;3071:25;3099:22;:20;:22::i;:::-;3071:50;;3154:27;;3136:15;;:45;3132:316;;;3197:18;3218:48;3238:27;;3218:15;;:19;;:48;;;;:::i;:::-;3197:69;;3311:50;3332:10;3344:16;3311:20;:50::i;:::-;3280:28;:81:::0;-1:-1:-1;3132:316:26::2;;;3422:15;::::0;3392:27:::2;:45:::0;3132:316:::2;3479:26;;3462:14;;:43;3458:309;;;3521:17;3541:46;3560:26;;3541:14;;:18;;:46;;;;:::i;:::-;3521:66;;3632:50;3653:9;3664:17;3632:20;:50::i;:::-;3601:28;:81:::0;-1:-1:-1;3458:309:26::2;;;3742:14;::::0;3713:26:::2;:43:::0;3458:309:::2;-1:-1:-1::0;;3777:10:26::2;:30:::0;;-1:-1:-1;;3777:30:26::2;::::0;;2808:1006::o;2055:41:27:-;;;;;;;;;;;;;;;:::o;772:20::-;;;-1:-1:-1;;;772:20:27;;;;;:::o;1419:23::-;;;-1:-1:-1;;;;;1419:23:27;;:::o;2682:108::-;2763:8;;2755:28;;;-1:-1:-1;;;2755:28:27;;;;2729:7;;-1:-1:-1;;;;;2763:8:27;;2755:26;;:28;;;;;;;;;;;;;;2763:8;2755:28;;;;;;;;;;2796:147;2901:20;;2888:48;;-1:-1:-1;;;2888:48:27;;2862:7;;-1:-1:-1;;;;;2901:20:27;;2888:44;;:48;;2933:2;;2888:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2881:55;2796:147;-1:-1:-1;;2796:147:27:o;1771:30::-;;;;:::o;292:26:37:-;;;-1:-1:-1;;;;;292:26:37;;:::o;1477:1499:28:-;1031:15;;1669:7;;-1:-1:-1;;;1031:15:28;;;;1023:45;;;;-1:-1:-1;;;1023:45:28;;;;;;;;;1242:17:::1;::::0;::::1;::::0;::::1;;;1234:49;;;;-1:-1:-1::0;;;1234:49:28::1;;;;;;;;;1365:17:::2;;1350:11;:32;;1342:61;;;;-1:-1:-1::0;;;1342:61:28::2;;;;;;;;;515:9:39::3;::::0;-1:-1:-1;;;515:9:39;::::3;;;514:10;506:32;;;;-1:-1:-1::0;;;506:32:39::3;;;;;;;;;560:4;548:16:::0;;-1:-1:-1;;;;548:16:39::3;-1:-1:-1::0;;;548:16:39::3;::::0;;;;;;;;1931:27:28::4;1951:6:::0;1931:19:::4;:27::i;:::-;1711:247;;;;;;;;;;;;1992:15;1976:12;:31;;1968:72;;;;-1:-1:-1::0;;;1968:72:28::4;;;;;;;;;2076:48;2099:10;2111:12;2076:22;:48::i;:::-;2138:15:::0;;2134:113:::4;;2169:67;::::0;-1:-1:-1;;;2169:67:28;;2181:10:::4;::::0;2169:32:::4;::::0;:67:::4;::::0;2202:5:::4;::::0;2209:6;;2217:12;;2231:4;;;;2169:67:::4;;;;;;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;2134:113;2256:40;2277:10;2289:6;2256:20;:40::i;:::-;2310:15:::0;;2306:165:::4;;2364:12;::::0;2341:48:::4;::::0;-1:-1:-1;;;;;2364:12:28::4;2378:10:::0;2341:22:::4;:48::i;:::-;2428:12;::::0;2408:52:::4;::::0;-1:-1:-1;;;;;2428:12:28;;::::4;::::0;2408:52:::4;::::0;::::4;::::0;2428:12:::4;::::0;2449:10;;2408:52:::4;;;;;;;;;;2306:165;2541:14;2510:27;;:45;2506:120;;2571:27;:44:::0;;;2506:120:::4;2669:13;2639:26;;:43;2635:116;;2698:26;:42:::0;;;2635:116:::4;2778:10;2764:24;;;;;;;;:10;::::0;::::4;;:24;::::0;::::4;;;;;;;2760:78;;2804:10;:23:::0;;2817:10;;2804;-1:-1:-1;;2804:23:28::4;::::0;2817:10;2804:23:::4;::::0;::::4;;;;;;;;;;;2760:78;2848:29;2866:10;2848:17;:29::i;:::-;2906:10;-1:-1:-1::0;;;;;2892:47:28::4;;2918:6;2926:12;2892:47;;;;;;;;;;;;;;;;-1:-1:-1::0;;585:9:39::3;:17:::0;;-1:-1:-1;;;;585:17:39::3;::::0;;-1:-1:-1;2957:12:28;;1477:1499;-1:-1:-1;;;;;;;1477:1499:28:o;1036:29:27:-;;;;;;;;;:::o;1071:35::-;;;;:::o;4485:189:28:-;4552:20;4611:27;4631:6;4611:19;:27::i;1002:28:27:-;;;;;;:::o;839:34::-;;;-1:-1:-1;;;839:34:27;;;;;:::o;1511:28::-;;;;:::o;1849:36::-;;;-1:-1:-1;;;;;1849:36:27;;:::o;1641:41::-;;;;:::o;1545:28::-;;;;:::o;5324:581:26:-;648:7:37;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;5415:12:26::1;::::0;-1:-1:-1;;;;;5406:21:26;;::::1;5415:12:::0;::::1;5406:21;5402:214;;;5517:14;::::0;:26:::1;::::0;5536:6;5517:26:::1;:18;:26;:::i;:::-;5475:12;::::0;5468:45:::1;::::0;-1:-1:-1;;;5468:45:26;;-1:-1:-1;;;;;5475:12:26;;::::1;::::0;5468:30:::1;::::0;:45:::1;::::0;5507:4:::1;::::0;5468:45:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:75;;5443:162;;;;-1:-1:-1::0;;;5443:162:26::1;;;;;;;;;5638:13;::::0;-1:-1:-1;;;;;5629:22:26;;::::1;5638:13:::0;::::1;5629:22;5625:218;;;5742:15;::::0;:27:::1;::::0;5762:6;5742:27:::1;:19;:27;:::i;:::-;5699:13;::::0;5692:46:::1;::::0;-1:-1:-1;;;5692:46:26;;-1:-1:-1;;;;;5699:13:26;;::::1;::::0;5692:31:::1;::::0;:46:::1;::::0;5732:4:::1;::::0;5692:46:::1;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:77;;5667:165;;;;-1:-1:-1::0;;;5667:165:26::1;;;;;;;;;5852:46;-1:-1:-1::0;;;;;5852:26:26;::::1;5879:10;5891:6:::0;5852:46:::1;:26;:46;:::i;:::-;5324:581:::0;;:::o;798:35:27:-;;;-1:-1:-1;;;798:35:27;;;;;:::o;1957:43::-;;;;:::o;1385:28::-;;;-1:-1:-1;;;;;1385:28:27;;:::o;1808:35::-;;;-1:-1:-1;;;;;1808:35:27;;:::o;879:27::-;;;-1:-1:-1;;;879:27:27;;;;;:::o;2982:1447:28:-;1031:15;;3168:7;;-1:-1:-1;;;1031:15:28;;;;1023:45;;;;-1:-1:-1;;;1023:45:28;;;;;;;;;1135:16:::1;::::0;::::1;;1127:47;;;;-1:-1:-1::0;;;1127:47:28::1;;;;;;;;;1365:17:::2;;1350:11;:32;;1342:61;;;;-1:-1:-1::0;;;1342:61:28::2;;;;;;;;;515:9:39::3;::::0;-1:-1:-1;;;515:9:39;::::3;;;514:10;506:32;;;;-1:-1:-1::0;;;506:32:39::3;;;;;;;;;560:4;548:16:::0;;-1:-1:-1;;;;548:16:39::3;-1:-1:-1::0;;;548:16:39::3;::::0;;;;;;;;3424:26:28::4;3443:6:::0;3424:18:::4;:26::i;:::-;3210:240;;;;;;;;;;;;3480:11;3468:8;:23;;3460:58;;;;-1:-1:-1::0;;;3460:58:28::4;;;;;;;;;3554:41;3576:10;3588:6;3554:21;:41::i;:::-;3609:15:::0;;3605:108:::4;;3640:62;::::0;-1:-1:-1;;;3640:62:28;;3652:10:::4;::::0;3640:32:::4;::::0;:62:::4;::::0;3673:4:::4;::::0;3679:6;;3687:8;;3697:4;;;;3640:62:::4;;;;;;;;;;;;;;;;;;;;;;::::0;::::4;;;;;;;;;;;;::::0;::::4;;;;;;;;;3605:108;3722:43;3744:10;3756:8;3722:21;:43::i;:::-;3779:14:::0;;3775:160:::4;;3831:12;::::0;3809:46:::4;::::0;-1:-1:-1;;;;;3831:12:28::4;3845:9:::0;3809:21:::4;:46::i;:::-;3894:12;::::0;3874:50:::4;::::0;-1:-1:-1;;;;;3894:12:28;;::::4;::::0;3874:50:::4;::::0;::::4;::::0;3894:12;;3914:9;;3874:50:::4;;;;;;;;;;3775:160;4005:14;3974:27;;:45;3970:120;;4035:27;:44:::0;;;3970:120:::4;4133:13;4103:26;;:43;4099:116;;4162:26;:42:::0;;;4099:116:::4;4242:10;4228:24;;;;;;;;:10;::::0;::::4;;:24;::::0;::::4;;;;;;;4224:78;;4268:10;:23:::0;;4281:10;;4268;-1:-1:-1;;4268:23:28::4;::::0;4281:10;4268:23:::4;::::0;::::4;;;;;;;;;;;4224:78;4312:27;4329:9;4312:16;:27::i;:::-;4367:10;-1:-1:-1::0;;;;;4354:42:28::4;;4379:6;4387:8;4354:42;;;;;;;;1736:29:27::0;;;;:::o;1579:18::-;;;;:::o;2381:158:26:-;515:9:39;;-1:-1:-1;;;515:9:39;;;;514:10;506:32;;;;-1:-1:-1;;;506:32:39;;;;;;;;;560:4;548:16;;-1:-1:-1;;;;548:16:39;-1:-1:-1;;;548:16:39;;;2458:40:26::1;2479:10;2491:6:::0;2458:20:::1;:40::i;:::-;2508:24;2525:6;2508:16;:24::i;5504:799:25:-:0;5548:16;5577:18;5597:19;5620;:17;:19::i;:::-;5576:63;;-1:-1:-1;5576:63:25;-1:-1:-1;5667:23:25;5653:10;;;;:37;;;;;;;;;5649:648;;;5706:9;5718:134;5756:49;5789:15;;5756:28;5772:11;5756;:15;;:28;;;;:::i;:49::-;5823:15;;5718:20;:134::i;:::-;5706:146;;5870:53;5899:23;5915:3;;5920:1;5899:15;:23::i;:::-;5890:3;;5870:24;;379:6:36;;5870:24:25;:19;:24;:::i;:::-;:28;:53;:28;:53;:::i;:::-;5866:57;;5944:41;5965:16;:14;:16::i;:::-;5983:1;5944:20;:41::i;:::-;5937:48;;;;;;;5649:648;6016:9;6028:130;6066:46;6097:14;;6066:26;6081:10;6066;:14;;:26;;;;:::i;:46::-;6130:14;;6028:20;:130::i;:::-;6016:142;;6176:53;6205:23;6221:3;;6226:1;6205:15;:23::i;6176:53::-;6172:57;;6250:36;6266:16;:14;:16::i;:::-;6284:1;6250:15;:36::i;737:220:37:-;648:7;;-1:-1:-1;;;;;648:7:37;634:10;:21;626:43;;;;-1:-1:-1;;;626:43:37;;;;;;;;;-1:-1:-1;;;;;819:22:37;::::1;811:48;;;;-1:-1:-1::0;;;811:48:37::1;;;;;;;;;900:7;::::0;;874:44:::1;::::0;-1:-1:-1;;;;;874:44:37;;::::1;::::0;900:7;::::1;::::0;874:44:::1;::::0;::::1;928:11;:22:::0;;-1:-1:-1;;;;;;928:22:37::1;-1:-1:-1::0;;;;;928:22:37;;;::::1;::::0;;;::::1;::::0;;737:220::o;3088:149:27:-;3194:21;;3181:49;;-1:-1:-1;;;3181:49:27;;3155:7;;-1:-1:-1;;;;;3194:21:27;;3181:45;;:49;;3227:2;;3181:49;;;;4819:679:25;4932:15;;4969:14;;4869:18;;;;;4997:10;;;;:31;;;;;;;;;4993:499;;;5052:26;;5080:27;;5044:64;;;;;;;;4993:499;5143:23;5129:10;;;;:37;;;;;;;;;5125:367;;;5182:21;5206:18;:16;:18::i;:::-;5246:26;;5182:42;;-1:-1:-1;5274:20:25;:1;5182:42;5274:20;:5;:20;:::i;:::-;5238:57;;;;;;;;;5125:367;5330:23;5316:10;;;;:37;;;;;;;;;5312:180;;;5369:20;5392:18;:16;:18::i;:::-;5369:41;-1:-1:-1;5432:19:25;:1;5369:41;5432:19;:5;:19;:::i;:::-;5453:27;;5424:57;;;;;;;;;5312:180;4819:679;;;;;:::o;7611:2308:28:-;7715:16;7745:17;7776;7807:24;7845:22;7881:21;7961:19;:17;:19::i;:::-;7927:53;;;;;;;;8050:38;8066:6;8074:13;;8050:15;:38::i;:::-;8038:50;;8110:38;8126:6;8134:13;;8110:15;:38::i;:::-;8098:50;-1:-1:-1;8158:21:28;8182:36;8098:50;8182:21;:6;8193:9;8182:21;:10;:21;:::i;:36::-;8158:60;-1:-1:-1;8247:17:28;8233:10;;;;:31;;;;;;;;;8229:1591;;;8318:47;8336:13;8351;8318:17;:47::i;:::-;8307:58;;8392:23;8379:36;;8229:1591;;;8450:23;8436:10;;;;:37;;;;;;;;;8432:1388;;;8527:65;8547:13;8562:14;;8578:13;8527:19;:65::i;8432:1388::-;8677:23;8663:10;;;;:37;;;;;;;;;8659:1161;;;8716:25;8744:35;8763:15;;8744:14;:18;;:35;;;;:::i;:::-;8716:63;;8793:28;8824:33;8843:13;8824:14;;:18;;:33;;;;:::i;:::-;8793:64;;8967:20;8951:13;:36;8947:863;;;9166:67;9186:13;9201:15;;9218:14;9166:19;:67::i;:::-;9155:78;;9264:23;9251:36;;8947:863;;;9329:20;9312:13;:37;9308:502;;;9433:17;9422:28;;9481:17;9468:30;;9308:502;;;9607:134;9650:73;9668:39;:13;9686:20;9668:39;:17;:39;:::i;:::-;9709:13;9650:17;:73::i;9607:134::-;9596:145;;9772:23;9759:36;;9308:502;8659:1161;;;-1:-1:-1;7611:2308:28;;;;;;;:::o;281:217:41:-;339:7;362:6;358:45;;-1:-1:-1;391:1:41;384:8;;358:45;425:5;;;429:1;425;:5;:1;448:5;;;;;:10;440:32;;;;-1:-1:-1;;;440:32:41;;;;;;;;;490:1;281:217;-1:-1:-1;;;281:217:41:o;504:138::-;562:7;593:1;589;:5;581:32;;;;-1:-1:-1;;;581:32:41;;;;;;;;;634:1;630;:5;;;;;;;504:138;-1:-1:-1;;;504:138:41:o;934:134::-;992:7;1024:1;1019;:6;;1011:28;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;392:115:36:-;455:7;379:6;481:13;:6;492:1;481:13;:10;:13;:::i;:::-;:19;;;;1074:157:41;1132:7;1163:5;;;1186:6;;;;1178:28;;;;-1:-1:-1;;;1178:28:41;;;;;;;;1574:183:26;1659:12;;1652:45;;-1:-1:-1;;;;;1659:12:26;1686:2;1690:6;1652:45;:33;:45;:::i;:::-;1724:14;;:26;;1743:6;1724:26;:18;:26;:::i;:::-;1707:14;:43;-1:-1:-1;;1574:183:26:o;1763:187::-;1849:13;;1842:46;;-1:-1:-1;;;;;1849:13:26;1877:2;1881:6;1842:46;:34;:46;:::i;:::-;1916:15;;:27;;1936:6;1916:27;:19;:27;:::i;:::-;1898:15;:45;-1:-1:-1;;1763:187:26:o;1222:346::-;1354:21;;1323:15;;:27;;1343:6;1323:27;:19;:27;:::i;:::-;:52;;1302:127;;;;-1:-1:-1;;;1302:127:26;;;;;;;;;1446:13;;1439:67;;-1:-1:-1;;;;;1446:13:26;1478:4;1492;1499:6;1439:67;:38;:67;:::i;:::-;1534:15;;:27;;1554:6;1534:27;:19;:27;:::i;2201:174::-;2293:27;;:39;;2325:6;2293:39;:31;:39;:::i;:::-;2263:27;:69;2347:21;;;;;;2354:6;;2362:5;;2347:21;;;;;;;;;;2201:174;:::o;645:123:36:-;713:7;739:22;759:1;739:15;:6;379;739:15;:10;:15;:::i;4861:2744:28:-;4966:20;5000:18;5032;5064:24;5102:22;5138:21;5218:19;:17;:19::i;:::-;5184:53;-1:-1:-1;5184:53:28;-1:-1:-1;5273:6:28;5248:22;5294:10;;;;:31;;;;;;;;;5290:1984;;;5416:50;5435:14;5451;5416:18;:50::i;:::-;5401:65;;5493:23;5480:36;;5290:1984;;;5551:23;5537:10;;;;:37;;;;;;;;;5533:1741;;;5590:24;5617:33;5635:14;;5617:13;:17;;:33;;;;:::i;:::-;5590:60;;5664:29;5696:35;5716:14;5696:15;;:19;;:35;;;;:::i;:::-;5664:67;;5857:16;5840:14;:33;5836:1183;;;5960:67;5981:14;5997;;6013:13;5960:20;:67::i;:::-;5945:82;;6058:23;6045:36;;6118:21;6103:12;:36;6099:386;;;6445:21;6430:36;;6099:386;5836:1183;;;6527:16;6509:14;:34;6505:514;;;6631:21;6616:36;;6683:17;6670:30;;6505:514;;;6813:137;6860:72;6879:36;:14;6898:16;6879:36;:18;:36;:::i;:::-;6917:14;6860:18;:72::i;6813:137::-;6798:152;;6981:23;6968:36;;6505:514;5533:1741;;;;;7144:69;7165:14;7181:15;;7198:14;7144:20;:69::i;:::-;7129:84;;7240:23;7227:36;;5533:1741;7319:44;7335:12;7349:13;;7319:15;:44::i;:::-;7306:57;;7386:44;7402:12;7416:13;;7386:15;:44::i;:::-;7373:57;-1:-1:-1;7455:44:28;7373:57;7455:28;:12;7472:10;7455:28;:16;:28;:::i;:::-;:32;:44;:32;:44;:::i;:::-;7440:59;-1:-1:-1;;4861:2744:28;;;;;;;:::o;911:305:26:-;1028:20;;998:14;;:26;;1017:6;998:26;:18;:26;:::i;:::-;:50;;990:90;;;;-1:-1:-1;;;990:90:26;;;;;;;;;1097:12;;1090:66;;-1:-1:-1;;;;;1097:12:26;1128:4;1142;1149:6;1090:66;:37;:66;:::i;:::-;1183:14;;:26;;1202:6;1183:26;:18;:26;:::i;804:205:40:-;916:86;936:5;966:23;;;991:2;995:5;943:58;;;;;;;;;;;;;;-1:-1:-1;;943:58:40;;;;;;;;;;;;;;-1:-1:-1;;;;;943:58:40;-1:-1:-1;;;;;;943:58:40;;;;;;;;;;916:19;:86::i;:::-;804:205;;;:::o;2025:170:26:-;2115:26;;:38;;2146:6;2115:38;:30;:38;:::i;:::-;2086:26;:67;2168:20;;;;;;2175:6;;2183:4;;2168:20;;2736:578:25;2787:21;2927:17;2947:46;2966:26;;2947:14;;:18;;:46;;;;:::i;:::-;2927:66;;3003:13;3019:16;:14;:16::i;:::-;3003:32;;3045:18;3066:33;3082:9;3093:5;3066:15;:33::i;:::-;3045:54;;3109:22;3134:121;3189:15;;3218:3;;3235:10;3134:41;:121::i;:::-;3109:146;;3272:35;3291:15;;3272:14;:18;;:35;;;;:::i;:::-;3265:42;;;;;;2736:578;:::o;4180:582::-;4231:20;4370:18;4391:48;4411:27;;4391:15;;:19;;:48;;;;:::i;:::-;4370:69;;4449:13;4465:16;:14;:16::i;:::-;4449:32;;4491:18;4512:39;4533:10;4545:5;4512:20;:39::i;:::-;4491:60;;4561:21;4585:120;4640:14;;4668:3;;4685:10;4585:41;:120::i;:::-;4561:144;;4722:33;4740:14;;4722:13;:17;;:33;;;;:::i;1183:414::-;1304:21;1358;1349:6;:30;1341:71;;;;-1:-1:-1;;;1341:71:25;;;;;;;;;1422:10;1435:33;:21;1461:6;1435:33;:25;:33;:::i;:::-;1422:46;;1494:66;1511:21;1534;1557:2;1494:16;:66::i;:::-;1478:82;1183:414;-1:-1:-1;;;;1183:414:25:o;3366:360::-;3511:21;3561:11;3552:6;:20;3544:61;;;;-1:-1:-1;;;3544:61:25;;;;;;;;;3615:10;3628:23;:11;3644:6;3628:23;:15;:23;:::i;:::-;3615:36;;3668:51;3685:16;3703:11;3716:2;3668:16;:51::i;:::-;3661:58;3366:360;-1:-1:-1;;;;;3366:360:25:o;2117:613::-;2264:21;2449:9;2461:16;:14;:16::i;:::-;2449:28;;2487:10;2500:186;2554:17;2585:12;2611:30;2631:1;2634:6;2611:19;:30::i;:::-;2655:4;2673:3;;2500:40;:186::i;:::-;2487:199;-1:-1:-1;2703:20:25;2487:199;2710:12;2703:20;:6;:20;:::i;:::-;2696:27;2117:613;-1:-1:-1;;;;;;2117:613:25:o;1015:275:40:-;1153:130;1186:5;1228:27;;;1257:4;1263:2;1267:5;1205:68;;;;;;;;;;;1153:130;1015:275;;;;:::o;557:620:25:-;680:25;721:9;733:16;:14;:16::i;:::-;721:28;;759:10;772:198;826:22;862;898:26;914:1;917:6;898:15;:26::i;:::-;938:5;957:3;;772:40;:198::i;:::-;759:211;-1:-1:-1;1140:30:25;:22;759:211;1140:30;:26;:30;:::i;3732:442::-;3878:25;;4076:23;:11;4092:6;4076:23;:15;:23;:::i;:::-;4063:36;;4116:51;4133:16;4151:2;4155:11;4116:16;:51::i;1649:462::-;1797:24;1833:9;1845:16;:14;:16::i;:::-;1833:28;;1871:10;1884:183;1938:17;1969:12;1995:26;2011:1;2014:6;1995:15;:26::i;1884:183::-;1871:196;-1:-1:-1;2084:20:25;:12;1871:196;2084:20;:16;:20;:::i;2335:1027:40:-;2984:12;2998:23;3033:5;-1:-1:-1;;;;;3025:19:40;3045:4;3025:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2983:67;;;;3068:7;3060:52;;;;-1:-1:-1;;;3060:52:40;;;;;;;;;3127:17;;:21;3123:233;;3279:10;3268:30;;;;;;;;;;;;;;3260:85;;;;-1:-1:-1;;;3260:85:40;;;;;;;;3310:569:35;3448:10;3504:12;3519:62;3539:37;3574:1;3539:30;3555:1;3558:10;3539:15;:30::i;:::-;:34;:37;:34;:37;:::i;:::-;3578:2;3519:19;:62::i;:::-;3504:77;-1:-1:-1;3598:53:35;:46;379:6:36;3598:25:35;3504:77;379:6:36;3598:25:35;:8;:25;:::i;:46::-;:51;:53::i;:::-;3591:60;-1:-1:-1;3661:15:35;3679:56;3699:25;3591:60;379:6:36;3699:25:35;:8;:25;:::i;:::-;3726:8;:1;3732;3726:8;:5;:8;:::i;:::-;3679:19;:56::i;:::-;3661:74;-1:-1:-1;3823:49:35;3839:2;3843:28;379:6:36;3661:74:35;3843:28;:19;:28;:::i;:::-;3823:15;:49::i;6309:232:25:-;6424:7;6443:9;6455:16;:14;:16::i;:::-;6443:28;;6488:46;6515:2;6519;6523;6527:1;6530:3;;6488:26;:46::i;513:126:36:-;580:7;606:26;379:6;606:13;:6;617:1;606:13;:10;:13;:::i;:::-;:21;:26;:21;:26;:::i;1608:1507:35:-;1786:7;1885:14;1902:38;1937:2;1902:30;1929:2;1902:22;1918:1;1921:2;1902:15;:22::i;:38::-;1885:55;-1:-1:-1;1962:9:35;1974:43;1990:22;379:6:36;2010:1:35;1990:22;:19;:22;:::i;:::-;2014:2;1974:15;:43::i;:::-;1962:55;-1:-1:-1;2055:4:35;2069:158;;;;2102:14;:1;2108:7;2102:14;:5;:14;:::i;:::-;2098:18;;2069:158;;;2176:19;:6;2187:7;2176:19;:10;:19;:::i;:::-;2167:28;;2069:158;2245:6;2240:1;:11;2236:168;;2271:13;:1;2277:6;2271:13;:5;:13;:::i;:::-;2267:17;;2310:4;2298:16;;2236:168;;;2349:13;:6;2360:1;2349:13;:10;:13;:::i;:::-;2345:17;;2388:5;2376:17;;2236:168;2440:18;2461:112;2490:29;2517:1;2490:22;379:6:36;2510:1:35;2490:22;:19;:22;:::i;:29::-;2533:30;2560:2;2533:22;2549:1;2552:2;2533:15;:22::i;2461:112::-;2440:133;-1:-1:-1;2611:31:35;:24;2440:133;2611:8;2617:1;;2611:8;:5;:8;:::i;:31::-;2598:44;-1:-1:-1;2700:19:35;2722:29;2749:1;2722:22;379:6:36;2742:1:35;2722:22;:19;:22;:::i;:29::-;2700:51;;2771:17;2802:9;2798:129;;;2839:17;:1;2845:10;2839:17;:5;:17;:::i;:::-;2827:29;;2798:129;;;2899:17;:10;2914:1;2899:17;:14;:17;:::i;:::-;2887:29;;2798:129;2941:9;2937:172;;;2973:44;2994:9;3005:11;2973:20;:44::i;:::-;2966:51;;;;;;;;;;2937:172;3055:43;3075:9;3086:11;774:126:36;841:7;867:26;891:1;867:15;:6;379;867:15;:10;:15;:::i;1237:198:41:-;1318:1;1326;1322;1318:5;;:9;1352:77;1363:1;1359;:5;1352:77;;;1384:1;1380:5;;1417:1;1412;1408;1404;:5;;;;;;:9;1403:15;;;;;;1399:19;;1352:77;;;1237:198;;;;:::o;634:468:35:-;788:7;;828:30;844:1;847:10;:2;854;847:10;:6;:10;:::i;828:30::-;807:51;-1:-1:-1;879:16:35;898:43;918:18;933:2;918:10;925:2;;918:10;:6;:10;:::i;:18::-;938:2;898:19;:43::i;:::-;879:62;;951:15;969:28;985:1;988:8;969:15;:28::i;:::-;951:46;-1:-1:-1;1031:64:35;1047:10;1059:35;951:46;1059:22;379:6:36;1079:1:35;1059:22;:19;:22;:::i;1031:64::-;1024:71;634:468;-1:-1:-1;;;;;;;;;634:468:35:o;648:280:41:-;710:7;729:16;748:9;752:1;755;748:3;:9::i;:::-;729:28;-1:-1:-1;791:12:41;;;787:16;;817:13;;813:109;;-1:-1:-1;864:1:41;853:12;;-1:-1:-1;846:19:41;;813:109;-1:-1:-1;903:8:41;-1:-1:-1;896:15:41;;5:130:-1;72:20;;-1:-1;;;;;26601:54;;27970:35;;27960:2;;28019:1;;28009:12;913:241;;1017:2;1005:9;996:7;992:23;988:32;985:2;;;-1:-1;;1023:12;985:2;1085:53;1130:7;1106:22;1085:53;;1161:366;;;1282:2;1270:9;1261:7;1257:23;1253:32;1250:2;;;-1:-1;;1288:12;1250:2;1350:53;1395:7;1371:22;1350:53;;;1340:63;1440:2;1479:22;;;;702:20;;-1:-1;;;1244:283;1534:257;;1646:2;1634:9;1625:7;1621:23;1617:32;1614:2;;;-1:-1;;1652:12;1614:2;223:6;217:13;28116:5;26374:13;26367:21;28094:5;28091:32;28081:2;;-1:-1;;28127:12;1798:241;;1902:2;1890:9;1881:7;1877:23;1873:32;1870:2;;;-1:-1;;1908:12;1870:2;-1:-1;702:20;;1864:175;-1:-1;1864:175;2046:263;;2161:2;2149:9;2140:7;2136:23;2132:32;2129:2;;;-1:-1;;2167:12;2129:2;-1:-1;850:13;;2123:186;-1:-1;2123:186;2316:615;;;;;2473:2;2461:9;2452:7;2448:23;2444:32;2441:2;;;-1:-1;;2479:12;2441:2;715:6;702:20;2531:63;;2631:2;2674:9;2670:22;702:20;2639:63;;2767:2;2756:9;2752:18;2739:32;2791:18;;2783:6;2780:30;2777:2;;;-1:-1;;2813:12;2777:2;2898:6;2887:9;2883:22;405:3;398:4;390:6;386:17;382:27;372:2;;-1:-1;;413:12;372:2;456:6;443:20;433:30;;2791:18;475:6;472:30;469:2;;;-1:-1;;505:12;469:2;600:3;2631:2;580:17;541:6;566:32;;563:41;560:2;;;-1:-1;;607:12;560:2;2435:496;;;;-1:-1;;2631:2;537:17;;;;-1:-1;;;2435:496;11855:271;;3806:5;25673:12;-1:-1;27491:101;27505:6;27502:1;27499:13;27491:101;;;3950:4;27572:11;;;;;27566:18;27553:11;;;27546:39;27520:10;27491:101;;;27607:6;27604:1;27601:13;27598:2;;;-1:-1;27663:6;27658:3;27654:16;27647:27;27598:2;-1:-1;3981:16;;;;;11989:137;-1:-1;;11989:137;12133:222;-1:-1;;;;;26601:54;;;;3158:37;;12260:2;12245:18;;12231:124;12362:349;-1:-1;;;;;26601:54;;;;3017:58;;12697:2;12682:18;;11806:37;12525:2;12510:18;;12496:215;12718:444;-1:-1;;;;;26601:54;;;3158:37;;26601:54;;;;13065:2;13050:18;;3158:37;13148:2;13133:18;;11806:37;;;;12901:2;12886:18;;12872:290;13509:210;26374:13;;26367:21;3272:34;;13630:2;13615:18;;13601:118;13726:321;26374:13;;26367:21;3272:34;;14033:2;14018:18;;11806:37;13875:2;13860:18;;13846:201;14054:648;;3299:5;26374:13;26367:21;3279:3;3272:34;11836:5;14446:2;14435:9;14431:18;11806:37;11836:5;14529:2;14518:9;14514:18;11806:37;14287:3;14566:2;14555:9;14551:18;14544:48;25829:6;14287:3;14276:9;14272:19;25817;27346:6;27341:3;25857:14;14276:9;25857:14;27323:30;27384:16;;;25857:14;27384:16;;;27377:27;;;;27779:7;27763:14;;;-1:-1;;27759:28;3593:39;;;14258:444;-1:-1;;;;14258:444;14709:244;14847:2;14832:18;;27882:1;27872:12;;27862:2;;27888:9;27862:2;4091:61;;;14818:135;;14960:416;15160:2;15174:47;;;4389:2;15145:18;;;25817:19;4425:31;25857:14;;;4405:52;4476:12;;;15131:245;15383:416;15583:2;15597:47;;;4727:2;15568:18;;;25817:19;-1:-1;;;25857:14;;;4743:36;4798:12;;;15554:245;15806:416;16006:2;16020:47;;;5049:1;15991:18;;;25817:19;-1:-1;;;25857:14;;;5064:32;5115:12;;;15977:245;16229:416;16429:2;16443:47;;;5366:2;16414:18;;;25817:19;5402:30;25857:14;;;5382:51;5452:12;;;16400:245;16652:416;16852:2;16866:47;;;16837:18;;;25817:19;5739:34;25857:14;;;5719:55;5793:12;;;16823:245;17075:416;17275:2;17289:47;;;6044:2;17260:18;;;25817:19;-1:-1;;;25857:14;;;6060:37;6116:12;;;17246:245;17498:416;17698:2;17712:47;;;6367:2;17683:18;;;25817:19;6403:29;25857:14;;;6383:50;6452:12;;;17669:245;17921:416;18121:2;18135:47;;;6703:1;18106:18;;;25817:19;-1:-1;;;25857:14;;;6718:32;6769:12;;;18092:245;18344:416;18544:2;18558:47;;;7020:2;18529:18;;;25817:19;7056:30;25857:14;;;7036:51;7106:12;;;18515:245;18767:416;18967:2;18981:47;;;7357:2;18952:18;;;25817:19;-1:-1;;;25857:14;;;7373:40;7432:12;;;18938:245;19190:416;19390:2;19404:47;;;7683:2;19375:18;;;25817:19;-1:-1;;;25857:14;;;7699:36;7754:12;;;19361:245;19613:416;19813:2;19827:47;;;8005:2;19798:18;;;25817:19;-1:-1;;;25857:14;;;8021:34;8074:12;;;19784:245;20036:416;20236:2;20250:47;;;8325:2;20221:18;;;25817:19;-1:-1;;;25857:14;;;8341:42;8402:12;;;20207:245;20459:416;20659:2;20673:47;;;8653:1;20644:18;;;25817:19;-1:-1;;;25857:14;;;8668:32;8719:12;;;20630:245;20882:416;21082:2;21096:47;;;8970:1;21067:18;;;25817:19;-1:-1;;;25857:14;;;8985:32;9036:12;;;21053:245;21305:416;21505:2;21519:47;;;9287:2;21490:18;;;25817:19;9323:34;25857:14;;;9303:55;-1:-1;;;9378:12;;;9371:34;9424:12;;;21476:245;21728:416;21928:2;21942:47;;;9675:2;21913:18;;;25817:19;9711:30;25857:14;;;9691:51;9761:12;;;21899:245;22151:416;22351:2;22365:47;;;10012:2;22336:18;;;25817:19;-1:-1;;;25857:14;;;10028:45;10092:12;;;22322:245;22574:416;22774:2;22788:47;;;10343:1;22759:18;;;25817:19;-1:-1;;;25857:14;;;10358:32;10409:12;;;22745:245;22997:416;23197:2;23211:47;;;10660:2;23182:18;;;25817:19;-1:-1;;;25857:14;;;10676:39;10734:12;;;23168:245;23420:416;23620:2;23634:47;;;10985:2;23605:18;;;25817:19;-1:-1;;;25857:14;;;11001:38;11058:12;;;23591:245;23843:416;24043:2;24057:47;;;11309:2;24028:18;;;25817:19;-1:-1;;;25857:14;;;11325:38;11382:12;;;24014:245;24266:416;24466:2;24480:47;;;11633:2;24451:18;;;25817:19;-1:-1;;;25857:14;;;11649:41;11709:12;;;24437:245;24689:222;11806:37;;;24816:2;24801:18;;24787:124;24918:321;11806:37;;;26374:13;26367:21;25225:2;25210:18;;3272:34;25067:2;25052:18;;25038:201;25246:333;11806:37;;;25565:2;25550:18;;11806:37;25401:2;25386:18;;25372:207", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {SafeMath} from \"../lib/SafeMath.sol\";\nimport {DecimalMath} from \"../lib/DecimalMath.sol\";\nimport {Types} from \"../lib/Types.sol\";\nimport {IDODOCallee} from \"../intf/IDODOCallee.sol\";\nimport {Storage} from \"./Storage.sol\";\nimport {Pricing} from \"./Pricing.sol\";\nimport {Settlement} from \"./Settlement.sol\";\n\n\n/**\n * @title Trader\n * @author DODO Breeder\n *\n * @notice Functions for trader operations\n */\ncontract Trader is Storage, Pricing, Settlement {\n using SafeMath for uint256;\n\n // ============ Events ============\n\n event SellBaseToken(address indexed seller, uint256 payBase, uint256 receiveQuote);\n\n event BuyBaseToken(address indexed buyer, uint256 receiveBase, uint256 payQuote);\n\n event ChargeMaintainerFee(address indexed maintainer, bool isBaseToken, uint256 amount);\n\n // ============ Modifiers ============\n\n modifier tradeAllowed() {\n require(_TRADE_ALLOWED_, \"TRADE_NOT_ALLOWED\");\n _;\n }\n\n modifier buyingAllowed() {\n require(_BUYING_ALLOWED_, \"BUYING_NOT_ALLOWED\");\n _;\n }\n\n modifier sellingAllowed() {\n require(_SELLING_ALLOWED_, \"SELLING_NOT_ALLOWED\");\n _;\n }\n\n modifier gasPriceLimit() {\n require(tx.gasprice <= _GAS_PRICE_LIMIT_, \"GAS_PRICE_EXCEED\");\n _;\n }\n\n // ============ Trade Functions ============\n\n function sellBaseToken(\n uint256 amount,\n uint256 minReceiveQuote,\n bytes calldata data\n ) external tradeAllowed sellingAllowed gasPriceLimit preventReentrant returns (uint256) {\n // query price\n (\n uint256 receiveQuote,\n uint256 lpFeeQuote,\n uint256 mtFeeQuote,\n Types.RStatus newRStatus,\n uint256 newQuoteTarget,\n uint256 newBaseTarget\n ) = _querySellBaseToken(amount);\n require(receiveQuote >= minReceiveQuote, \"SELL_BASE_RECEIVE_NOT_ENOUGH\");\n\n // settle assets\n _quoteTokenTransferOut(msg.sender, receiveQuote);\n if (data.length > 0) {\n IDODOCallee(msg.sender).dodoCall(false, amount, receiveQuote, data);\n }\n _baseTokenTransferIn(msg.sender, amount);\n if (mtFeeQuote != 0) {\n _quoteTokenTransferOut(_MAINTAINER_, mtFeeQuote);\n emit ChargeMaintainerFee(_MAINTAINER_, false, mtFeeQuote);\n }\n\n // update TARGET\n if (_TARGET_QUOTE_TOKEN_AMOUNT_ != newQuoteTarget) {\n _TARGET_QUOTE_TOKEN_AMOUNT_ = newQuoteTarget;\n }\n if (_TARGET_BASE_TOKEN_AMOUNT_ != newBaseTarget) {\n _TARGET_BASE_TOKEN_AMOUNT_ = newBaseTarget;\n }\n if (_R_STATUS_ != newRStatus) {\n _R_STATUS_ = newRStatus;\n }\n\n _donateQuoteToken(lpFeeQuote);\n emit SellBaseToken(msg.sender, amount, receiveQuote);\n\n return receiveQuote;\n }\n\n function buyBaseToken(\n uint256 amount,\n uint256 maxPayQuote,\n bytes calldata data\n ) external tradeAllowed buyingAllowed gasPriceLimit preventReentrant returns (uint256) {\n // query price\n (\n uint256 payQuote,\n uint256 lpFeeBase,\n uint256 mtFeeBase,\n Types.RStatus newRStatus,\n uint256 newQuoteTarget,\n uint256 newBaseTarget\n ) = _queryBuyBaseToken(amount);\n require(payQuote <= maxPayQuote, \"BUY_BASE_COST_TOO_MUCH\");\n\n // settle assets\n _baseTokenTransferOut(msg.sender, amount);\n if (data.length > 0) {\n IDODOCallee(msg.sender).dodoCall(true, amount, payQuote, data);\n }\n _quoteTokenTransferIn(msg.sender, payQuote);\n if (mtFeeBase != 0) {\n _baseTokenTransferOut(_MAINTAINER_, mtFeeBase);\n emit ChargeMaintainerFee(_MAINTAINER_, true, mtFeeBase);\n }\n\n // update TARGET\n if (_TARGET_QUOTE_TOKEN_AMOUNT_ != newQuoteTarget) {\n _TARGET_QUOTE_TOKEN_AMOUNT_ = newQuoteTarget;\n }\n if (_TARGET_BASE_TOKEN_AMOUNT_ != newBaseTarget) {\n _TARGET_BASE_TOKEN_AMOUNT_ = newBaseTarget;\n }\n if (_R_STATUS_ != newRStatus) {\n _R_STATUS_ = newRStatus;\n }\n\n _donateBaseToken(lpFeeBase);\n emit BuyBaseToken(msg.sender, amount, payQuote);\n\n return payQuote;\n }\n\n // ============ Query Functions ============\n\n function querySellBaseToken(uint256 amount) external view returns (uint256 receiveQuote) {\n (receiveQuote, , , , , ) = _querySellBaseToken(amount);\n return receiveQuote;\n }\n\n function queryBuyBaseToken(uint256 amount) external view returns (uint256 payQuote) {\n (payQuote, , , , , ) = _queryBuyBaseToken(amount);\n return payQuote;\n }\n\n function _querySellBaseToken(uint256 amount)\n internal\n view\n returns (\n uint256 receiveQuote,\n uint256 lpFeeQuote,\n uint256 mtFeeQuote,\n Types.RStatus newRStatus,\n uint256 newQuoteTarget,\n uint256 newBaseTarget\n )\n {\n (newBaseTarget, newQuoteTarget) = getExpectedTarget();\n\n uint256 sellBaseAmount = amount;\n\n if (_R_STATUS_ == Types.RStatus.ONE) {\n // case 1: R=1\n // R falls below one\n receiveQuote = _ROneSellBaseToken(sellBaseAmount, newQuoteTarget);\n newRStatus = Types.RStatus.BELOW_ONE;\n } else if (_R_STATUS_ == Types.RStatus.ABOVE_ONE) {\n uint256 backToOnePayBase = newBaseTarget.sub(_BASE_BALANCE_);\n uint256 backToOneReceiveQuote = _QUOTE_BALANCE_.sub(newQuoteTarget);\n // case 2: R>1\n // complex case, R status depends on trading amount\n if (sellBaseAmount < backToOnePayBase) {\n // case 2.1: R status do not change\n receiveQuote = _RAboveSellBaseToken(sellBaseAmount, _BASE_BALANCE_, newBaseTarget);\n newRStatus = Types.RStatus.ABOVE_ONE;\n if (receiveQuote > backToOneReceiveQuote) {\n // [Important corner case!] may enter this branch when some precision problem happens. And consequently contribute to negative spare quote amount\n // to make sure spare quote>=0, mannually set receiveQuote=backToOneReceiveQuote\n receiveQuote = backToOneReceiveQuote;\n }\n } else if (sellBaseAmount == backToOnePayBase) {\n // case 2.2: R status changes to ONE\n receiveQuote = backToOneReceiveQuote;\n newRStatus = Types.RStatus.ONE;\n } else {\n // case 2.3: R status changes to BELOW_ONE\n receiveQuote = backToOneReceiveQuote.add(\n _ROneSellBaseToken(sellBaseAmount.sub(backToOnePayBase), newQuoteTarget)\n );\n newRStatus = Types.RStatus.BELOW_ONE;\n }\n } else {\n // _R_STATUS_ == Types.RStatus.BELOW_ONE\n // case 3: R<1\n receiveQuote = _RBelowSellBaseToken(sellBaseAmount, _QUOTE_BALANCE_, newQuoteTarget);\n newRStatus = Types.RStatus.BELOW_ONE;\n }\n\n // count fees\n lpFeeQuote = DecimalMath.mul(receiveQuote, _LP_FEE_RATE_);\n mtFeeQuote = DecimalMath.mul(receiveQuote, _MT_FEE_RATE_);\n receiveQuote = receiveQuote.sub(lpFeeQuote).sub(mtFeeQuote);\n\n return (receiveQuote, lpFeeQuote, mtFeeQuote, newRStatus, newQuoteTarget, newBaseTarget);\n }\n\n function _queryBuyBaseToken(uint256 amount)\n internal\n view\n returns (\n uint256 payQuote,\n uint256 lpFeeBase,\n uint256 mtFeeBase,\n Types.RStatus newRStatus,\n uint256 newQuoteTarget,\n uint256 newBaseTarget\n )\n {\n (newBaseTarget, newQuoteTarget) = getExpectedTarget();\n\n // charge fee from user receive amount\n lpFeeBase = DecimalMath.mul(amount, _LP_FEE_RATE_);\n mtFeeBase = DecimalMath.mul(amount, _MT_FEE_RATE_);\n uint256 buyBaseAmount = amount.add(lpFeeBase).add(mtFeeBase);\n\n if (_R_STATUS_ == Types.RStatus.ONE) {\n // case 1: R=1\n payQuote = _ROneBuyBaseToken(buyBaseAmount, newBaseTarget);\n newRStatus = Types.RStatus.ABOVE_ONE;\n } else if (_R_STATUS_ == Types.RStatus.ABOVE_ONE) {\n // case 2: R>1\n payQuote = _RAboveBuyBaseToken(buyBaseAmount, _BASE_BALANCE_, newBaseTarget);\n newRStatus = Types.RStatus.ABOVE_ONE;\n } else if (_R_STATUS_ == Types.RStatus.BELOW_ONE) {\n uint256 backToOnePayQuote = newQuoteTarget.sub(_QUOTE_BALANCE_);\n uint256 backToOneReceiveBase = _BASE_BALANCE_.sub(newBaseTarget);\n // case 3: R<1\n // complex case, R status may change\n if (buyBaseAmount < backToOneReceiveBase) {\n // case 3.1: R status do not change\n // no need to check payQuote because spare base token must be greater than zero\n payQuote = _RBelowBuyBaseToken(buyBaseAmount, _QUOTE_BALANCE_, newQuoteTarget);\n newRStatus = Types.RStatus.BELOW_ONE;\n } else if (buyBaseAmount == backToOneReceiveBase) {\n // case 3.2: R status changes to ONE\n payQuote = backToOnePayQuote;\n newRStatus = Types.RStatus.ONE;\n } else {\n // case 3.3: R status changes to ABOVE_ONE\n payQuote = backToOnePayQuote.add(\n _ROneBuyBaseToken(buyBaseAmount.sub(backToOneReceiveBase), newBaseTarget)\n );\n newRStatus = Types.RStatus.ABOVE_ONE;\n }\n }\n\n return (payQuote, lpFeeBase, mtFeeBase, newRStatus, newQuoteTarget, newBaseTarget);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Trader.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Trader.sol", + "exportedSymbols": { + "Trader": [ + 10351 + ] + }, + "id": 10352, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9615, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:28" + }, + { + "id": 9616, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:28" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 9618, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 11624, + "src": "136:45:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9617, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 9620, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 11079, + "src": "182:51:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9619, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "190:11:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "file": "../lib/Types.sol", + "id": 9622, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 11632, + "src": "234:39:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9621, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "242:5:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOCallee.sol", + "file": "../intf/IDODOCallee.sol", + "id": 9624, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 10507, + "src": "274:52:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9623, + "name": "IDODOCallee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "282:11:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "file": "./Storage.sol", + "id": 9626, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 9614, + "src": "327:38:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9625, + "name": "Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "335:7:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Pricing.sol", + "file": "./Pricing.sol", + "id": 9628, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 8854, + "src": "366:38:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9627, + "name": "Pricing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "374:7:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Settlement.sol", + "file": "./Settlement.sol", + "id": 9630, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 9397, + "src": "405:44:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9629, + "name": "Settlement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "413:10:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9632, + "name": "Storage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9613, + "src": "566:7:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Storage_$9613", + "typeString": "contract Storage" + } + }, + "id": 9633, + "nodeType": "InheritanceSpecifier", + "src": "566:7:28" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9634, + "name": "Pricing", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 8853, + "src": "575:7:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pricing_$8853", + "typeString": "contract Pricing" + } + }, + "id": 9635, + "nodeType": "InheritanceSpecifier", + "src": "575:7:28" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9636, + "name": "Settlement", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9396, + "src": "584:10:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + }, + "id": 9637, + "nodeType": "InheritanceSpecifier", + "src": "584:10:28" + } + ], + "contractDependencies": [ + 8853, + 9396, + 9613, + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 9631, + "nodeType": "StructuredDocumentation", + "src": "452:94:28", + "text": " @title Trader\n @author DODO Breeder\n @notice Functions for trader operations" + }, + "fullyImplemented": true, + "id": 10351, + "linearizedBaseContracts": [ + 10351, + 9396, + 8853, + 9613, + 11296, + 11166 + ], + "name": "Trader", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 9640, + "libraryName": { + "contractScope": null, + "id": 9638, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "607:8:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "601:27:28", + "typeName": { + "id": 9639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "620:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 9648, + "name": "SellBaseToken", + "nodeType": "EventDefinition", + "parameters": { + "id": 9647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9642, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9648, + "src": "695:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "695:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9644, + "indexed": false, + "mutability": "mutable", + "name": "payBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9648, + "src": "719:15:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "719:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9646, + "indexed": false, + "mutability": "mutable", + "name": "receiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9648, + "src": "736:20:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "736:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "694:63:28" + }, + "src": "675:83:28" + }, + { + "anonymous": false, + "documentation": null, + "id": 9656, + "name": "BuyBaseToken", + "nodeType": "EventDefinition", + "parameters": { + "id": 9655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9650, + "indexed": true, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9656, + "src": "783:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "783:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9652, + "indexed": false, + "mutability": "mutable", + "name": "receiveBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9656, + "src": "806:19:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9651, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "806:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9654, + "indexed": false, + "mutability": "mutable", + "name": "payQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9656, + "src": "827:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "827:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "782:62:28" + }, + "src": "764:81:28" + }, + { + "anonymous": false, + "documentation": null, + "id": 9664, + "name": "ChargeMaintainerFee", + "nodeType": "EventDefinition", + "parameters": { + "id": 9663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9658, + "indexed": true, + "mutability": "mutable", + "name": "maintainer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9664, + "src": "877:26:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "877:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9660, + "indexed": false, + "mutability": "mutable", + "name": "isBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9664, + "src": "905:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9659, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "905:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9662, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9664, + "src": "923:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "923:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "876:62:28" + }, + "src": "851:88:28" + }, + { + "body": { + "id": 9672, + "nodeType": "Block", + "src": "1013:73:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9667, + "name": "_TRADE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9431, + "src": "1031:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54524144455f4e4f545f414c4c4f574544", + "id": 9668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1048:19:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a276537e38920b1f77c7c8c2b082f9b84306b71be306551ec925c75ea3b72343", + "typeString": "literal_string \"TRADE_NOT_ALLOWED\"" + }, + "value": "TRADE_NOT_ALLOWED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a276537e38920b1f77c7c8c2b082f9b84306b71be306551ec925c75ea3b72343", + "typeString": "literal_string \"TRADE_NOT_ALLOWED\"" + } + ], + "id": 9666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1023:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1023:45:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9670, + "nodeType": "ExpressionStatement", + "src": "1023:45:28" + }, + { + "id": 9671, + "nodeType": "PlaceholderStatement", + "src": "1078:1:28" + } + ] + }, + "documentation": null, + "id": 9673, + "name": "tradeAllowed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 9665, + "nodeType": "ParameterList", + "parameters": [], + "src": "1010:2:28" + }, + "src": "989:97:28", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9681, + "nodeType": "Block", + "src": "1117:75:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9676, + "name": "_BUYING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9435, + "src": "1135:16:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "425559494e475f4e4f545f414c4c4f574544", + "id": 9677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1153:20:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ff4b067ea4e78a07e9f2c42853847fde0a109fa713bbb658dd5e72956cfe0087", + "typeString": "literal_string \"BUYING_NOT_ALLOWED\"" + }, + "value": "BUYING_NOT_ALLOWED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ff4b067ea4e78a07e9f2c42853847fde0a109fa713bbb658dd5e72956cfe0087", + "typeString": "literal_string \"BUYING_NOT_ALLOWED\"" + } + ], + "id": 9675, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1127:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1127:47:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9679, + "nodeType": "ExpressionStatement", + "src": "1127:47:28" + }, + { + "id": 9680, + "nodeType": "PlaceholderStatement", + "src": "1184:1:28" + } + ] + }, + "documentation": null, + "id": 9682, + "name": "buyingAllowed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 9674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1114:2:28" + }, + "src": "1092:100:28", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9690, + "nodeType": "Block", + "src": "1224:77:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9685, + "name": "_SELLING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9437, + "src": "1242:17:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "53454c4c494e475f4e4f545f414c4c4f574544", + "id": 9686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1261:21:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9cedf648d013202fd3dfb14738c5dd5367278e047930dbbeecece1d175ffa5e", + "typeString": "literal_string \"SELLING_NOT_ALLOWED\"" + }, + "value": "SELLING_NOT_ALLOWED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9cedf648d013202fd3dfb14738c5dd5367278e047930dbbeecece1d175ffa5e", + "typeString": "literal_string \"SELLING_NOT_ALLOWED\"" + } + ], + "id": 9684, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1234:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1234:49:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9688, + "nodeType": "ExpressionStatement", + "src": "1234:49:28" + }, + { + "id": 9689, + "nodeType": "PlaceholderStatement", + "src": "1293:1:28" + } + ] + }, + "documentation": null, + "id": 9691, + "name": "sellingAllowed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 9683, + "nodeType": "ParameterList", + "parameters": [], + "src": "1221:2:28" + }, + "src": "1198:103:28", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9702, + "nodeType": "Block", + "src": "1332:89:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9694, + "name": "tx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -26, + "src": "1350:2:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_transaction", + "typeString": "tx" + } + }, + "id": 9695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "gasprice", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1350:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 9696, + "name": "_GAS_PRICE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9433, + "src": "1365:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1350:32:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4741535f50524943455f455843454544", + "id": 9698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1384:18:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f9e898838c870676efb9b2b0592d10219d9697c9d6edfa0e8e8f1d32ed503a32", + "typeString": "literal_string \"GAS_PRICE_EXCEED\"" + }, + "value": "GAS_PRICE_EXCEED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f9e898838c870676efb9b2b0592d10219d9697c9d6edfa0e8e8f1d32ed503a32", + "typeString": "literal_string \"GAS_PRICE_EXCEED\"" + } + ], + "id": 9693, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1342:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1342:61:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9700, + "nodeType": "ExpressionStatement", + "src": "1342:61:28" + }, + { + "id": 9701, + "nodeType": "PlaceholderStatement", + "src": "1413:1:28" + } + ] + }, + "documentation": null, + "id": 9703, + "name": "gasPriceLimit", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 9692, + "nodeType": "ParameterList", + "parameters": [], + "src": "1329:2:28" + }, + "src": "1307:114:28", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9830, + "nodeType": "Block", + "src": "1678:1298:28", + "statements": [ + { + "assignments": [ + 9723, + 9725, + 9727, + 9729, + 9731, + 9733 + ], + "declarations": [ + { + "constant": false, + "id": 9723, + "mutability": "mutable", + "name": "receiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9830, + "src": "1725:20:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1725:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9725, + "mutability": "mutable", + "name": "lpFeeQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9830, + "src": "1759:18:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1759:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9727, + "mutability": "mutable", + "name": "mtFeeQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9830, + "src": "1791:18:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9726, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1791:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9729, + "mutability": "mutable", + "name": "newRStatus", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9830, + "src": "1823:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "typeName": { + "contractScope": null, + "id": 9728, + "name": "Types.RStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11630, + "src": "1823:13:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9731, + "mutability": "mutable", + "name": "newQuoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9830, + "src": "1861:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1861:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9733, + "mutability": "mutable", + "name": "newBaseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9830, + "src": "1897:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1897:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9737, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9735, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "1951:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9734, + "name": "_querySellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10175, + "src": "1931:19:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "id": 9736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1931:27:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1711:247:28" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9739, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "1976:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 9740, + "name": "minReceiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9707, + "src": "1992:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1976:31:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "53454c4c5f424153455f524543454956455f4e4f545f454e4f554748", + "id": 9742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2009:30:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e2576acc4b00a6068878bb264a3736551706bb27baf7a460c6372cbcdfae4018", + "typeString": "literal_string \"SELL_BASE_RECEIVE_NOT_ENOUGH\"" + }, + "value": "SELL_BASE_RECEIVE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e2576acc4b00a6068878bb264a3736551706bb27baf7a460c6372cbcdfae4018", + "typeString": "literal_string \"SELL_BASE_RECEIVE_NOT_ENOUGH\"" + } + ], + "id": 9738, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1968:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1968:72:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9744, + "nodeType": "ExpressionStatement", + "src": "1968:72:28" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9746, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2099:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2099:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9748, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "2111:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9745, + "name": "_quoteTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9013, + "src": "2076:22:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2076:48:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9750, + "nodeType": "ExpressionStatement", + "src": "2076:48:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9751, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9709, + "src": "2138:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 9752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2138:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9753, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2152:1:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2138:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9767, + "nodeType": "IfStatement", + "src": "2134:113:28", + "trueBody": { + "id": 9766, + "nodeType": "Block", + "src": "2155:92:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2202:5:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 9761, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "2209:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9762, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "2217:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9763, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9709, + "src": "2231:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9756, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2181:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2181:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 9755, + "name": "IDODOCallee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10506, + "src": "2169:11:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOCallee_$10506_$", + "typeString": "type(contract IDODOCallee)" + } + }, + "id": 9758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2169:23:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOCallee_$10506", + "typeString": "contract IDODOCallee" + } + }, + "id": 9759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "dodoCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 10505, + "src": "2169:32:28", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bool,uint256,uint256,bytes memory) external" + } + }, + "id": 9764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2169:67:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9765, + "nodeType": "ExpressionStatement", + "src": "2169:67:28" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9769, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2277:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2277:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9771, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "2289:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9768, + "name": "_baseTokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8930, + "src": "2256:20:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2256:40:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9773, + "nodeType": "ExpressionStatement", + "src": "2256:40:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9774, + "name": "mtFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9727, + "src": "2310:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2324:1:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2310:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9789, + "nodeType": "IfStatement", + "src": "2306:165:28", + "trueBody": { + "id": 9788, + "nodeType": "Block", + "src": "2327:144:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9778, + "name": "_MAINTAINER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9445, + "src": "2364:12:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9779, + "name": "mtFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9727, + "src": "2378:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9777, + "name": "_quoteTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9013, + "src": "2341:22:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2341:48:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9781, + "nodeType": "ExpressionStatement", + "src": "2341:48:28" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9783, + "name": "_MAINTAINER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9445, + "src": "2428:12:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2442:5:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 9785, + "name": "mtFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9727, + "src": "2449:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9782, + "name": "ChargeMaintainerFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9664, + "src": "2408:19:28", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,bool,uint256)" + } + }, + "id": 9786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2408:52:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9787, + "nodeType": "EmitStatement", + "src": "2403:57:28" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9790, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "2510:27:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 9791, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9731, + "src": "2541:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2510:45:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9798, + "nodeType": "IfStatement", + "src": "2506:120:28", + "trueBody": { + "id": 9797, + "nodeType": "Block", + "src": "2557:69:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9793, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "2571:27:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9794, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9731, + "src": "2601:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2571:44:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9796, + "nodeType": "ExpressionStatement", + "src": "2571:44:28" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9799, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "2639:26:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 9800, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9733, + "src": "2669:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2639:43:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9807, + "nodeType": "IfStatement", + "src": "2635:116:28", + "trueBody": { + "id": 9806, + "nodeType": "Block", + "src": "2684:67:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9802, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "2698:26:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9803, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9733, + "src": "2727:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2698:42:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9805, + "nodeType": "ExpressionStatement", + "src": "2698:42:28" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 9810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9808, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "2764:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 9809, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9729, + "src": "2778:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "2764:24:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9816, + "nodeType": "IfStatement", + "src": "2760:78:28", + "trueBody": { + "id": 9815, + "nodeType": "Block", + "src": "2790:48:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9811, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "2804:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9812, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9729, + "src": "2817:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "2804:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 9814, + "nodeType": "ExpressionStatement", + "src": "2804:23:28" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9818, + "name": "lpFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9725, + "src": "2866:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9817, + "name": "_donateQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9049, + "src": "2848:17:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 9819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2848:29:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9820, + "nodeType": "ExpressionStatement", + "src": "2848:29:28" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9822, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2906:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2906:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9824, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "2918:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9825, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "2926:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9821, + "name": "SellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9648, + "src": "2892:13:28", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 9826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2892:47:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9827, + "nodeType": "EmitStatement", + "src": "2887:52:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 9828, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "2957:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9721, + "id": 9829, + "nodeType": "Return", + "src": "2950:19:28" + } + ] + }, + "documentation": null, + "functionSelector": "8dae7333", + "id": 9831, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9712, + "modifierName": { + "argumentTypes": null, + "id": 9711, + "name": "tradeAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9673, + "src": "1601:12:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1601:12:28" + }, + { + "arguments": null, + "id": 9714, + "modifierName": { + "argumentTypes": null, + "id": 9713, + "name": "sellingAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9691, + "src": "1614:14:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1614:14:28" + }, + { + "arguments": null, + "id": 9716, + "modifierName": { + "argumentTypes": null, + "id": 9715, + "name": "gasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9703, + "src": "1629:13:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1629:13:28" + }, + { + "arguments": null, + "id": 9718, + "modifierName": { + "argumentTypes": null, + "id": 9717, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "1643:16:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1643:16:28" + } + ], + "name": "sellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9705, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9831, + "src": "1509:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9704, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1509:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9707, + "mutability": "mutable", + "name": "minReceiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9831, + "src": "1533:23:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1533:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9709, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9831, + "src": "1566:19:28", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9708, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1566:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1499:92:28" + }, + "returnParameters": { + "id": 9721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9720, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9831, + "src": "1669:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9719, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1669:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1668:9:28" + }, + "scope": 10351, + "src": "1477:1499:28", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9958, + "nodeType": "Block", + "src": "3177:1252:28", + "statements": [ + { + "assignments": [ + 9851, + 9853, + 9855, + 9857, + 9859, + 9861 + ], + "declarations": [ + { + "constant": false, + "id": 9851, + "mutability": "mutable", + "name": "payQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9958, + "src": "3224:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3224:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9853, + "mutability": "mutable", + "name": "lpFeeBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9958, + "src": "3254:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3254:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9855, + "mutability": "mutable", + "name": "mtFeeBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9958, + "src": "3285:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3285:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9857, + "mutability": "mutable", + "name": "newRStatus", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9958, + "src": "3316:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "typeName": { + "contractScope": null, + "id": 9856, + "name": "Types.RStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11630, + "src": "3316:13:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9859, + "mutability": "mutable", + "name": "newQuoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9958, + "src": "3354:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3354:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9861, + "mutability": "mutable", + "name": "newBaseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9958, + "src": "3390:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9860, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3390:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9865, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9863, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9833, + "src": "3443:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9862, + "name": "_queryBuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10350, + "src": "3424:18:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "id": 9864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3424:26:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3210:240:28" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9867, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9851, + "src": "3468:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 9868, + "name": "maxPayQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9835, + "src": "3480:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3468:23:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4255595f424153455f434f53545f544f4f5f4d554348", + "id": 9870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3493:24:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f0ac5b3c32d4064b3751261129f0fefc22b7826ab110012bdbce29191898a75a", + "typeString": "literal_string \"BUY_BASE_COST_TOO_MUCH\"" + }, + "value": "BUY_BASE_COST_TOO_MUCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f0ac5b3c32d4064b3751261129f0fefc22b7826ab110012bdbce29191898a75a", + "typeString": "literal_string \"BUY_BASE_COST_TOO_MUCH\"" + } + ], + "id": 9866, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3460:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3460:58:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9872, + "nodeType": "ExpressionStatement", + "src": "3460:58:28" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9874, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3576:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3576:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9876, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9833, + "src": "3588:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9873, + "name": "_baseTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8990, + "src": "3554:21:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3554:41:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9878, + "nodeType": "ExpressionStatement", + "src": "3554:41:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9879, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9837, + "src": "3609:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 9880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3609:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3623:1:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3609:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9895, + "nodeType": "IfStatement", + "src": "3605:108:28", + "trueBody": { + "id": 9894, + "nodeType": "Block", + "src": "3626:87:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3673:4:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 9889, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9833, + "src": "3679:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9890, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9851, + "src": "3687:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9891, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9837, + "src": "3697:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9884, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3652:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3652:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 9883, + "name": "IDODOCallee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10506, + "src": "3640:11:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOCallee_$10506_$", + "typeString": "type(contract IDODOCallee)" + } + }, + "id": 9886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3640:23:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOCallee_$10506", + "typeString": "contract IDODOCallee" + } + }, + "id": 9887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "dodoCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 10505, + "src": "3640:32:28", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bool,uint256,uint256,bytes memory) external" + } + }, + "id": 9892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3640:62:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9893, + "nodeType": "ExpressionStatement", + "src": "3640:62:28" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9897, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3744:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3744:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9899, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9851, + "src": "3756:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9896, + "name": "_quoteTokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8967, + "src": "3722:21:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3722:43:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9901, + "nodeType": "ExpressionStatement", + "src": "3722:43:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9902, + "name": "mtFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9855, + "src": "3779:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3792:1:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3779:14:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9917, + "nodeType": "IfStatement", + "src": "3775:160:28", + "trueBody": { + "id": 9916, + "nodeType": "Block", + "src": "3795:140:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9906, + "name": "_MAINTAINER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9445, + "src": "3831:12:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9907, + "name": "mtFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9855, + "src": "3845:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9905, + "name": "_baseTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8990, + "src": "3809:21:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3809:46:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9909, + "nodeType": "ExpressionStatement", + "src": "3809:46:28" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9911, + "name": "_MAINTAINER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9445, + "src": "3894:12:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3908:4:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 9913, + "name": "mtFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9855, + "src": "3914:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9910, + "name": "ChargeMaintainerFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9664, + "src": "3874:19:28", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,bool,uint256)" + } + }, + "id": 9914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3874:50:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9915, + "nodeType": "EmitStatement", + "src": "3869:55:28" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9918, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "3974:27:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 9919, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9859, + "src": "4005:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3974:45:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9926, + "nodeType": "IfStatement", + "src": "3970:120:28", + "trueBody": { + "id": 9925, + "nodeType": "Block", + "src": "4021:69:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9921, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4035:27:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9922, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9859, + "src": "4065:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4035:44:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9924, + "nodeType": "ExpressionStatement", + "src": "4035:44:28" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9927, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "4103:26:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 9928, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9861, + "src": "4133:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4103:43:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9935, + "nodeType": "IfStatement", + "src": "4099:116:28", + "trueBody": { + "id": 9934, + "nodeType": "Block", + "src": "4148:67:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9930, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "4162:26:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9931, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9861, + "src": "4191:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4162:42:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9933, + "nodeType": "ExpressionStatement", + "src": "4162:42:28" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 9938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9936, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "4228:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 9937, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9857, + "src": "4242:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "4228:24:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9944, + "nodeType": "IfStatement", + "src": "4224:78:28", + "trueBody": { + "id": 9943, + "nodeType": "Block", + "src": "4254:48:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9939, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "4268:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9940, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9857, + "src": "4281:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "4268:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 9942, + "nodeType": "ExpressionStatement", + "src": "4268:23:28" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9946, + "name": "lpFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9853, + "src": "4329:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9945, + "name": "_donateBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9031, + "src": "4312:16:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 9947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4312:27:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9948, + "nodeType": "ExpressionStatement", + "src": "4312:27:28" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9950, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4367:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4367:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9952, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9833, + "src": "4379:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9953, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9851, + "src": "4387:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9949, + "name": "BuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9656, + "src": "4354:12:28", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 9954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4354:42:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9955, + "nodeType": "EmitStatement", + "src": "4349:47:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 9956, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9851, + "src": "4414:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9849, + "id": 9957, + "nodeType": "Return", + "src": "4407:15:28" + } + ] + }, + "documentation": null, + "functionSelector": "e67ce706", + "id": 9959, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9840, + "modifierName": { + "argumentTypes": null, + "id": 9839, + "name": "tradeAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9673, + "src": "3101:12:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3101:12:28" + }, + { + "arguments": null, + "id": 9842, + "modifierName": { + "argumentTypes": null, + "id": 9841, + "name": "buyingAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9682, + "src": "3114:13:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3114:13:28" + }, + { + "arguments": null, + "id": 9844, + "modifierName": { + "argumentTypes": null, + "id": 9843, + "name": "gasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9703, + "src": "3128:13:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3128:13:28" + }, + { + "arguments": null, + "id": 9846, + "modifierName": { + "argumentTypes": null, + "id": 9845, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "3142:16:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3142:16:28" + } + ], + "name": "buyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9833, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9959, + "src": "3013:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3013:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9835, + "mutability": "mutable", + "name": "maxPayQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9959, + "src": "3037:19:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3037:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9837, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9959, + "src": "3066:19:28", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9836, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3066:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3003:88:28" + }, + "returnParameters": { + "id": 9849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9848, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9959, + "src": "3168:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9847, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3168:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3167:9:28" + }, + "scope": 10351, + "src": "2982:1447:28", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9975, + "nodeType": "Block", + "src": "4574:100:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 9966, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9964, + "src": "4585:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + null, + null, + null, + null, + null + ], + "id": 9967, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "4584:24:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$__$__$__$__$__$", + "typeString": "tuple(uint256,,,,,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9969, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9961, + "src": "4631:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9968, + "name": "_querySellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10175, + "src": "4611:19:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "id": 9970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4611:27:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "src": "4584:54:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9972, + "nodeType": "ExpressionStatement", + "src": "4584:54:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 9973, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9964, + "src": "4655:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9965, + "id": 9974, + "nodeType": "Return", + "src": "4648:19:28" + } + ] + }, + "documentation": null, + "functionSelector": "a2801e16", + "id": 9976, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "querySellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9961, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9976, + "src": "4513:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4513:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4512:16:28" + }, + "returnParameters": { + "id": 9965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9964, + "mutability": "mutable", + "name": "receiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9976, + "src": "4552:20:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4552:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4551:22:28" + }, + "scope": 10351, + "src": "4485:189:28", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9992, + "nodeType": "Block", + "src": "4764:91:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 9983, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9981, + "src": "4775:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + null, + null, + null, + null, + null + ], + "id": 9984, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "4774:20:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$__$__$__$__$__$", + "typeString": "tuple(uint256,,,,,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9986, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9978, + "src": "4816:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9985, + "name": "_queryBuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10350, + "src": "4797:18:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "id": 9987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4797:26:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "src": "4774:49:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9989, + "nodeType": "ExpressionStatement", + "src": "4774:49:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 9990, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9981, + "src": "4840:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9982, + "id": 9991, + "nodeType": "Return", + "src": "4833:15:28" + } + ] + }, + "documentation": null, + "functionSelector": "18c0bbe4", + "id": 9993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "queryBuyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9979, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9978, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9993, + "src": "4707:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9977, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4707:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4706:16:28" + }, + "returnParameters": { + "id": 9982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9981, + "mutability": "mutable", + "name": "payQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9993, + "src": "4746:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4746:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4745:18:28" + }, + "scope": 10351, + "src": "4680:175:28", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 10174, + "nodeType": "Block", + "src": "5174:2431:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 10010, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10008, + "src": "5185:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10011, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10006, + "src": "5200:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10012, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "5184:31:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10013, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "5218:17:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 10014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5218:19:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "5184:53:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10016, + "nodeType": "ExpressionStatement", + "src": "5184:53:28" + }, + { + "assignments": [ + 10018 + ], + "declarations": [ + { + "constant": false, + "id": 10018, + "mutability": "mutable", + "name": "sellBaseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10174, + "src": "5248:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5248:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10020, + "initialValue": { + "argumentTypes": null, + "id": 10019, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9995, + "src": "5273:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5248:31:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 10025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10021, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "5294:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10022, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5308:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5308:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5308:17:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "5294:31:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10040, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "5537:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10041, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5551:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5551:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5551:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "5537:37:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10137, + "nodeType": "Block", + "src": "7035:239:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10123, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "7129:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10125, + "name": "sellBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10018, + "src": "7165:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10126, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "7181:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10127, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10006, + "src": "7198:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10124, + "name": "_RBelowSellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8494, + "src": "7144:20:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 10128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7144:69:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7129:84:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10130, + "nodeType": "ExpressionStatement", + "src": "7129:84:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10131, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10004, + "src": "7227:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10132, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "7240:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "7240:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7240:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "7227:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10136, + "nodeType": "ExpressionStatement", + "src": "7227:36:28" + } + ] + }, + "id": 10138, + "nodeType": "IfStatement", + "src": "5533:1741:28", + "trueBody": { + "id": 10122, + "nodeType": "Block", + "src": "5576:1453:28", + "statements": [ + { + "assignments": [ + 10046 + ], + "declarations": [ + { + "constant": false, + "id": 10046, + "mutability": "mutable", + "name": "backToOnePayBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10122, + "src": "5590:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10045, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5590:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10051, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10049, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "5635:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10047, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10008, + "src": "5617:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5617:17:28", + "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": 10050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5617:33:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5590:60:28" + }, + { + "assignments": [ + 10053 + ], + "declarations": [ + { + "constant": false, + "id": 10053, + "mutability": "mutable", + "name": "backToOneReceiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10122, + "src": "5664:29:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5664:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10058, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10056, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10006, + "src": "5716:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10054, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "5696:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5696:19:28", + "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": 10057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5696:35:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5664:67:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10059, + "name": "sellBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10018, + "src": "5840:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 10060, + "name": "backToOnePayBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10046, + "src": "5857:16:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5840:33:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10086, + "name": "sellBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10018, + "src": "6509:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 10087, + "name": "backToOnePayBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10046, + "src": "6527:16:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6509:34:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10119, + "nodeType": "Block", + "src": "6721:298:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10100, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "6798:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10106, + "name": "backToOnePayBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10046, + "src": "6898:16:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10104, + "name": "sellBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10018, + "src": "6879:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6879:18:28", + "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": 10107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6879:36:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10108, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10006, + "src": "6917:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10103, + "name": "_ROneSellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8423, + "src": "6860:18:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 10109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6860:72:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10101, + "name": "backToOneReceiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "6813:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "6813:25:28", + "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": 10110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6813:137:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6798:152:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10112, + "nodeType": "ExpressionStatement", + "src": "6798:152:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10113, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10004, + "src": "6968:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10114, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "6981:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "6981:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6981:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "6968:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10118, + "nodeType": "ExpressionStatement", + "src": "6968:36:28" + } + ] + }, + "id": 10120, + "nodeType": "IfStatement", + "src": "6505:514:28", + "trueBody": { + "id": 10099, + "nodeType": "Block", + "src": "6545:170:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10089, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "6616:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10090, + "name": "backToOneReceiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "6631:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6616:36:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10092, + "nodeType": "ExpressionStatement", + "src": "6616:36:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10093, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10004, + "src": "6670:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10094, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "6683:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "6683:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6683:17:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "6670:30:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10098, + "nodeType": "ExpressionStatement", + "src": "6670:30:28" + } + ] + } + }, + "id": 10121, + "nodeType": "IfStatement", + "src": "5836:1183:28", + "trueBody": { + "id": 10085, + "nodeType": "Block", + "src": "5875:624:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10062, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "5945:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10064, + "name": "sellBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10018, + "src": "5981:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10065, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "5997:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10066, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10008, + "src": "6013:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10063, + "name": "_RAboveSellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8628, + "src": "5960:20:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 10067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5960:67:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5945:82:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10069, + "nodeType": "ExpressionStatement", + "src": "5945:82:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10070, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10004, + "src": "6045:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10071, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "6058:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "6058:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6058:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "6045:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10075, + "nodeType": "ExpressionStatement", + "src": "6045:36:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10076, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "6103:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 10077, + "name": "backToOneReceiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "6118:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6103:36:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10084, + "nodeType": "IfStatement", + "src": "6099:386:28", + "trueBody": { + "id": 10083, + "nodeType": "Block", + "src": "6141:344:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10079, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "6430:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10080, + "name": "backToOneReceiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "6445:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6430:36:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10082, + "nodeType": "ExpressionStatement", + "src": "6430:36:28" + } + ] + } + } + ] + } + } + ] + } + }, + "id": 10139, + "nodeType": "IfStatement", + "src": "5290:1984:28", + "trueBody": { + "id": 10039, + "nodeType": "Block", + "src": "5327:200:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10026, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "5401:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10028, + "name": "sellBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10018, + "src": "5435:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10029, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10006, + "src": "5451:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10027, + "name": "_ROneSellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8423, + "src": "5416:18:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 10030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5416:50:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5401:65:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10032, + "nodeType": "ExpressionStatement", + "src": "5401:65:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10033, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10004, + "src": "5480:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10034, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5493:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5493:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5493:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "5480:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10038, + "nodeType": "ExpressionStatement", + "src": "5480:36:28" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 10146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10140, + "name": "lpFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10000, + "src": "7306:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10143, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "7335:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10144, + "name": "_LP_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "7349:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10141, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "7319:11:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "7319:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7319:44:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7306:57:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10147, + "nodeType": "ExpressionStatement", + "src": "7306:57:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10148, + "name": "mtFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10002, + "src": "7373:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10151, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "7402:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10152, + "name": "_MT_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "7416:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10149, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "7386:11:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "7386:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7386:44:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7373:57:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10155, + "nodeType": "ExpressionStatement", + "src": "7373:57:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10156, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "7440:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10162, + "name": "mtFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10002, + "src": "7488:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10159, + "name": "lpFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10000, + "src": "7472:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10157, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "7455:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "7455:16:28", + "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": 10160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7455:28:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "7455:32:28", + "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": 10163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7455:44:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7440:59:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10165, + "nodeType": "ExpressionStatement", + "src": "7440:59:28" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 10166, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "7518:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10167, + "name": "lpFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10000, + "src": "7532:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10168, + "name": "mtFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10002, + "src": "7544:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10169, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10004, + "src": "7556:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + { + "argumentTypes": null, + "id": 10170, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10006, + "src": "7568:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10171, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10008, + "src": "7584:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10172, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7517:81:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "functionReturnParameters": 10009, + "id": 10173, + "nodeType": "Return", + "src": "7510:88:28" + } + ] + }, + "documentation": null, + "id": 10175, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_querySellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9996, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9995, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "4890:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4890:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4889:16:28" + }, + "returnParameters": { + "id": 10009, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9998, + "mutability": "mutable", + "name": "receiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "4966:20:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9997, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4966:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10000, + "mutability": "mutable", + "name": "lpFeeQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "5000:18:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5000:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10002, + "mutability": "mutable", + "name": "mtFeeQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "5032:18:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5032:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10004, + "mutability": "mutable", + "name": "newRStatus", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "5064:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "typeName": { + "contractScope": null, + "id": 10003, + "name": "Types.RStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11630, + "src": "5064:13:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10006, + "mutability": "mutable", + "name": "newQuoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "5102:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5102:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10008, + "mutability": "mutable", + "name": "newBaseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "5138:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10007, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5138:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4952:217:28" + }, + "scope": 10351, + "src": "4861:2744:28", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10349, + "nodeType": "Block", + "src": "7917:2002:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 10192, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10190, + "src": "7928:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10193, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10188, + "src": "7943:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10194, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "7927:31:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10195, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "7961:17:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 10196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7961:19:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "7927:53:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10198, + "nodeType": "ExpressionStatement", + "src": "7927:53:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10199, + "name": "lpFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10182, + "src": "8038:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10202, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10177, + "src": "8066:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10203, + "name": "_LP_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "8074:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10200, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "8050:11:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "8050:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8050:38:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8038:50:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10206, + "nodeType": "ExpressionStatement", + "src": "8038:50:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10207, + "name": "mtFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10184, + "src": "8098:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10210, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10177, + "src": "8126:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10211, + "name": "_MT_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "8134:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10208, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "8110:11:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "8110:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8110:38:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8098:50:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10214, + "nodeType": "ExpressionStatement", + "src": "8098:50:28" + }, + { + "assignments": [ + 10216 + ], + "declarations": [ + { + "constant": false, + "id": 10216, + "mutability": "mutable", + "name": "buyBaseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10349, + "src": "8158:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8158:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10224, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10222, + "name": "mtFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10184, + "src": "8208:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10219, + "name": "lpFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10182, + "src": "8193:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10217, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10177, + "src": "8182:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "8182:10:28", + "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": 10220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8182:21:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "8182:25:28", + "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": 10223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8182:36:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8158:60:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 10229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10225, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "8233:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10226, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "8247:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "8247:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8247:17:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "8233:31:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 10248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10244, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "8436:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10245, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "8450:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "8450:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8450:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "8436:37:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 10268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10264, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "8663:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10265, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "8677:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "8677:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8677:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "8663:37:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10338, + "nodeType": "IfStatement", + "src": "8659:1161:28", + "trueBody": { + "id": 10337, + "nodeType": "Block", + "src": "8702:1118:28", + "statements": [ + { + "assignments": [ + 10270 + ], + "declarations": [ + { + "constant": false, + "id": 10270, + "mutability": "mutable", + "name": "backToOnePayQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10337, + "src": "8716:25:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8716:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10275, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10273, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "8763:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10271, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10188, + "src": "8744:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "8744:18:28", + "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": 10274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8744:35:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8716:63:28" + }, + { + "assignments": [ + 10277 + ], + "declarations": [ + { + "constant": false, + "id": 10277, + "mutability": "mutable", + "name": "backToOneReceiveBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10337, + "src": "8793:28:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10276, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8793:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10282, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10280, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10190, + "src": "8843:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10278, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "8824:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "8824:18:28", + "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": 10281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8824:33:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8793:64:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10283, + "name": "buyBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10216, + "src": "8951:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 10284, + "name": "backToOneReceiveBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10277, + "src": "8967:20:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8951:36:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10301, + "name": "buyBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10216, + "src": "9312:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 10302, + "name": "backToOneReceiveBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10277, + "src": "9329:20:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9312:37:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10334, + "nodeType": "Block", + "src": "9519:291:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10315, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10180, + "src": "9596:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10321, + "name": "backToOneReceiveBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10277, + "src": "9686:20:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10319, + "name": "buyBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10216, + "src": "9668:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "9668:17:28", + "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": 10322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9668:39:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10323, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10190, + "src": "9709:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10318, + "name": "_ROneBuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8457, + "src": "9650:17:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 10324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9650:73:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10316, + "name": "backToOnePayQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10270, + "src": "9607:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "9607:21:28", + "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": 10325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9607:134:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9596:145:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10327, + "nodeType": "ExpressionStatement", + "src": "9596:145:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10328, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10186, + "src": "9759:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10329, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "9772:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "9772:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9772:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "9759:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10333, + "nodeType": "ExpressionStatement", + "src": "9759:36:28" + } + ] + }, + "id": 10335, + "nodeType": "IfStatement", + "src": "9308:502:28", + "trueBody": { + "id": 10314, + "nodeType": "Block", + "src": "9351:162:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10304, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10180, + "src": "9422:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10305, + "name": "backToOnePayQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10270, + "src": "9433:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9422:28:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10307, + "nodeType": "ExpressionStatement", + "src": "9422:28:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10308, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10186, + "src": "9468:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10309, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "9481:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "9481:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9481:17:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "9468:30:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10313, + "nodeType": "ExpressionStatement", + "src": "9468:30:28" + } + ] + } + }, + "id": 10336, + "nodeType": "IfStatement", + "src": "8947:863:28", + "trueBody": { + "id": 10300, + "nodeType": "Block", + "src": "8989:313:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10286, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10180, + "src": "9155:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10288, + "name": "buyBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10216, + "src": "9186:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10289, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "9201:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10290, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10188, + "src": "9218:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10287, + "name": "_RBelowBuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8531, + "src": "9166:19:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 10291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9166:67:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9155:78:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10293, + "nodeType": "ExpressionStatement", + "src": "9155:78:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10294, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10186, + "src": "9251:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10295, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "9264:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "9264:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9264:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "9251:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10299, + "nodeType": "ExpressionStatement", + "src": "9251:36:28" + } + ] + } + } + ] + } + }, + "id": 10339, + "nodeType": "IfStatement", + "src": "8432:1388:28", + "trueBody": { + "id": 10263, + "nodeType": "Block", + "src": "8475:178:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10249, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10180, + "src": "8516:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10251, + "name": "buyBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10216, + "src": "8547:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10252, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "8562:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10253, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10190, + "src": "8578:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10250, + "name": "_RAboveBuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8603, + "src": "8527:19:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 10254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8527:65:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8516:76:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10256, + "nodeType": "ExpressionStatement", + "src": "8516:76:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10257, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10186, + "src": "8606:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10258, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "8619:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "8619:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8619:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "8606:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10262, + "nodeType": "ExpressionStatement", + "src": "8606:36:28" + } + ] + } + }, + "id": 10340, + "nodeType": "IfStatement", + "src": "8229:1591:28", + "trueBody": { + "id": 10243, + "nodeType": "Block", + "src": "8266:160:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10230, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10180, + "src": "8307:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10232, + "name": "buyBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10216, + "src": "8336:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10233, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10190, + "src": "8351:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10231, + "name": "_ROneBuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8457, + "src": "8318:17:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 10234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8318:47:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8307:58:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10236, + "nodeType": "ExpressionStatement", + "src": "8307:58:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10237, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10186, + "src": "8379:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10238, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "8392:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "8392:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8392:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "8379:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10242, + "nodeType": "ExpressionStatement", + "src": "8379:36:28" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 10341, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10180, + "src": "9838:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10342, + "name": "lpFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10182, + "src": "9848:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10343, + "name": "mtFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10184, + "src": "9859:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10344, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10186, + "src": "9870:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + { + "argumentTypes": null, + "id": 10345, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10188, + "src": "9882:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10346, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10190, + "src": "9898:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10347, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9837:75:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "functionReturnParameters": 10191, + "id": 10348, + "nodeType": "Return", + "src": "9830:82:28" + } + ] + }, + "documentation": null, + "id": 10350, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_queryBuyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10177, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7639:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7639:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7638:16:28" + }, + "returnParameters": { + "id": 10191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10180, + "mutability": "mutable", + "name": "payQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7715:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10179, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7715:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10182, + "mutability": "mutable", + "name": "lpFeeBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7745:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7745:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10184, + "mutability": "mutable", + "name": "mtFeeBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7776:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7776:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10186, + "mutability": "mutable", + "name": "newRStatus", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7807:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "typeName": { + "contractScope": null, + "id": 10185, + "name": "Types.RStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11630, + "src": "7807:13:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10188, + "mutability": "mutable", + "name": "newQuoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7845:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10187, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7845:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10190, + "mutability": "mutable", + "name": "newBaseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7881:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10189, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7881:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7701:211:28" + }, + "scope": 10351, + "src": "7611:2308:28", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 10352, + "src": "547:9374:28" + } + ], + "src": "78:9844:28" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Trader.sol", + "exportedSymbols": { + "Trader": [ + 10351 + ] + }, + "id": 10352, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9615, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:28" + }, + { + "id": 9616, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:28" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 9618, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 11624, + "src": "136:45:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9617, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:8:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/DecimalMath.sol", + "file": "../lib/DecimalMath.sol", + "id": 9620, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 11079, + "src": "182:51:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9619, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "190:11:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "file": "../lib/Types.sol", + "id": 9622, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 11632, + "src": "234:39:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9621, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "242:5:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODOCallee.sol", + "file": "../intf/IDODOCallee.sol", + "id": 9624, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 10507, + "src": "274:52:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9623, + "name": "IDODOCallee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "282:11:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Storage.sol", + "file": "./Storage.sol", + "id": 9626, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 9614, + "src": "327:38:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9625, + "name": "Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "335:7:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Pricing.sol", + "file": "./Pricing.sol", + "id": 9628, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 8854, + "src": "366:38:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9627, + "name": "Pricing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "374:7:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/impl/Settlement.sol", + "file": "./Settlement.sol", + "id": 9630, + "nodeType": "ImportDirective", + "scope": 10352, + "sourceUnit": 9397, + "src": "405:44:28", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 9629, + "name": "Settlement", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "413:10:28", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9632, + "name": "Storage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9613, + "src": "566:7:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Storage_$9613", + "typeString": "contract Storage" + } + }, + "id": 9633, + "nodeType": "InheritanceSpecifier", + "src": "566:7:28" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9634, + "name": "Pricing", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 8853, + "src": "575:7:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pricing_$8853", + "typeString": "contract Pricing" + } + }, + "id": 9635, + "nodeType": "InheritanceSpecifier", + "src": "575:7:28" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9636, + "name": "Settlement", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9396, + "src": "584:10:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Settlement_$9396", + "typeString": "contract Settlement" + } + }, + "id": 9637, + "nodeType": "InheritanceSpecifier", + "src": "584:10:28" + } + ], + "contractDependencies": [ + 8853, + 9396, + 9613, + 11166, + 11296 + ], + "contractKind": "contract", + "documentation": { + "id": 9631, + "nodeType": "StructuredDocumentation", + "src": "452:94:28", + "text": " @title Trader\n @author DODO Breeder\n @notice Functions for trader operations" + }, + "fullyImplemented": true, + "id": 10351, + "linearizedBaseContracts": [ + 10351, + 9396, + 8853, + 9613, + 11296, + 11166 + ], + "name": "Trader", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 9640, + "libraryName": { + "contractScope": null, + "id": 9638, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "607:8:28", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "601:27:28", + "typeName": { + "id": 9639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "620:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "anonymous": false, + "documentation": null, + "id": 9648, + "name": "SellBaseToken", + "nodeType": "EventDefinition", + "parameters": { + "id": 9647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9642, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9648, + "src": "695:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9641, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "695:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9644, + "indexed": false, + "mutability": "mutable", + "name": "payBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9648, + "src": "719:15:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "719:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9646, + "indexed": false, + "mutability": "mutable", + "name": "receiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9648, + "src": "736:20:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "736:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "694:63:28" + }, + "src": "675:83:28" + }, + { + "anonymous": false, + "documentation": null, + "id": 9656, + "name": "BuyBaseToken", + "nodeType": "EventDefinition", + "parameters": { + "id": 9655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9650, + "indexed": true, + "mutability": "mutable", + "name": "buyer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9656, + "src": "783:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "783:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9652, + "indexed": false, + "mutability": "mutable", + "name": "receiveBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9656, + "src": "806:19:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9651, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "806:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9654, + "indexed": false, + "mutability": "mutable", + "name": "payQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9656, + "src": "827:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "827:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "782:62:28" + }, + "src": "764:81:28" + }, + { + "anonymous": false, + "documentation": null, + "id": 9664, + "name": "ChargeMaintainerFee", + "nodeType": "EventDefinition", + "parameters": { + "id": 9663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9658, + "indexed": true, + "mutability": "mutable", + "name": "maintainer", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9664, + "src": "877:26:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9657, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "877:7:28", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9660, + "indexed": false, + "mutability": "mutable", + "name": "isBaseToken", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9664, + "src": "905:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9659, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "905:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9662, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9664, + "src": "923:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "923:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "876:62:28" + }, + "src": "851:88:28" + }, + { + "body": { + "id": 9672, + "nodeType": "Block", + "src": "1013:73:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9667, + "name": "_TRADE_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9431, + "src": "1031:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54524144455f4e4f545f414c4c4f574544", + "id": 9668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1048:19:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a276537e38920b1f77c7c8c2b082f9b84306b71be306551ec925c75ea3b72343", + "typeString": "literal_string \"TRADE_NOT_ALLOWED\"" + }, + "value": "TRADE_NOT_ALLOWED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a276537e38920b1f77c7c8c2b082f9b84306b71be306551ec925c75ea3b72343", + "typeString": "literal_string \"TRADE_NOT_ALLOWED\"" + } + ], + "id": 9666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1023:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1023:45:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9670, + "nodeType": "ExpressionStatement", + "src": "1023:45:28" + }, + { + "id": 9671, + "nodeType": "PlaceholderStatement", + "src": "1078:1:28" + } + ] + }, + "documentation": null, + "id": 9673, + "name": "tradeAllowed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 9665, + "nodeType": "ParameterList", + "parameters": [], + "src": "1010:2:28" + }, + "src": "989:97:28", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9681, + "nodeType": "Block", + "src": "1117:75:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9676, + "name": "_BUYING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9435, + "src": "1135:16:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "425559494e475f4e4f545f414c4c4f574544", + "id": 9677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1153:20:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ff4b067ea4e78a07e9f2c42853847fde0a109fa713bbb658dd5e72956cfe0087", + "typeString": "literal_string \"BUYING_NOT_ALLOWED\"" + }, + "value": "BUYING_NOT_ALLOWED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ff4b067ea4e78a07e9f2c42853847fde0a109fa713bbb658dd5e72956cfe0087", + "typeString": "literal_string \"BUYING_NOT_ALLOWED\"" + } + ], + "id": 9675, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1127:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1127:47:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9679, + "nodeType": "ExpressionStatement", + "src": "1127:47:28" + }, + { + "id": 9680, + "nodeType": "PlaceholderStatement", + "src": "1184:1:28" + } + ] + }, + "documentation": null, + "id": 9682, + "name": "buyingAllowed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 9674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1114:2:28" + }, + "src": "1092:100:28", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9690, + "nodeType": "Block", + "src": "1224:77:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9685, + "name": "_SELLING_ALLOWED_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9437, + "src": "1242:17:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "53454c4c494e475f4e4f545f414c4c4f574544", + "id": 9686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1261:21:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9cedf648d013202fd3dfb14738c5dd5367278e047930dbbeecece1d175ffa5e", + "typeString": "literal_string \"SELLING_NOT_ALLOWED\"" + }, + "value": "SELLING_NOT_ALLOWED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9cedf648d013202fd3dfb14738c5dd5367278e047930dbbeecece1d175ffa5e", + "typeString": "literal_string \"SELLING_NOT_ALLOWED\"" + } + ], + "id": 9684, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1234:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1234:49:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9688, + "nodeType": "ExpressionStatement", + "src": "1234:49:28" + }, + { + "id": 9689, + "nodeType": "PlaceholderStatement", + "src": "1293:1:28" + } + ] + }, + "documentation": null, + "id": 9691, + "name": "sellingAllowed", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 9683, + "nodeType": "ParameterList", + "parameters": [], + "src": "1221:2:28" + }, + "src": "1198:103:28", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9702, + "nodeType": "Block", + "src": "1332:89:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9694, + "name": "tx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -26, + "src": "1350:2:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_transaction", + "typeString": "tx" + } + }, + "id": 9695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "gasprice", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1350:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 9696, + "name": "_GAS_PRICE_LIMIT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9433, + "src": "1365:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1350:32:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4741535f50524943455f455843454544", + "id": 9698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1384:18:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f9e898838c870676efb9b2b0592d10219d9697c9d6edfa0e8e8f1d32ed503a32", + "typeString": "literal_string \"GAS_PRICE_EXCEED\"" + }, + "value": "GAS_PRICE_EXCEED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f9e898838c870676efb9b2b0592d10219d9697c9d6edfa0e8e8f1d32ed503a32", + "typeString": "literal_string \"GAS_PRICE_EXCEED\"" + } + ], + "id": 9693, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1342:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1342:61:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9700, + "nodeType": "ExpressionStatement", + "src": "1342:61:28" + }, + { + "id": 9701, + "nodeType": "PlaceholderStatement", + "src": "1413:1:28" + } + ] + }, + "documentation": null, + "id": 9703, + "name": "gasPriceLimit", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 9692, + "nodeType": "ParameterList", + "parameters": [], + "src": "1329:2:28" + }, + "src": "1307:114:28", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9830, + "nodeType": "Block", + "src": "1678:1298:28", + "statements": [ + { + "assignments": [ + 9723, + 9725, + 9727, + 9729, + 9731, + 9733 + ], + "declarations": [ + { + "constant": false, + "id": 9723, + "mutability": "mutable", + "name": "receiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9830, + "src": "1725:20:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9722, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1725:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9725, + "mutability": "mutable", + "name": "lpFeeQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9830, + "src": "1759:18:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1759:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9727, + "mutability": "mutable", + "name": "mtFeeQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9830, + "src": "1791:18:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9726, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1791:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9729, + "mutability": "mutable", + "name": "newRStatus", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9830, + "src": "1823:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "typeName": { + "contractScope": null, + "id": 9728, + "name": "Types.RStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11630, + "src": "1823:13:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9731, + "mutability": "mutable", + "name": "newQuoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9830, + "src": "1861:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1861:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9733, + "mutability": "mutable", + "name": "newBaseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9830, + "src": "1897:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1897:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9737, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9735, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "1951:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9734, + "name": "_querySellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10175, + "src": "1931:19:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "id": 9736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1931:27:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1711:247:28" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9739, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "1976:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 9740, + "name": "minReceiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9707, + "src": "1992:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1976:31:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "53454c4c5f424153455f524543454956455f4e4f545f454e4f554748", + "id": 9742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2009:30:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e2576acc4b00a6068878bb264a3736551706bb27baf7a460c6372cbcdfae4018", + "typeString": "literal_string \"SELL_BASE_RECEIVE_NOT_ENOUGH\"" + }, + "value": "SELL_BASE_RECEIVE_NOT_ENOUGH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e2576acc4b00a6068878bb264a3736551706bb27baf7a460c6372cbcdfae4018", + "typeString": "literal_string \"SELL_BASE_RECEIVE_NOT_ENOUGH\"" + } + ], + "id": 9738, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1968:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1968:72:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9744, + "nodeType": "ExpressionStatement", + "src": "1968:72:28" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9746, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2099:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2099:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9748, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "2111:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9745, + "name": "_quoteTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9013, + "src": "2076:22:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2076:48:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9750, + "nodeType": "ExpressionStatement", + "src": "2076:48:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9751, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9709, + "src": "2138:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 9752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2138:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9753, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2152:1:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2138:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9767, + "nodeType": "IfStatement", + "src": "2134:113:28", + "trueBody": { + "id": 9766, + "nodeType": "Block", + "src": "2155:92:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2202:5:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 9761, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "2209:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9762, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "2217:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9763, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9709, + "src": "2231:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9756, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2181:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2181:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 9755, + "name": "IDODOCallee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10506, + "src": "2169:11:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOCallee_$10506_$", + "typeString": "type(contract IDODOCallee)" + } + }, + "id": 9758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2169:23:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOCallee_$10506", + "typeString": "contract IDODOCallee" + } + }, + "id": 9759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "dodoCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 10505, + "src": "2169:32:28", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bool,uint256,uint256,bytes memory) external" + } + }, + "id": 9764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2169:67:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9765, + "nodeType": "ExpressionStatement", + "src": "2169:67:28" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9769, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2277:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2277:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9771, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "2289:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9768, + "name": "_baseTokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8930, + "src": "2256:20:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2256:40:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9773, + "nodeType": "ExpressionStatement", + "src": "2256:40:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9774, + "name": "mtFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9727, + "src": "2310:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2324:1:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2310:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9789, + "nodeType": "IfStatement", + "src": "2306:165:28", + "trueBody": { + "id": 9788, + "nodeType": "Block", + "src": "2327:144:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9778, + "name": "_MAINTAINER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9445, + "src": "2364:12:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9779, + "name": "mtFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9727, + "src": "2378:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9777, + "name": "_quoteTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9013, + "src": "2341:22:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2341:48:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9781, + "nodeType": "ExpressionStatement", + "src": "2341:48:28" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9783, + "name": "_MAINTAINER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9445, + "src": "2428:12:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2442:5:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "id": 9785, + "name": "mtFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9727, + "src": "2449:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9782, + "name": "ChargeMaintainerFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9664, + "src": "2408:19:28", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,bool,uint256)" + } + }, + "id": 9786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2408:52:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9787, + "nodeType": "EmitStatement", + "src": "2403:57:28" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9790, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "2510:27:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 9791, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9731, + "src": "2541:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2510:45:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9798, + "nodeType": "IfStatement", + "src": "2506:120:28", + "trueBody": { + "id": 9797, + "nodeType": "Block", + "src": "2557:69:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9793, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "2571:27:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9794, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9731, + "src": "2601:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2571:44:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9796, + "nodeType": "ExpressionStatement", + "src": "2571:44:28" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9799, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "2639:26:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 9800, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9733, + "src": "2669:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2639:43:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9807, + "nodeType": "IfStatement", + "src": "2635:116:28", + "trueBody": { + "id": 9806, + "nodeType": "Block", + "src": "2684:67:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9802, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "2698:26:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9803, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9733, + "src": "2727:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2698:42:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9805, + "nodeType": "ExpressionStatement", + "src": "2698:42:28" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 9810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9808, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "2764:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 9809, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9729, + "src": "2778:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "2764:24:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9816, + "nodeType": "IfStatement", + "src": "2760:78:28", + "trueBody": { + "id": 9815, + "nodeType": "Block", + "src": "2790:48:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9811, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "2804:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9812, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9729, + "src": "2817:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "2804:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 9814, + "nodeType": "ExpressionStatement", + "src": "2804:23:28" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9818, + "name": "lpFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9725, + "src": "2866:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9817, + "name": "_donateQuoteToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9049, + "src": "2848:17:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 9819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2848:29:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9820, + "nodeType": "ExpressionStatement", + "src": "2848:29:28" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9822, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2906:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2906:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9824, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "2918:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9825, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "2926:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9821, + "name": "SellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9648, + "src": "2892:13:28", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 9826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2892:47:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9827, + "nodeType": "EmitStatement", + "src": "2887:52:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 9828, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "2957:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9721, + "id": 9829, + "nodeType": "Return", + "src": "2950:19:28" + } + ] + }, + "documentation": null, + "functionSelector": "8dae7333", + "id": 9831, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9712, + "modifierName": { + "argumentTypes": null, + "id": 9711, + "name": "tradeAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9673, + "src": "1601:12:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1601:12:28" + }, + { + "arguments": null, + "id": 9714, + "modifierName": { + "argumentTypes": null, + "id": 9713, + "name": "sellingAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9691, + "src": "1614:14:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1614:14:28" + }, + { + "arguments": null, + "id": 9716, + "modifierName": { + "argumentTypes": null, + "id": 9715, + "name": "gasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9703, + "src": "1629:13:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1629:13:28" + }, + { + "arguments": null, + "id": 9718, + "modifierName": { + "argumentTypes": null, + "id": 9717, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "1643:16:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1643:16:28" + } + ], + "name": "sellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9705, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9831, + "src": "1509:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9704, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1509:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9707, + "mutability": "mutable", + "name": "minReceiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9831, + "src": "1533:23:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1533:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9709, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9831, + "src": "1566:19:28", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9708, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1566:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1499:92:28" + }, + "returnParameters": { + "id": 9721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9720, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9831, + "src": "1669:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9719, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1669:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1668:9:28" + }, + "scope": 10351, + "src": "1477:1499:28", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9958, + "nodeType": "Block", + "src": "3177:1252:28", + "statements": [ + { + "assignments": [ + 9851, + 9853, + 9855, + 9857, + 9859, + 9861 + ], + "declarations": [ + { + "constant": false, + "id": 9851, + "mutability": "mutable", + "name": "payQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9958, + "src": "3224:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3224:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9853, + "mutability": "mutable", + "name": "lpFeeBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9958, + "src": "3254:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9852, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3254:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9855, + "mutability": "mutable", + "name": "mtFeeBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9958, + "src": "3285:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3285:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9857, + "mutability": "mutable", + "name": "newRStatus", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9958, + "src": "3316:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "typeName": { + "contractScope": null, + "id": 9856, + "name": "Types.RStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11630, + "src": "3316:13:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9859, + "mutability": "mutable", + "name": "newQuoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9958, + "src": "3354:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3354:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9861, + "mutability": "mutable", + "name": "newBaseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9958, + "src": "3390:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9860, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3390:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9865, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9863, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9833, + "src": "3443:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9862, + "name": "_queryBuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10350, + "src": "3424:18:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "id": 9864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3424:26:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3210:240:28" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9867, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9851, + "src": "3468:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 9868, + "name": "maxPayQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9835, + "src": "3480:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3468:23:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4255595f424153455f434f53545f544f4f5f4d554348", + "id": 9870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3493:24:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f0ac5b3c32d4064b3751261129f0fefc22b7826ab110012bdbce29191898a75a", + "typeString": "literal_string \"BUY_BASE_COST_TOO_MUCH\"" + }, + "value": "BUY_BASE_COST_TOO_MUCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f0ac5b3c32d4064b3751261129f0fefc22b7826ab110012bdbce29191898a75a", + "typeString": "literal_string \"BUY_BASE_COST_TOO_MUCH\"" + } + ], + "id": 9866, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3460:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3460:58:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9872, + "nodeType": "ExpressionStatement", + "src": "3460:58:28" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9874, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3576:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3576:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9876, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9833, + "src": "3588:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9873, + "name": "_baseTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8990, + "src": "3554:21:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3554:41:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9878, + "nodeType": "ExpressionStatement", + "src": "3554:41:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9879, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9837, + "src": "3609:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 9880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3609:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3623:1:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3609:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9895, + "nodeType": "IfStatement", + "src": "3605:108:28", + "trueBody": { + "id": 9894, + "nodeType": "Block", + "src": "3626:87:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3673:4:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 9889, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9833, + "src": "3679:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9890, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9851, + "src": "3687:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9891, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9837, + "src": "3697:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9884, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3652:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3652:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 9883, + "name": "IDODOCallee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10506, + "src": "3640:11:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODOCallee_$10506_$", + "typeString": "type(contract IDODOCallee)" + } + }, + "id": 9886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3640:23:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODOCallee_$10506", + "typeString": "contract IDODOCallee" + } + }, + "id": 9887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "dodoCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 10505, + "src": "3640:32:28", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bool_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (bool,uint256,uint256,bytes memory) external" + } + }, + "id": 9892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3640:62:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9893, + "nodeType": "ExpressionStatement", + "src": "3640:62:28" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9897, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3744:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3744:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9899, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9851, + "src": "3756:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9896, + "name": "_quoteTokenTransferIn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8967, + "src": "3722:21:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3722:43:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9901, + "nodeType": "ExpressionStatement", + "src": "3722:43:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9902, + "name": "mtFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9855, + "src": "3779:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3792:1:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3779:14:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9917, + "nodeType": "IfStatement", + "src": "3775:160:28", + "trueBody": { + "id": 9916, + "nodeType": "Block", + "src": "3795:140:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9906, + "name": "_MAINTAINER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9445, + "src": "3831:12:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9907, + "name": "mtFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9855, + "src": "3845:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9905, + "name": "_baseTokenTransferOut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8990, + "src": "3809:21:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3809:46:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9909, + "nodeType": "ExpressionStatement", + "src": "3809:46:28" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9911, + "name": "_MAINTAINER_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9445, + "src": "3894:12:28", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3908:4:28", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "id": 9913, + "name": "mtFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9855, + "src": "3914:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9910, + "name": "ChargeMaintainerFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9664, + "src": "3874:19:28", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bool_$_t_uint256_$returns$__$", + "typeString": "function (address,bool,uint256)" + } + }, + "id": 9914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3874:50:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9915, + "nodeType": "EmitStatement", + "src": "3869:55:28" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9918, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "3974:27:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 9919, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9859, + "src": "4005:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3974:45:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9926, + "nodeType": "IfStatement", + "src": "3970:120:28", + "trueBody": { + "id": 9925, + "nodeType": "Block", + "src": "4021:69:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9921, + "name": "_TARGET_QUOTE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9463, + "src": "4035:27:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9922, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9859, + "src": "4065:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4035:44:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9924, + "nodeType": "ExpressionStatement", + "src": "4035:44:28" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9927, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "4103:26:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 9928, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9861, + "src": "4133:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4103:43:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9935, + "nodeType": "IfStatement", + "src": "4099:116:28", + "trueBody": { + "id": 9934, + "nodeType": "Block", + "src": "4148:67:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9930, + "name": "_TARGET_BASE_TOKEN_AMOUNT_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9461, + "src": "4162:26:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9931, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9861, + "src": "4191:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4162:42:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9933, + "nodeType": "ExpressionStatement", + "src": "4162:42:28" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 9938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9936, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "4228:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 9937, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9857, + "src": "4242:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "4228:24:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9944, + "nodeType": "IfStatement", + "src": "4224:78:28", + "trueBody": { + "id": 9943, + "nodeType": "Block", + "src": "4254:48:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9939, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "4268:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9940, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9857, + "src": "4281:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "4268:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 9942, + "nodeType": "ExpressionStatement", + "src": "4268:23:28" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9946, + "name": "lpFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9853, + "src": "4329:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9945, + "name": "_donateBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9031, + "src": "4312:16:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 9947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4312:27:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9948, + "nodeType": "ExpressionStatement", + "src": "4312:27:28" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9950, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4367:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4367:10:28", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9952, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9833, + "src": "4379:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9953, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9851, + "src": "4387:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9949, + "name": "BuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9656, + "src": "4354:12:28", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 9954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4354:42:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9955, + "nodeType": "EmitStatement", + "src": "4349:47:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 9956, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9851, + "src": "4414:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9849, + "id": 9957, + "nodeType": "Return", + "src": "4407:15:28" + } + ] + }, + "documentation": null, + "functionSelector": "e67ce706", + "id": 9959, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 9840, + "modifierName": { + "argumentTypes": null, + "id": 9839, + "name": "tradeAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9673, + "src": "3101:12:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3101:12:28" + }, + { + "arguments": null, + "id": 9842, + "modifierName": { + "argumentTypes": null, + "id": 9841, + "name": "buyingAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9682, + "src": "3114:13:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3114:13:28" + }, + { + "arguments": null, + "id": 9844, + "modifierName": { + "argumentTypes": null, + "id": 9843, + "name": "gasPriceLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9703, + "src": "3128:13:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3128:13:28" + }, + { + "arguments": null, + "id": 9846, + "modifierName": { + "argumentTypes": null, + "id": 9845, + "name": "preventReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11295, + "src": "3142:16:28", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3142:16:28" + } + ], + "name": "buyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9833, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9959, + "src": "3013:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3013:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9835, + "mutability": "mutable", + "name": "maxPayQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9959, + "src": "3037:19:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3037:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9837, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9959, + "src": "3066:19:28", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9836, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3066:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3003:88:28" + }, + "returnParameters": { + "id": 9849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9848, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9959, + "src": "3168:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9847, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3168:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3167:9:28" + }, + "scope": 10351, + "src": "2982:1447:28", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9975, + "nodeType": "Block", + "src": "4574:100:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 9966, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9964, + "src": "4585:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + null, + null, + null, + null, + null + ], + "id": 9967, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "4584:24:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$__$__$__$__$__$", + "typeString": "tuple(uint256,,,,,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9969, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9961, + "src": "4631:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9968, + "name": "_querySellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10175, + "src": "4611:19:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "id": 9970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4611:27:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "src": "4584:54:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9972, + "nodeType": "ExpressionStatement", + "src": "4584:54:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 9973, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9964, + "src": "4655:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9965, + "id": 9974, + "nodeType": "Return", + "src": "4648:19:28" + } + ] + }, + "documentation": null, + "functionSelector": "a2801e16", + "id": 9976, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "querySellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9962, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9961, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9976, + "src": "4513:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4513:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4512:16:28" + }, + "returnParameters": { + "id": 9965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9964, + "mutability": "mutable", + "name": "receiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9976, + "src": "4552:20:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4552:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4551:22:28" + }, + "scope": 10351, + "src": "4485:189:28", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 9992, + "nodeType": "Block", + "src": "4764:91:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 9983, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9981, + "src": "4775:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + null, + null, + null, + null, + null + ], + "id": 9984, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "4774:20:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$__$__$__$__$__$", + "typeString": "tuple(uint256,,,,,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9986, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9978, + "src": "4816:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9985, + "name": "_queryBuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10350, + "src": "4797:18:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "id": 9987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4797:26:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "src": "4774:49:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9989, + "nodeType": "ExpressionStatement", + "src": "4774:49:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 9990, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9981, + "src": "4840:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9982, + "id": 9991, + "nodeType": "Return", + "src": "4833:15:28" + } + ] + }, + "documentation": null, + "functionSelector": "18c0bbe4", + "id": 9993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "queryBuyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9979, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9978, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9993, + "src": "4707:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9977, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4707:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4706:16:28" + }, + "returnParameters": { + "id": 9982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9981, + "mutability": "mutable", + "name": "payQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 9993, + "src": "4746:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4746:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4745:18:28" + }, + "scope": 10351, + "src": "4680:175:28", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 10174, + "nodeType": "Block", + "src": "5174:2431:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 10010, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10008, + "src": "5185:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10011, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10006, + "src": "5200:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10012, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "5184:31:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10013, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "5218:17:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 10014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5218:19:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "5184:53:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10016, + "nodeType": "ExpressionStatement", + "src": "5184:53:28" + }, + { + "assignments": [ + 10018 + ], + "declarations": [ + { + "constant": false, + "id": 10018, + "mutability": "mutable", + "name": "sellBaseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10174, + "src": "5248:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5248:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10020, + "initialValue": { + "argumentTypes": null, + "id": 10019, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9995, + "src": "5273:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5248:31:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 10025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10021, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "5294:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10022, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5308:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5308:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5308:17:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "5294:31:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10040, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "5537:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10041, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5551:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5551:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5551:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "5537:37:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10137, + "nodeType": "Block", + "src": "7035:239:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10123, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "7129:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10125, + "name": "sellBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10018, + "src": "7165:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10126, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "7181:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10127, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10006, + "src": "7198:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10124, + "name": "_RBelowSellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8494, + "src": "7144:20:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 10128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7144:69:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7129:84:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10130, + "nodeType": "ExpressionStatement", + "src": "7129:84:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10131, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10004, + "src": "7227:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10132, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "7240:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "7240:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7240:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "7227:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10136, + "nodeType": "ExpressionStatement", + "src": "7227:36:28" + } + ] + }, + "id": 10138, + "nodeType": "IfStatement", + "src": "5533:1741:28", + "trueBody": { + "id": 10122, + "nodeType": "Block", + "src": "5576:1453:28", + "statements": [ + { + "assignments": [ + 10046 + ], + "declarations": [ + { + "constant": false, + "id": 10046, + "mutability": "mutable", + "name": "backToOnePayBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10122, + "src": "5590:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10045, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5590:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10051, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10049, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "5635:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10047, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10008, + "src": "5617:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5617:17:28", + "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": 10050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5617:33:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5590:60:28" + }, + { + "assignments": [ + 10053 + ], + "declarations": [ + { + "constant": false, + "id": 10053, + "mutability": "mutable", + "name": "backToOneReceiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10122, + "src": "5664:29:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5664:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10058, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10056, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10006, + "src": "5716:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10054, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "5696:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5696:19:28", + "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": 10057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5696:35:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5664:67:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10059, + "name": "sellBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10018, + "src": "5840:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 10060, + "name": "backToOnePayBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10046, + "src": "5857:16:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5840:33:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10086, + "name": "sellBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10018, + "src": "6509:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 10087, + "name": "backToOnePayBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10046, + "src": "6527:16:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6509:34:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10119, + "nodeType": "Block", + "src": "6721:298:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10100, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "6798:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10106, + "name": "backToOnePayBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10046, + "src": "6898:16:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10104, + "name": "sellBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10018, + "src": "6879:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "6879:18:28", + "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": 10107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6879:36:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10108, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10006, + "src": "6917:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10103, + "name": "_ROneSellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8423, + "src": "6860:18:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 10109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6860:72:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10101, + "name": "backToOneReceiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "6813:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "6813:25:28", + "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": 10110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6813:137:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6798:152:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10112, + "nodeType": "ExpressionStatement", + "src": "6798:152:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10113, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10004, + "src": "6968:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10114, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "6981:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "6981:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6981:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "6968:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10118, + "nodeType": "ExpressionStatement", + "src": "6968:36:28" + } + ] + }, + "id": 10120, + "nodeType": "IfStatement", + "src": "6505:514:28", + "trueBody": { + "id": 10099, + "nodeType": "Block", + "src": "6545:170:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10089, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "6616:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10090, + "name": "backToOneReceiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "6631:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6616:36:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10092, + "nodeType": "ExpressionStatement", + "src": "6616:36:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10093, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10004, + "src": "6670:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10094, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "6683:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "6683:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10096, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6683:17:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "6670:30:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10098, + "nodeType": "ExpressionStatement", + "src": "6670:30:28" + } + ] + } + }, + "id": 10121, + "nodeType": "IfStatement", + "src": "5836:1183:28", + "trueBody": { + "id": 10085, + "nodeType": "Block", + "src": "5875:624:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10062, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "5945:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10064, + "name": "sellBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10018, + "src": "5981:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10065, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "5997:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10066, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10008, + "src": "6013:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10063, + "name": "_RAboveSellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8628, + "src": "5960:20:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 10067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5960:67:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5945:82:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10069, + "nodeType": "ExpressionStatement", + "src": "5945:82:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10070, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10004, + "src": "6045:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10071, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "6058:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "6058:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6058:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "6045:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10075, + "nodeType": "ExpressionStatement", + "src": "6045:36:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10076, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "6103:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 10077, + "name": "backToOneReceiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "6118:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6103:36:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10084, + "nodeType": "IfStatement", + "src": "6099:386:28", + "trueBody": { + "id": 10083, + "nodeType": "Block", + "src": "6141:344:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10079, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "6430:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10080, + "name": "backToOneReceiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "6445:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6430:36:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10082, + "nodeType": "ExpressionStatement", + "src": "6430:36:28" + } + ] + } + } + ] + } + } + ] + } + }, + "id": 10139, + "nodeType": "IfStatement", + "src": "5290:1984:28", + "trueBody": { + "id": 10039, + "nodeType": "Block", + "src": "5327:200:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10026, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "5401:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10028, + "name": "sellBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10018, + "src": "5435:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10029, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10006, + "src": "5451:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10027, + "name": "_ROneSellBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8423, + "src": "5416:18:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 10030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5416:50:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5401:65:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10032, + "nodeType": "ExpressionStatement", + "src": "5401:65:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10033, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10004, + "src": "5480:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10034, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "5493:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "5493:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5493:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "5480:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10038, + "nodeType": "ExpressionStatement", + "src": "5480:36:28" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 10146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10140, + "name": "lpFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10000, + "src": "7306:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10143, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "7335:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10144, + "name": "_LP_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "7349:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10141, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "7319:11:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "7319:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7319:44:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7306:57:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10147, + "nodeType": "ExpressionStatement", + "src": "7306:57:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10148, + "name": "mtFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10002, + "src": "7373:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10151, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "7402:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10152, + "name": "_MT_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "7416:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10149, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "7386:11:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "7386:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7386:44:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7373:57:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10155, + "nodeType": "ExpressionStatement", + "src": "7373:57:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10156, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "7440:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10162, + "name": "mtFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10002, + "src": "7488:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10159, + "name": "lpFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10000, + "src": "7472:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10157, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "7455:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "7455:16:28", + "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": 10160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7455:28:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "7455:32:28", + "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": 10163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7455:44:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7440:59:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10165, + "nodeType": "ExpressionStatement", + "src": "7440:59:28" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 10166, + "name": "receiveQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9998, + "src": "7518:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10167, + "name": "lpFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10000, + "src": "7532:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10168, + "name": "mtFeeQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10002, + "src": "7544:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10169, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10004, + "src": "7556:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + { + "argumentTypes": null, + "id": 10170, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10006, + "src": "7568:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10171, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10008, + "src": "7584:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10172, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7517:81:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "functionReturnParameters": 10009, + "id": 10173, + "nodeType": "Return", + "src": "7510:88:28" + } + ] + }, + "documentation": null, + "id": 10175, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_querySellBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 9996, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9995, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "4890:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4890:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4889:16:28" + }, + "returnParameters": { + "id": 10009, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9998, + "mutability": "mutable", + "name": "receiveQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "4966:20:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9997, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4966:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10000, + "mutability": "mutable", + "name": "lpFeeQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "5000:18:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5000:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10002, + "mutability": "mutable", + "name": "mtFeeQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "5032:18:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5032:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10004, + "mutability": "mutable", + "name": "newRStatus", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "5064:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "typeName": { + "contractScope": null, + "id": 10003, + "name": "Types.RStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11630, + "src": "5064:13:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10006, + "mutability": "mutable", + "name": "newQuoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "5102:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5102:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10008, + "mutability": "mutable", + "name": "newBaseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10175, + "src": "5138:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10007, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5138:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4952:217:28" + }, + "scope": 10351, + "src": "4861:2744:28", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10349, + "nodeType": "Block", + "src": "7917:2002:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 10192, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10190, + "src": "7928:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10193, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10188, + "src": "7943:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10194, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "7927:31:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10195, + "name": "getExpectedTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8733, + "src": "7961:17:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$", + "typeString": "function () view returns (uint256,uint256)" + } + }, + "id": 10196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7961:19:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "7927:53:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10198, + "nodeType": "ExpressionStatement", + "src": "7927:53:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10199, + "name": "lpFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10182, + "src": "8038:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10202, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10177, + "src": "8066:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10203, + "name": "_LP_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "8074:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10200, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "8050:11:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "8050:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8050:38:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8038:50:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10206, + "nodeType": "ExpressionStatement", + "src": "8038:50:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10207, + "name": "mtFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10184, + "src": "8098:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10210, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10177, + "src": "8126:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10211, + "name": "_MT_FEE_RATE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "8134:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10208, + "name": "DecimalMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11078, + "src": "8110:11:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DecimalMath_$11078_$", + "typeString": "type(library DecimalMath)" + } + }, + "id": 10209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11023, + "src": "8110:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 10212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8110:38:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8098:50:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10214, + "nodeType": "ExpressionStatement", + "src": "8098:50:28" + }, + { + "assignments": [ + 10216 + ], + "declarations": [ + { + "constant": false, + "id": 10216, + "mutability": "mutable", + "name": "buyBaseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10349, + "src": "8158:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10215, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8158:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10224, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10222, + "name": "mtFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10184, + "src": "8208:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10219, + "name": "lpFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10182, + "src": "8193:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10217, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10177, + "src": "8182:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "8182:10:28", + "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": 10220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8182:21:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "8182:25:28", + "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": 10223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8182:36:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8158:60:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 10229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10225, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "8233:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10226, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "8247:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "8247:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8247:17:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "8233:31:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 10248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10244, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "8436:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10245, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "8450:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "8450:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8450:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "8436:37:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "id": 10268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10264, + "name": "_R_STATUS_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9459, + "src": "8663:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10265, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "8677:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "8677:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8677:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "8663:37:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10338, + "nodeType": "IfStatement", + "src": "8659:1161:28", + "trueBody": { + "id": 10337, + "nodeType": "Block", + "src": "8702:1118:28", + "statements": [ + { + "assignments": [ + 10270 + ], + "declarations": [ + { + "constant": false, + "id": 10270, + "mutability": "mutable", + "name": "backToOnePayQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10337, + "src": "8716:25:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8716:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10275, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10273, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "8763:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10271, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10188, + "src": "8744:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "8744:18:28", + "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": 10274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8744:35:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8716:63:28" + }, + { + "assignments": [ + 10277 + ], + "declarations": [ + { + "constant": false, + "id": 10277, + "mutability": "mutable", + "name": "backToOneReceiveBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10337, + "src": "8793:28:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10276, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8793:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10282, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10280, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10190, + "src": "8843:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10278, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "8824:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "8824:18:28", + "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": 10281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8824:33:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8793:64:28" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10283, + "name": "buyBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10216, + "src": "8951:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 10284, + "name": "backToOneReceiveBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10277, + "src": "8967:20:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8951:36:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10301, + "name": "buyBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10216, + "src": "9312:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 10302, + "name": "backToOneReceiveBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10277, + "src": "9329:20:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9312:37:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 10334, + "nodeType": "Block", + "src": "9519:291:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10315, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10180, + "src": "9596:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10321, + "name": "backToOneReceiveBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10277, + "src": "9686:20:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10319, + "name": "buyBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10216, + "src": "9668:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "9668:17:28", + "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": 10322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9668:39:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10323, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10190, + "src": "9709:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10318, + "name": "_ROneBuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8457, + "src": "9650:17:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 10324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9650:73:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10316, + "name": "backToOnePayQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10270, + "src": "9607:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "9607:21:28", + "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": 10325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9607:134:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9596:145:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10327, + "nodeType": "ExpressionStatement", + "src": "9596:145:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10328, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10186, + "src": "9759:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10329, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "9772:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "9772:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9772:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "9759:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10333, + "nodeType": "ExpressionStatement", + "src": "9759:36:28" + } + ] + }, + "id": 10335, + "nodeType": "IfStatement", + "src": "9308:502:28", + "trueBody": { + "id": 10314, + "nodeType": "Block", + "src": "9351:162:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10304, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10180, + "src": "9422:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10305, + "name": "backToOnePayQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10270, + "src": "9433:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9422:28:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10307, + "nodeType": "ExpressionStatement", + "src": "9422:28:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10308, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10186, + "src": "9468:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10309, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "9481:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "9481:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9481:17:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "9468:30:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10313, + "nodeType": "ExpressionStatement", + "src": "9468:30:28" + } + ] + } + }, + "id": 10336, + "nodeType": "IfStatement", + "src": "8947:863:28", + "trueBody": { + "id": 10300, + "nodeType": "Block", + "src": "8989:313:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10286, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10180, + "src": "9155:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10288, + "name": "buyBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10216, + "src": "9186:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10289, + "name": "_QUOTE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9467, + "src": "9201:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10290, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10188, + "src": "9218:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10287, + "name": "_RBelowBuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8531, + "src": "9166:19:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 10291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9166:67:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9155:78:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10293, + "nodeType": "ExpressionStatement", + "src": "9155:78:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10294, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10186, + "src": "9251:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10295, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "9264:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "9264:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BELOW_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9264:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "9251:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10299, + "nodeType": "ExpressionStatement", + "src": "9251:36:28" + } + ] + } + } + ] + } + }, + "id": 10339, + "nodeType": "IfStatement", + "src": "8432:1388:28", + "trueBody": { + "id": 10263, + "nodeType": "Block", + "src": "8475:178:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10249, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10180, + "src": "8516:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10251, + "name": "buyBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10216, + "src": "8547:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10252, + "name": "_BASE_BALANCE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9465, + "src": "8562:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10253, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10190, + "src": "8578:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10250, + "name": "_RAboveBuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8603, + "src": "8527:19:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 10254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8527:65:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8516:76:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10256, + "nodeType": "ExpressionStatement", + "src": "8516:76:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10257, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10186, + "src": "8606:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10258, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "8619:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "8619:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8619:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "8606:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10262, + "nodeType": "ExpressionStatement", + "src": "8606:36:28" + } + ] + } + }, + "id": 10340, + "nodeType": "IfStatement", + "src": "8229:1591:28", + "trueBody": { + "id": 10243, + "nodeType": "Block", + "src": "8266:160:28", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10230, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10180, + "src": "8307:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10232, + "name": "buyBaseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10216, + "src": "8336:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10233, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10190, + "src": "8351:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10231, + "name": "_ROneBuyBaseToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8457, + "src": "8318:17:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 10234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8318:47:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8307:58:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10236, + "nodeType": "ExpressionStatement", + "src": "8307:58:28" + }, + { + "expression": { + "argumentTypes": null, + "id": 10241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10237, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10186, + "src": "8379:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10238, + "name": "Types", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11631, + "src": "8392:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Types_$11631_$", + "typeString": "type(library Types)" + } + }, + "id": 10239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "RStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 11630, + "src": "8392:13:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RStatus_$11630_$", + "typeString": "type(enum Types.RStatus)" + } + }, + "id": 10240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ABOVE_ONE", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8392:23:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "src": "8379:36:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "id": 10242, + "nodeType": "ExpressionStatement", + "src": "8379:36:28" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 10341, + "name": "payQuote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10180, + "src": "9838:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10342, + "name": "lpFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10182, + "src": "9848:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10343, + "name": "mtFeeBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10184, + "src": "9859:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10344, + "name": "newRStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10186, + "src": "9870:10:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + { + "argumentTypes": null, + "id": 10345, + "name": "newQuoteTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10188, + "src": "9882:14:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 10346, + "name": "newBaseTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10190, + "src": "9898:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10347, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9837:75:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_enum$_RStatus_$11630_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256,enum Types.RStatus,uint256,uint256)" + } + }, + "functionReturnParameters": 10191, + "id": 10348, + "nodeType": "Return", + "src": "9830:82:28" + } + ] + }, + "documentation": null, + "id": 10350, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_queryBuyBaseToken", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 10178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10177, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7639:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7639:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7638:16:28" + }, + "returnParameters": { + "id": 10191, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10180, + "mutability": "mutable", + "name": "payQuote", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7715:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10179, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7715:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10182, + "mutability": "mutable", + "name": "lpFeeBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7745:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7745:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10184, + "mutability": "mutable", + "name": "mtFeeBase", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7776:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7776:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10186, + "mutability": "mutable", + "name": "newRStatus", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7807:24:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + }, + "typeName": { + "contractScope": null, + "id": 10185, + "name": "Types.RStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11630, + "src": "7807:13:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RStatus_$11630", + "typeString": "enum Types.RStatus" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10188, + "mutability": "mutable", + "name": "newQuoteTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7845:22:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10187, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7845:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10190, + "mutability": "mutable", + "name": "newBaseTarget", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 10350, + "src": "7881:21:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10189, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7881:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7701:211:28" + }, + "scope": 10351, + "src": "7611:2308:28", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 10352, + "src": "547:9374:28" + } + ], + "src": "78:9844:28" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.705Z", + "devdoc": { + "author": "DODO Breeder", + "methods": {}, + "title": "Trader" + }, + "userdoc": { + "methods": {}, + "notice": "Functions for trader operations" + } +} \ No newline at end of file diff --git a/build-v1/contracts/Types.json b/build-v1/contracts/Types.json new file mode 100644 index 0000000..71e7555 --- /dev/null +++ b/build-v1/contracts/Types.json @@ -0,0 +1,181 @@ +{ + "contractName": "Types", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol\":\"Types\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol\":{\"keccak256\":\"0x0aebcc897b4de833e87e46a11e5a70d2b6e1d2fd99ebdf9e32e6421924f18b15\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a1098dace4f0664b0e3f5c3b6ce535ad2aba52e68fb6d1ea94b09debc06ed33c\",\"dweb:/ipfs/QmRbiq7M3Y8utAXaPWmVooGmoYF27N5dKVn6QYTaDFwqdP\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a71f81235df80e66b7c695f71deaa53b9a7cc588efc7c5b3bed7e3ab5f96472564736f6c63430006090033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a71f81235df80e66b7c695f71deaa53b9a7cc588efc7c5b3bed7e3ab5f96472564736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "136:62:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "136:62:42:-:0;;;;;;;;", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nlibrary Types {\n enum RStatus {ONE, ABOVE_ONE, BELOW_ONE}\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "exportedSymbols": { + "Types": [ + 11631 + ] + }, + "id": 11632, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11625, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:42" + }, + { + "id": 11626, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:42" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 11631, + "linearizedBaseContracts": [ + 11631 + ], + "name": "Types", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Types.RStatus", + "id": 11630, + "members": [ + { + "id": 11627, + "name": "ONE", + "nodeType": "EnumValue", + "src": "170:3:42" + }, + { + "id": 11628, + "name": "ABOVE_ONE", + "nodeType": "EnumValue", + "src": "175:9:42" + }, + { + "id": 11629, + "name": "BELOW_ONE", + "nodeType": "EnumValue", + "src": "186:9:42" + } + ], + "name": "RStatus", + "nodeType": "EnumDefinition", + "src": "156:40:42" + } + ], + "scope": 11632, + "src": "136:62:42" + } + ], + "src": "78:121:42" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Types.sol", + "exportedSymbols": { + "Types": [ + 11631 + ] + }, + "id": 11632, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 11625, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:42" + }, + { + "id": 11626, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:42" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 11631, + "linearizedBaseContracts": [ + 11631 + ], + "name": "Types", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Types.RStatus", + "id": 11630, + "members": [ + { + "id": 11627, + "name": "ONE", + "nodeType": "EnumValue", + "src": "170:3:42" + }, + { + "id": 11628, + "name": "ABOVE_ONE", + "nodeType": "EnumValue", + "src": "175:9:42" + }, + { + "id": 11629, + "name": "BELOW_ONE", + "nodeType": "EnumValue", + "src": "186:9:42" + } + ], + "name": "RStatus", + "nodeType": "EnumDefinition", + "src": "156:40:42" + } + ], + "scope": 11632, + "src": "136:62:42" + } + ], + "src": "78:121:42" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.725Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/UQ112x112.json b/build-v1/contracts/UQ112x112.json new file mode 100644 index 0000000..b73cf13 --- /dev/null +++ b/build-v1/contracts/UQ112x112.json @@ -0,0 +1,59141 @@ +{ + "contractName": "UQ112x112", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":\"UQ112x112\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":{\"keccak256\":\"0x13276cbc5f35abd8a8599841059a1b618e394bab470fb40ae1bf382f32603043\",\"urls\":[\"bzz-raw://3c7be65f25ff007e1ad9fab37105253b91b300e289153c4e6848e5bacaf7b9d3\",\"dweb:/ipfs/QmSEaJzNeFQRGX1JPsU7aNsjcZ9zFB7snRi5Fzosysk4kG\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220106c21fa9581850cf7a00547d5441c88396d5baa15822fa4f0c3b83257530af064736f6c63430006090033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220106c21fa9581850cf7a00547d5441c88396d5baa15822fa4f0c3b83257530af064736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "8895:394:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "8895:394:21:-:0;;;;;;;;", + "source": "/**\n *Submitted for verification at Etherscan.io on 2020-05-05\n */\n\n// File: contracts/interfaces/IUniswapV2Pair.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Pair {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n function MINIMUM_LIQUIDITY() external pure returns (uint256);\n\n function factory() external view returns (address);\n\n function token0() external view returns (address);\n\n function token1() external view returns (address);\n\n function getReserves()\n external\n view\n returns (\n uint112 reserve0,\n uint112 reserve1,\n uint32 blockTimestampLast\n );\n\n function price0CumulativeLast() external view returns (uint256);\n\n function price1CumulativeLast() external view returns (uint256);\n\n function kLast() external view returns (uint256);\n\n function mint(address to) external returns (uint256 liquidity);\n\n function burn(address to) external returns (uint256 amount0, uint256 amount1);\n\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external;\n\n function skim(address to) external;\n\n function sync() external;\n\n function initialize(address, address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2ERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2ERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n}\n\n// File: contracts/libraries/SafeMath.sol\n\npragma solidity 0.6.9;\n\n// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)\n\nlibrary SafeMath {\n function add(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x + y) >= x, \"ds-math-add-overflow\");\n }\n\n function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x - y) <= x, \"ds-math-sub-underflow\");\n }\n\n function mul(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require(y == 0 || (z = x * y) / y == x, \"ds-math-mul-overflow\");\n }\n}\n\n// File: contracts/UniswapV2ERC20.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2ERC20 {\n using SafeMath for uint256;\n\n string public constant name = \"Uniswap V2\";\n string public constant symbol = \"UNI-V2\";\n uint8 public constant decimals = 18;\n uint256 public totalSupply;\n mapping(address => uint256) public balanceOf;\n mapping(address => mapping(address => uint256)) public allowance;\n\n bytes32 public DOMAIN_SEPARATOR;\n // keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\");\n bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\n mapping(address => uint256) public nonces;\n\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function _mint(address to, uint256 value) internal {\n totalSupply = totalSupply.add(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(address(0), to, value);\n }\n\n function _burn(address from, uint256 value) internal {\n balanceOf[from] = balanceOf[from].sub(value);\n totalSupply = totalSupply.sub(value);\n emit Transfer(from, address(0), value);\n }\n\n function _approve(\n address owner,\n address spender,\n uint256 value\n ) private {\n allowance[owner][spender] = value;\n emit Approval(owner, spender, value);\n }\n\n function _transfer(\n address from,\n address to,\n uint256 value\n ) private {\n balanceOf[from] = balanceOf[from].sub(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(from, to, value);\n }\n\n function approve(address spender, uint256 value) external returns (bool) {\n _approve(msg.sender, spender, value);\n return true;\n }\n\n function transfer(address to, uint256 value) external returns (bool) {\n _transfer(msg.sender, to, value);\n return true;\n }\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool) {\n if (allowance[from][msg.sender] != uint256(-1)) {\n allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);\n }\n _transfer(from, to, value);\n return true;\n }\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external {\n require(deadline >= block.timestamp, \"UniswapV2: EXPIRED\");\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n DOMAIN_SEPARATOR,\n keccak256(\n abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)\n )\n )\n );\n address recoveredAddress = ecrecover(digest, v, r, s);\n require(\n recoveredAddress != address(0) && recoveredAddress == owner,\n \"UniswapV2: INVALID_SIGNATURE\"\n );\n _approve(owner, spender, value);\n }\n}\n\n// File: contracts/libraries/Math.sol\n\npragma solidity 0.6.9;\n\n// a library for performing various math operations\n\nlibrary Math {\n function min(uint256 x, uint256 y) internal pure returns (uint256 z) {\n z = x < y ? x : y;\n }\n\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\n function sqrt(uint256 y) internal pure returns (uint256 z) {\n if (y > 3) {\n z = y;\n uint256 x = y / 2 + 1;\n while (x < z) {\n z = x;\n x = (y / x + x) / 2;\n }\n } else if (y != 0) {\n z = 1;\n }\n }\n}\n\n// File: contracts/libraries/UQ112x112.sol\n\npragma solidity 0.6.9;\n\n// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))\n\n// range: [0, 2**112 - 1]\n// resolution: 1 / 2**112\n\nlibrary UQ112x112 {\n uint224 constant Q112 = 2**112;\n\n // encode a uint112 as a UQ112x112\n function encode(uint112 y) internal pure returns (uint224 z) {\n z = uint224(y) * Q112; // never overflows\n }\n\n // divide a UQ112x112 by a uint112, returning a UQ112x112\n function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\n z = x / uint224(y);\n }\n}\n\n// File: contracts/interfaces/IERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external view returns (string memory);\n\n function symbol() external view returns (string memory);\n\n function decimals() external view returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n}\n\n// File: contracts/interfaces/IUniswapV2Factory.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Factory {\n event PairCreated(address indexed token0, address indexed token1, address pair, uint256);\n\n function feeTo() external view returns (address);\n\n function feeToSetter() external view returns (address);\n\n function getPair(address tokenA, address tokenB) external view returns (address pair);\n\n function allPairs(uint256) external view returns (address pair);\n\n function allPairsLength() external view returns (uint256);\n\n function createPair(address tokenA, address tokenB) external returns (address pair);\n\n function setFeeTo(address) external;\n\n function setFeeToSetter(address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2Callee.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Callee {\n function uniswapV2Call(\n address sender,\n uint256 amount0,\n uint256 amount1,\n bytes calldata data\n ) external;\n}\n\n// File: contracts/UniswapV2Pair.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2Pair is UniswapV2ERC20 {\n using SafeMath for uint256;\n using UQ112x112 for uint224;\n\n uint256 public constant MINIMUM_LIQUIDITY = 10**3;\n bytes4 private constant SELECTOR = bytes4(keccak256(bytes(\"transfer(address,uint256)\")));\n\n address public factory;\n address public token0;\n address public token1;\n\n uint112 private reserve0; // uses single storage slot, accessible via getReserves\n uint112 private reserve1; // uses single storage slot, accessible via getReserves\n uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\n\n uint256 public price0CumulativeLast;\n uint256 public price1CumulativeLast;\n uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\n\n uint256 private unlocked = 1;\n modifier lock() {\n require(unlocked == 1, \"UniswapV2: LOCKED\");\n unlocked = 0;\n _;\n unlocked = 1;\n }\n\n function getReserves()\n public\n view\n returns (\n uint112 _reserve0,\n uint112 _reserve1,\n uint32 _blockTimestampLast\n )\n {\n _reserve0 = reserve0;\n _reserve1 = reserve1;\n _blockTimestampLast = blockTimestampLast;\n }\n\n function _safeTransfer(\n address token,\n address to,\n uint256 value\n ) private {\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n \"UniswapV2: TRANSFER_FAILED\"\n );\n }\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n constructor() public {\n factory = msg.sender;\n }\n\n // called once by the factory at time of deployment\n function initialize(address _token0, address _token1) external {\n require(msg.sender == factory, \"UniswapV2: FORBIDDEN\"); // sufficient check\n token0 = _token0;\n token1 = _token1;\n }\n\n // update reserves and, on the first call per block, price accumulators\n function _update(\n uint256 balance0,\n uint256 balance1,\n uint112 _reserve0,\n uint112 _reserve1\n ) private {\n require(balance0 <= uint112(-1) && balance1 <= uint112(-1), \"UniswapV2: OVERFLOW\");\n uint32 blockTimestamp = uint32(block.timestamp % 2**32);\n uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\n if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {\n // * never overflows, and + overflow is desired\n price0CumulativeLast +=\n uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) *\n timeElapsed;\n price1CumulativeLast +=\n uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) *\n timeElapsed;\n }\n reserve0 = uint112(balance0);\n reserve1 = uint112(balance1);\n blockTimestampLast = blockTimestamp;\n emit Sync(reserve0, reserve1);\n }\n\n // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)\n function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {\n address feeTo = IUniswapV2Factory(factory).feeTo();\n feeOn = feeTo != address(0);\n uint256 _kLast = kLast; // gas savings\n if (feeOn) {\n if (_kLast != 0) {\n uint256 rootK = Math.sqrt(uint256(_reserve0).mul(_reserve1));\n uint256 rootKLast = Math.sqrt(_kLast);\n if (rootK > rootKLast) {\n uint256 numerator = totalSupply.mul(rootK.sub(rootKLast));\n uint256 denominator = rootK.mul(5).add(rootKLast);\n uint256 liquidity = numerator / denominator;\n if (liquidity > 0) _mint(feeTo, liquidity);\n }\n }\n } else if (_kLast != 0) {\n kLast = 0;\n }\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function mint(address to) external lock returns (uint256 liquidity) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n uint256 balance0 = IERC20(token0).balanceOf(address(this));\n uint256 balance1 = IERC20(token1).balanceOf(address(this));\n uint256 amount0 = balance0.sub(_reserve0);\n uint256 amount1 = balance1.sub(_reserve1);\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n if (_totalSupply == 0) {\n liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);\n _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens\n } else {\n liquidity = Math.min(\n amount0.mul(_totalSupply) / _reserve0,\n amount1.mul(_totalSupply) / _reserve1\n );\n }\n require(liquidity > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\");\n _mint(to, liquidity);\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Mint(msg.sender, amount0, amount1);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function burn(address to) external lock returns (uint256 amount0, uint256 amount1) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n uint256 balance0 = IERC20(_token0).balanceOf(address(this));\n uint256 balance1 = IERC20(_token1).balanceOf(address(this));\n uint256 liquidity = balanceOf[address(this)];\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution\n amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution\n require(amount0 > 0 && amount1 > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\");\n _burn(address(this), liquidity);\n _safeTransfer(_token0, to, amount0);\n _safeTransfer(_token1, to, amount1);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Burn(msg.sender, amount0, amount1, to);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external lock {\n require(amount0Out > 0 || amount1Out > 0, \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\");\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n require(\n amount0Out < _reserve0 && amount1Out < _reserve1,\n \"UniswapV2: INSUFFICIENT_LIQUIDITY\"\n );\n\n uint256 balance0;\n uint256 balance1;\n {\n // scope for _token{0,1}, avoids stack too deep errors\n address _token0 = token0;\n address _token1 = token1;\n require(to != _token0 && to != _token1, \"UniswapV2: INVALID_TO\");\n if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens\n if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens\n if (data.length > 0)\n IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n }\n uint256 amount0In = balance0 > _reserve0 - amount0Out\n ? balance0 - (_reserve0 - amount0Out)\n : 0;\n uint256 amount1In = balance1 > _reserve1 - amount1Out\n ? balance1 - (_reserve1 - amount1Out)\n : 0;\n require(amount0In > 0 || amount1In > 0, \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\");\n {\n // scope for reserve{0,1}Adjusted, avoids stack too deep errors\n uint256 balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));\n uint256 balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));\n require(\n balance0Adjusted.mul(balance1Adjusted) >=\n uint256(_reserve0).mul(_reserve1).mul(1000**2),\n \"UniswapV2: K\"\n );\n }\n\n _update(balance0, balance1, _reserve0, _reserve1);\n emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);\n }\n\n // force balances to match reserves\n function skim(address to) external lock {\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));\n _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));\n }\n\n // force reserves to match balances\n function sync() external lock {\n _update(\n IERC20(token0).balanceOf(address(this)),\n IERC20(token1).balanceOf(address(this)),\n reserve0,\n reserve1\n );\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.624Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/UniswapArbitrageur.json b/build-v1/contracts/UniswapArbitrageur.json new file mode 100644 index 0000000..db35288 --- /dev/null +++ b/build-v1/contracts/UniswapArbitrageur.json @@ -0,0 +1,17989 @@ +{ + "contractName": "UniswapArbitrageur", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_uniswap", + "type": "address" + }, + { + "internalType": "address", + "name": "_dodo", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "_BASE_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_DODO_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_QUOTE_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_REVERSE_", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "_UNISWAP_", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "baseAmount", + "type": "uint256" + } + ], + "name": "executeBuyArbitrage", + "outputs": [ + { + "internalType": "uint256", + "name": "quoteProfit", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "baseAmount", + "type": "uint256" + } + ], + "name": "executeSellArbitrage", + "outputs": [ + { + "internalType": "uint256", + "name": "baseProfit", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "isDODOBuy", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "baseAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "quoteAmount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "dodoCall", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "retrieve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_uniswap\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_dodo\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"_BASE_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_DODO_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_QUOTE_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_REVERSE_\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_UNISWAP_\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isDODOBuy\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"baseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quoteAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"dodoCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"baseAmount\",\"type\":\"uint256\"}],\"name\":\"executeBuyArbitrage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"quoteProfit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"baseAmount\",\"type\":\"uint256\"}],\"name\":\"executeSellArbitrage\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"baseProfit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"retrieve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapArbitrageur.sol\":\"UniswapArbitrageur\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapArbitrageur.sol\":{\"keccak256\":\"0xdc579c56e5f96b8d2b8490aba8b175063e185ab989f2c868a2c698ccc8a370b6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7c51ce6b69657968d20de307f4d85e66f439ad448c1bf2c89352b0f508b3e74b\",\"dweb:/ipfs/QmYAg4jZeQCA1pM9y85F1kYZ1QL2GoBeDLRckduGG9M4Ti\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol\":{\"keccak256\":\"0x8fd9ec49ff1517e33698dc8dd4022da05f3a1ae6e4bf97c48f5f5b6714df2123\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://cfaa388f09d627ad26c66e6c4a73c232d494010b73b989392e264f815a84cd1d\",\"dweb:/ipfs/QmSBNeEyjgFSAtcYpKjyQfKZx7ahZKFwUtnnbpSSpS3p2H\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol\":{\"keccak256\":\"0x40355eddd56b5a9ac760c5a056e135946b372b724fb632415792ad82c60a9ac5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66e932da3bb19bdd0a7b17715099bc419f087cbf06809885fd98a7a35574387e\",\"dweb:/ipfs/Qmdv97dz4214Xrbb8xGbuYPJtvmqAoUcXuSCFgA8NzBUsg\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol\":{\"keccak256\":\"0xb7a2ca6570834e4784e86d19fd5a4b6b1eff22a4586dc240659943396a365aa5\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5855a493c78e787d7effd87d9c661acbcd19ca1e1ba72dbeaa91c3c8db29cbb4\",\"dweb:/ipfs/QmSddEexZ5okMatgoQ5JZRoJqe7BwsJwwWA2o1kKx7vbTH\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol\":{\"keccak256\":\"0xe11bb64537b764f7b0b64f817ffa0b4b278c2017474ff985428225b3f0928295\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c756ca959d2326d58ed49b8a2d39100866197596ba09240e4f1bf861399a6e96\",\"dweb:/ipfs/QmdgzWZNT614vRnb5zsDva91bkLpvZmCVV5d6xetqsyedR\"]},\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol\":{\"keccak256\":\"0x57d750628881687f826b54f60cbfd46c1a172433eed892bbb123f91869886af1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b40bd7946010ddae9679f36630510217dcaa9cb8643824f9edc8ef52bda95717\",\"dweb:/ipfs/QmZSjpfUGyrmokZyaMc74a8h6zy2qFVECPVP8VfTvzNEFb\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200159d3803806200159d833981016040819052620000349162000481565b600080546001600160a01b038085166001600160a01b0319928316178355600180548583169316929092179182905560408051632512469560e11b815290519290911692634a248d2a926004808401936020939083900390910190829087803b158015620000a157600080fd5b505af1158015620000b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000dc919062000451565b600280546001600160a01b0319166001600160a01b0392831617905560015460408051636a5cb82360e11b81529051919092169163d4b970469160048083019260209291908290030181600087803b1580156200013857600080fd5b505af11580156200014d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000173919062000451565b600380546001600160a01b0319166001600160a01b039283161790556000805460408051630dfe168160e01b8152905192939190911691630dfe168191600480820192602092909190829003018186803b158015620001d157600080fd5b505afa158015620001e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020c919062000451565b905060008060009054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156200025e57600080fd5b505afa15801562000273573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000299919062000451565b6002549091506001600160a01b038381169116148015620002c757506003546001600160a01b038281169116145b15620002e0576003805460ff60a01b1916905562000325565b6003546001600160a01b0383811691161480156200030b57506002546001600160a01b038281169116145b1562000325576003805460ff60a01b1916600160a01b1790555b60025460015460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926200035f9291169060001990600401620004e1565b602060405180830381600087803b1580156200037a57600080fd5b505af11580156200038f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b59190620004bf565b5060035460015460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392620003f09291169060001990600401620004e1565b602060405180830381600087803b1580156200040b57600080fd5b505af115801562000420573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004469190620004bf565b505050505062000513565b60006020828403121562000463578081fd5b81516001600160a01b03811681146200047a578182fd5b9392505050565b6000806040838503121562000494578081fd5b8251620004a181620004fa565b6020840151909250620004b481620004fa565b809150509250929050565b600060208284031215620004d1578081fd5b815180151581146200047a578182fd5b6001600160a01b03929092168252602082015260400190565b6001600160a01b03811681146200051057600080fd5b50565b61107a80620005236000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063919d365d11610066578063919d365d146100e8578063949805ff14610108578063c3a2a6651461011b578063ca436ea41461012e578063f4c7076a1461013657610093565b806323208b5a1461009857806325755c95146100b657806360378cea146100be57806375103e15146100d3575b600080fd5b6100a061013e565b6040516100ad9190610e2d565b60405180910390f35b6100a061014d565b6100d16100cc366004610cc6565b61015c565b005b6100db6101c3565b6040516100ad9190610e5a565b6100fb6100f6366004610dae565b6101d3565b6040516100ad9190610fc1565b6100fb610116366004610dae565b610364565b6100d1610129366004610c74565b61049f565b6100a06104bd565b6100a06104cc565b6001546001600160a01b031681565b6000546001600160a01b031681565b6001546001600160a01b0316331461018f5760405162461bcd60e51b815260040161018690610e65565b60405180910390fd5b600354600160a01b900460ff16156101b1576101ac8585856104db565b6101bc565b6101bc858585610836565b5050505050565b600354600160a01b900460ff1681565b600154604051638dae733360e01b81526000916001600160a01b031690638dae7333906102069085908590600401610fca565b602060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102589190610dc6565b506002546040516370a0823160e01b81526001600160a01b03909116906370a0823190610289903090600401610e2d565b60206040518083038186803b1580156102a157600080fd5b505afa1580156102b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d99190610dc6565b60025460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb9061030c9033908590600401610e41565b602060405180830381600087803b15801561032657600080fd5b505af115801561033a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035e9190610caa565b50919050565b60015460405163733e738360e11b81526000916001600160a01b03169063e67ce7069061039990859060001990600401610fca565b602060405180830381600087803b1580156103b357600080fd5b505af11580156103c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103eb9190610dc6565b506003546040516370a0823160e01b81526001600160a01b03909116906370a082319061041c903090600401610e2d565b60206040518083038186803b15801561043457600080fd5b505afa158015610448573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046c9190610dc6565b60035460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb9061030c9033908590600401610e41565b6104b96001600160a01b038316338363ffffffff610a9a16565b5050565b6003546001600160a01b031681565b6002546001600160a01b031681565b6000805460408051630240bc6b60e21b8152905183926001600160a01b031691630902f1ac916004808301926060929190829003018186803b15801561052057600080fd5b505afa158015610534573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105589190610d5a565b5090925090506001600160701b0380831690821660008088156106e65760025460005460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926105ab929116908c90600401610e41565b602060405180830381600087803b1580156105c557600080fd5b505af11580156105d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fd9190610caa565b50600061062f610613858b63ffffffff610af516565b610623878763ffffffff610b2316565b9063ffffffff610b5d16565b90506106596127106106236126f161064d898663ffffffff610b8f16565b9063ffffffff610b2316565b925087831161067a5760405162461bcd60e51b815260040161018690610f76565b60005460405163022c0d9f60e01b81526001600160a01b039091169063022c0d9f906106ae90869086903090600401610ff0565b600060405180830381600087803b1580156106c857600080fd5b505af11580156106dc573d6000803e3d6000fd5b505050505061082b565b60035460005460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb9261071c929116908b90600401610e41565b602060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076e9190610caa565b506000610784610613868a63ffffffff610af516565b90506107a26127106106236126f161064d888663ffffffff610b8f16565b91508882116107c35760405162461bcd60e51b815260040161018690610f76565b60005460405163022c0d9f60e01b81526001600160a01b039091169063022c0d9f906107f790869086903090600401610ff0565b600060405180830381600087803b15801561081157600080fd5b505af1158015610825573d6000803e3d6000fd5b50505050505b505050505050505050565b6000805460408051630240bc6b60e21b8152905183926001600160a01b031691630902f1ac916004808301926060929190829003018186803b15801561087b57600080fd5b505afa15801561088f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b39190610d5a565b5090925090506001600160701b0380831690821660008088156109bd5760025460005460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92610906929116908c90600401610e41565b602060405180830381600087803b15801561092057600080fd5b505af1158015610934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109589190610caa565b50600061097e61096e868b63ffffffff610af516565b610623868863ffffffff610b2316565b905061099c6127106106236126f161064d888663ffffffff610b8f16565b915087821161067a5760405162461bcd60e51b815260040161018690610f76565b60035460005460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926109f3929116908b90600401610e41565b602060405180830381600087803b158015610a0d57600080fd5b505af1158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a459190610caa565b506000610a5b61096e858a63ffffffff610af516565b9050610a796127106106236126f161064d898663ffffffff610b8f16565b92508883116107c35760405162461bcd60e51b815260040161018690610f76565b610af08363a9059cbb60e01b8484604051602401610ab9929190610e41565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610bb7565b505050565b600082820183811015610b1a5760405162461bcd60e51b815260040161018690610f09565b90505b92915050565b600082610b3257506000610b1d565b82820282848281610b3f57fe5b0414610b1a5760405162461bcd60e51b815260040161018690610f9e565b6000808211610b7e5760405162461bcd60e51b815260040161018690610ebe565b818381610b8757fe5b049392505050565b600082821115610bb15760405162461bcd60e51b815260040161018690610ee6565b50900390565b60006060836001600160a01b031683604051610bd39190610df4565b6000604051808303816000865af19150503d8060008114610c10576040519150601f19603f3d011682016040523d82523d6000602084013e610c15565b606091505b509150915081610c375760405162461bcd60e51b815260040161018690610e89565b805115610c6e5780806020019051810190610c529190610caa565b610c6e5760405162461bcd60e51b815260040161018690610f2c565b50505050565b60008060408385031215610c86578182fd5b82356001600160a01b0381168114610c9c578283fd5b946020939093013593505050565b600060208284031215610cbb578081fd5b8151610b1a8161101e565b600080600080600060808688031215610cdd578081fd5b8535610ce88161101e565b94506020860135935060408601359250606086013567ffffffffffffffff80821115610d12578283fd5b81880189601f820112610d23578384fd5b8035925081831115610d33578384fd5b896020848301011115610d44578384fd5b6020810194505050809150509295509295909350565b600080600060608486031215610d6e578283fd5b8351610d798161102f565b6020850151909350610d8a8161102f565b604085015190925063ffffffff81168114610da3578182fd5b809150509250925092565b600060208284031215610dbf578081fd5b5035919050565b600060208284031215610dd7578081fd5b5051919050565b60038152620c1e1960ea1b602082015260400190565b60008251815b81811015610e145760208186018101518583015201610dfa565b81811115610e225782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6020808252600a908201526957524f4e475f444f444f60b01b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252600e908201526d4e4f545f50524f46495441424c4560901b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b600083825282602083015260606040830152610fe860608301610dde565b949350505050565b92835260208301919091526001600160a01b0316604082015260806060820181905260009082015260a00190565b801515811461102c57600080fd5b50565b6001600160701b038116811461102c57600080fdfea26469706673582212201ea39c0ccb151d3e43c2b6a501dfd3dbb90b6a942e145fb823668cef61e177ae64736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063919d365d11610066578063919d365d146100e8578063949805ff14610108578063c3a2a6651461011b578063ca436ea41461012e578063f4c7076a1461013657610093565b806323208b5a1461009857806325755c95146100b657806360378cea146100be57806375103e15146100d3575b600080fd5b6100a061013e565b6040516100ad9190610e2d565b60405180910390f35b6100a061014d565b6100d16100cc366004610cc6565b61015c565b005b6100db6101c3565b6040516100ad9190610e5a565b6100fb6100f6366004610dae565b6101d3565b6040516100ad9190610fc1565b6100fb610116366004610dae565b610364565b6100d1610129366004610c74565b61049f565b6100a06104bd565b6100a06104cc565b6001546001600160a01b031681565b6000546001600160a01b031681565b6001546001600160a01b0316331461018f5760405162461bcd60e51b815260040161018690610e65565b60405180910390fd5b600354600160a01b900460ff16156101b1576101ac8585856104db565b6101bc565b6101bc858585610836565b5050505050565b600354600160a01b900460ff1681565b600154604051638dae733360e01b81526000916001600160a01b031690638dae7333906102069085908590600401610fca565b602060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102589190610dc6565b506002546040516370a0823160e01b81526001600160a01b03909116906370a0823190610289903090600401610e2d565b60206040518083038186803b1580156102a157600080fd5b505afa1580156102b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d99190610dc6565b60025460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb9061030c9033908590600401610e41565b602060405180830381600087803b15801561032657600080fd5b505af115801561033a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035e9190610caa565b50919050565b60015460405163733e738360e11b81526000916001600160a01b03169063e67ce7069061039990859060001990600401610fca565b602060405180830381600087803b1580156103b357600080fd5b505af11580156103c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103eb9190610dc6565b506003546040516370a0823160e01b81526001600160a01b03909116906370a082319061041c903090600401610e2d565b60206040518083038186803b15801561043457600080fd5b505afa158015610448573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046c9190610dc6565b60035460405163a9059cbb60e01b81529192506001600160a01b03169063a9059cbb9061030c9033908590600401610e41565b6104b96001600160a01b038316338363ffffffff610a9a16565b5050565b6003546001600160a01b031681565b6002546001600160a01b031681565b6000805460408051630240bc6b60e21b8152905183926001600160a01b031691630902f1ac916004808301926060929190829003018186803b15801561052057600080fd5b505afa158015610534573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105589190610d5a565b5090925090506001600160701b0380831690821660008088156106e65760025460005460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926105ab929116908c90600401610e41565b602060405180830381600087803b1580156105c557600080fd5b505af11580156105d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105fd9190610caa565b50600061062f610613858b63ffffffff610af516565b610623878763ffffffff610b2316565b9063ffffffff610b5d16565b90506106596127106106236126f161064d898663ffffffff610b8f16565b9063ffffffff610b2316565b925087831161067a5760405162461bcd60e51b815260040161018690610f76565b60005460405163022c0d9f60e01b81526001600160a01b039091169063022c0d9f906106ae90869086903090600401610ff0565b600060405180830381600087803b1580156106c857600080fd5b505af11580156106dc573d6000803e3d6000fd5b505050505061082b565b60035460005460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb9261071c929116908b90600401610e41565b602060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076e9190610caa565b506000610784610613868a63ffffffff610af516565b90506107a26127106106236126f161064d888663ffffffff610b8f16565b91508882116107c35760405162461bcd60e51b815260040161018690610f76565b60005460405163022c0d9f60e01b81526001600160a01b039091169063022c0d9f906107f790869086903090600401610ff0565b600060405180830381600087803b15801561081157600080fd5b505af1158015610825573d6000803e3d6000fd5b50505050505b505050505050505050565b6000805460408051630240bc6b60e21b8152905183926001600160a01b031691630902f1ac916004808301926060929190829003018186803b15801561087b57600080fd5b505afa15801561088f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b39190610d5a565b5090925090506001600160701b0380831690821660008088156109bd5760025460005460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb92610906929116908c90600401610e41565b602060405180830381600087803b15801561092057600080fd5b505af1158015610934573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109589190610caa565b50600061097e61096e868b63ffffffff610af516565b610623868863ffffffff610b2316565b905061099c6127106106236126f161064d888663ffffffff610b8f16565b915087821161067a5760405162461bcd60e51b815260040161018690610f76565b60035460005460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926109f3929116908b90600401610e41565b602060405180830381600087803b158015610a0d57600080fd5b505af1158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a459190610caa565b506000610a5b61096e858a63ffffffff610af516565b9050610a796127106106236126f161064d898663ffffffff610b8f16565b92508883116107c35760405162461bcd60e51b815260040161018690610f76565b610af08363a9059cbb60e01b8484604051602401610ab9929190610e41565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610bb7565b505050565b600082820183811015610b1a5760405162461bcd60e51b815260040161018690610f09565b90505b92915050565b600082610b3257506000610b1d565b82820282848281610b3f57fe5b0414610b1a5760405162461bcd60e51b815260040161018690610f9e565b6000808211610b7e5760405162461bcd60e51b815260040161018690610ebe565b818381610b8757fe5b049392505050565b600082821115610bb15760405162461bcd60e51b815260040161018690610ee6565b50900390565b60006060836001600160a01b031683604051610bd39190610df4565b6000604051808303816000865af19150503d8060008114610c10576040519150601f19603f3d011682016040523d82523d6000602084013e610c15565b606091505b509150915081610c375760405162461bcd60e51b815260040161018690610e89565b805115610c6e5780806020019051810190610c529190610caa565b610c6e5760405162461bcd60e51b815260040161018690610f2c565b50505050565b60008060408385031215610c86578182fd5b82356001600160a01b0381168114610c9c578283fd5b946020939093013593505050565b600060208284031215610cbb578081fd5b8151610b1a8161101e565b600080600080600060808688031215610cdd578081fd5b8535610ce88161101e565b94506020860135935060408601359250606086013567ffffffffffffffff80821115610d12578283fd5b81880189601f820112610d23578384fd5b8035925081831115610d33578384fd5b896020848301011115610d44578384fd5b6020810194505050809150509295509295909350565b600080600060608486031215610d6e578283fd5b8351610d798161102f565b6020850151909350610d8a8161102f565b604085015190925063ffffffff81168114610da3578182fd5b809150509250925092565b600060208284031215610dbf578081fd5b5035919050565b600060208284031215610dd7578081fd5b5051919050565b60038152620c1e1960ea1b602082015260400190565b60008251815b81811015610e145760208186018101518583015201610dfa565b81811115610e225782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6020808252600a908201526957524f4e475f444f444f60b01b604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b6020808252600e908201526d2224ab24a224a723afa2a92927a960911b604082015260600190565b60208082526009908201526829aaa12fa2a92927a960b91b604082015260600190565b60208082526009908201526820a2222fa2a92927a960b91b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252600e908201526d4e4f545f50524f46495441424c4560901b604082015260600190565b60208082526009908201526826aaa62fa2a92927a960b91b604082015260600190565b90815260200190565b600083825282602083015260606040830152610fe860608301610dde565b949350505050565b92835260208301919091526001600160a01b0316604082015260806060820181905260009082015260a00190565b801515811461102c57600080fd5b50565b6001600160701b038116811461102c57600080fdfea26469706673582212201ea39c0ccb151d3e43c2b6a501dfd3dbb90b6a942e145fb823668cef61e177ae64736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "825:4996:20:-:0;;;1106:696;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1168:9;:20;;-1:-1:-1;;;;;1168:20:20;;;-1:-1:-1;;;;;;1168:20:20;;;;;;;1198:14;;;;;;;;;;;;;;;1232:28;;;-1:-1:-1;;;1232:28:20;;;;1238:6;;;;;1232:26;;:28;;;;;;;;;;;;;;;;;1238:6;1232:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1223:6;:37;;-1:-1:-1;;;;;;1223:37:20;-1:-1:-1;;;;;1223:37:20;;;;;;-1:-1:-1;1286:6:20;1280:29;;;-1:-1:-1;;;1280:29:20;;;;1286:6;;;;;1280:27;;:29;;;;;;;;;;;;;;-1:-1:-1;1286:6:20;1280:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1270:7;:39;;-1:-1:-1;;;;;;1270:39:20;-1:-1:-1;;;;;1270:39:20;;;;;;-1:-1:-1;1352:9:20;;1337:34;;;-1:-1:-1;;;1337:34:20;;;;-1:-1:-1;;1352:9:20;;;;;1337:32;;:34;;;;;;;;;;;;;;;1352:9;1337:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1320:51;;1381:14;1413:9;;;;;;;;;-1:-1:-1;;;;;1413:9:20;-1:-1:-1;;;;;1398:32:20;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1457:6;;1381:51;;-1:-1:-1;;;;;;1447:16:20;;;1457:6;;1447:16;:37;;;;-1:-1:-1;1477:7:20;;-1:-1:-1;;;;;1467:17:20;;;1477:7;;1467:17;1447:37;1443:245;;;1500:9;:17;;-1:-1:-1;;;;1500:17:20;;;1443:245;;;1548:7;;-1:-1:-1;;;;;1538:17:20;;;1548:7;;1538:17;:37;;;;-1:-1:-1;1569:6:20;;-1:-1:-1;;;;;1559:16:20;;;1569:6;;1559:16;1538:37;1534:154;;;1591:9;:16;;-1:-1:-1;;;;1591:16:20;-1:-1:-1;;;1591:16:20;;;1534:154;1705:6;;;1721;1698:43;;-1:-1:-1;;;1698:43:20;;-1:-1:-1;;;;;1705:6:20;;;;1698:22;;:43;;1721:6;;;-1:-1:-1;;1737:2:20;1698:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1758:7:20;;;1775:6;1751:44;;-1:-1:-1;;;1751:44:20;;-1:-1:-1;;;;;1758:7:20;;;;1751:23;;:44;;1775:6;;;-1:-1:-1;;1791:2:20;1751:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1106:696;;;;825:4996;;281:263:-1;;396:2;384:9;375:7;371:23;367:32;364:2;;;-1:-1;;402:12;364:2;83:13;;-1:-1;;;;;2979:54;;3183:35;;3173:2;;-1:-1;;3222:12;3173:2;454:74;358:186;-1:-1;;;358:186;551:399;;;683:2;671:9;662:7;658:23;654:32;651:2;;;-1:-1;;689:12;651:2;89:6;83:13;101:33;128:5;101:33;;;852:2;902:22;;83:13;741:74;;-1:-1;101:33;83:13;101:33;;;860:74;;;;645:305;;;;;;957:257;;1069:2;1057:9;1048:7;1044:23;1040:32;1037:2;;;-1:-1;;1075:12;1037:2;227:6;221:13;3329:5;2891:13;2884:21;3307:5;3304:32;3294:2;;-1:-1;;3340:12;1792:333;-1:-1;;;;;2979:54;;;;1292:37;;2111:2;2096:18;;1743:37;1947:2;1932:18;;1918:207;3124:117;-1:-1;;;;;2979:54;;3183:35;;3173:2;;3232:1;;3222:12;3173:2;3167:74;;;825:4996:20;;;;;;", + "deployedSourceMap": "825:4996:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;954:21;;;:::i;:::-;;;;;;;;;;;;;;;;924:24;;;:::i;2434:377::-;;;;;;;;;:::i;:::-;;1037:21;;;:::i;:::-;;;;;;;;2128:300;;;;;;;;;:::i;:::-;;;;;;;;1808:314;;;;;;;;;:::i;5698:121::-;;;;;;;;;:::i;1008:22::-;;;:::i;981:21::-;;;:::i;954:::-;;;-1:-1:-1;;;;;954:21:20;;:::o;924:24::-;;;-1:-1:-1;;;;;924:24:20;;:::o;2434:377::-;2604:6;;-1:-1:-1;;;;;2604:6:20;2590:10;:20;2582:43;;;;-1:-1:-1;;;2582:43:20;;;;;;;;;;;;;;;;;2639:9;;-1:-1:-1;;;2639:9:20;;;;2635:170;;;2664:53;2682:9;2693:10;2705:11;2664:17;:53::i;:::-;2635:170;;;2748:46;2759:9;2770:10;2782:11;2748:10;:46::i;:::-;2434:377;;;;;:::o;1037:21::-;;;-1:-1:-1;;;1037:21:20;;;;;:::o;2128:300::-;2232:6;;2226:49;;-1:-1:-1;;;2226:49:20;;2196:18;;-1:-1:-1;;;;;2232:6:20;;2226:27;;:49;;2254:10;;2196:18;;2226:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2305:6:20;;2298:39;;-1:-1:-1;;;2298:39:20;;-1:-1:-1;;;;;2305:6:20;;;;2298:24;;:39;;2331:4;;2298:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2354:6;;2347:47;;-1:-1:-1;;;2347:47:20;;2285:52;;-1:-1:-1;;;;;;2354:6:20;;2347:23;;:47;;2371:10;;2285:52;;2347:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2128:300:20;;;:::o;1808:314::-;1912:6;;1906:58;;-1:-1:-1;;;1906:58:20;;1875:19;;-1:-1:-1;;;;;1912:6:20;;1906:26;;:58;;1933:10;;-1:-1:-1;;1953:2:20;1906:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1995:7:20;;1988:40;;-1:-1:-1;;;1988:40:20;;-1:-1:-1;;;;;1995:7:20;;;;1988:25;;:40;;2022:4;;1988:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2045:7;;2038:49;;-1:-1:-1;;;2038:49:20;;1974:54;;-1:-1:-1;;;;;;2045:7:20;;2038:24;;:49;;2063:10;;1974:54;;2038:49;;;;5698:121;5766:46;-1:-1:-1;;;;;5766:26:20;;5793:10;5805:6;5766:46;:26;:46;:::i;:::-;5698:121;;:::o;1008:22::-;;;-1:-1:-1;;;;;1008:22:20;;:::o;981:21::-;;;-1:-1:-1;;;;;981:21:20;;:::o;2817:1438::-;2951:17;3008:9;;2993:39;;;-1:-1:-1;;;2993:39:20;;;;2951:17;;-1:-1:-1;;;;;3008:9:20;;2993:37;;:39;;;;;;;;;;;;;;3008:9;2993:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2950:82:20;;-1:-1:-1;2950:82:20;-1:-1:-1;;;;;;3066:18:20;;;;3118;;3042:21;;3206:1043;;;;3242:6;;;3259:9;3235:46;;-1:-1:-1;;;3235:46:20;;-1:-1:-1;;;;;3242:6:20;;;;3235:23;;:46;;3259:9;;;3270:10;;3235:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3339:24:20;3366:97;3420:29;:13;3438:10;3420:29;:17;:29;:::i;:::-;3366:32;:13;3384;3366:32;:17;:32;:::i;:::-;:36;:97;:36;:97;:::i;:::-;3339:124;-1:-1:-1;3492:56:20;3542:5;3492:45;3532:4;3492:35;:13;3339:124;3492:35;:17;:35;:::i;:::-;:39;:45;:39;:45;:::i;:56::-;3477:71;;3599:11;3584:12;:26;3576:53;;;;-1:-1:-1;;;3576:53:20;;;;;;;;;3658:9;;3643:77;;-1:-1:-1;;;3643:77:20;;-1:-1:-1;;;;;3658:9:20;;;;3643:30;;:77;;3674:12;;3688;;3710:4;;3643:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3206:1043;;;;3758:7;;;3776:9;3751:48;;-1:-1:-1;;;3751:48:20;;-1:-1:-1;;;;;3758:7:20;;;;3751:24;;:48;;3776:9;;;3787:11;;3751:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3857:24:20;3884:98;3938:30;:13;3956:11;3938:30;:17;:30;:::i;3884:98::-;3857:125;-1:-1:-1;4011:56:20;4061:5;4011:45;4051:4;4011:35;:13;3857:125;4011:35;:17;:35;:::i;:56::-;3996:71;;4118:10;4103:12;:25;4095:52;;;;-1:-1:-1;;;4095:52:20;;;;;;;;;4176:9;;4161:77;;-1:-1:-1;;;4161:77:20;;-1:-1:-1;;;;;4176:9:20;;;;4161:30;;:77;;4192:12;;4206;;4228:4;;4161:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3206:1043;;2817:1438;;;;;;;;;:::o;4261:1431::-;4388:17;4445:9;;4430:39;;;-1:-1:-1;;;4430:39:20;;;;4388:17;;-1:-1:-1;;;;;4445:9:20;;4430:37;;:39;;;;;;;;;;;;;;4445:9;4430:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4387:82:20;;-1:-1:-1;4387:82:20;-1:-1:-1;;;;;;4503:18:20;;;;4555;;4479:21;;4643:1043;;;;4679:6;;;4696:9;4672:46;;-1:-1:-1;;;4672:46:20;;-1:-1:-1;;;;;4679:6:20;;;;4672:23;;:46;;4696:9;;;4707:10;;4672:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4776:24:20;4803:97;4857:29;:13;4875:10;4857:29;:17;:29;:::i;:::-;4803:32;:13;4821;4803:32;:17;:32;:::i;:97::-;4776:124;-1:-1:-1;4929:56:20;4979:5;4929:45;4969:4;4929:35;:13;4776:124;4929:35;:17;:35;:::i;:56::-;4914:71;;5036:11;5021:12;:26;5013:53;;;;-1:-1:-1;;;5013:53:20;;;;;;;;4643:1043;5195:7;;;5213:9;5188:48;;-1:-1:-1;;;5188:48:20;;-1:-1:-1;;;;;5195:7:20;;;;5188:24;;:48;;5213:9;;;5224:11;;5188:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5294:24:20;5321:98;5375:30;:13;5393:11;5375:30;:17;:30;:::i;5321:98::-;5294:125;-1:-1:-1;5448:56:20;5498:5;5448:45;5488:4;5448:35;:13;5294:125;5448:35;:17;:35;:::i;:56::-;5433:71;;5555:10;5540:12;:25;5532:52;;;;-1:-1:-1;;;5532:52:20;;;;;;;;804:205:40;916:86;936:5;966:23;;;991:2;995:5;943:58;;;;;;;;;;;;;;-1:-1:-1;;943:58:40;;;;;;;;;;;;;;-1:-1:-1;;;;;943:58:40;-1:-1:-1;;;;;;943:58:40;;;;;;;;;;916:19;:86::i;:::-;804:205;;;:::o;1074:157:41:-;1132:7;1163:5;;;1186:6;;;;1178:28;;;;-1:-1:-1;;;1178:28:41;;;;;;;;;1223:1;-1:-1:-1;1074:157:41;;;;;:::o;281:217::-;339:7;362:6;358:45;;-1:-1:-1;391:1:41;384:8;;358:45;425:5;;;429:1;425;:5;:1;448:5;;;;;:10;440:32;;;;-1:-1:-1;;;440:32:41;;;;;;;;504:138;562:7;593:1;589;:5;581:32;;;;-1:-1:-1;;;581:32:41;;;;;;;;;634:1;630;:5;;;;;;;504:138;-1:-1:-1;;;504:138:41:o;934:134::-;992:7;1024:1;1019;:6;;1011:28;;;;-1:-1:-1;;;1011:28:41;;;;;;;;;-1:-1:-1;1056:5:41;;;934:134::o;2335:1027:40:-;2984:12;2998:23;3033:5;-1:-1:-1;;;;;3025:19:40;3045:4;3025:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2983:67;;;;3068:7;3060:52;;;;-1:-1:-1;;;3060:52:40;;;;;;;;;3127:17;;:21;3123:233;;3279:10;3268:30;;;;;;;;;;;;;;3260:85;;;;-1:-1:-1;;;3260:85:40;;;;;;;;;2335:1027;;;;:::o;1324:366:-1:-;;;1445:2;1433:9;1424:7;1420:23;1416:32;1413:2;;;-1:-1;;1451:12;1413:2;72:20;;-1:-1;;;;;16078:54;;17156:35;;17146:2;;-1:-1;;17195:12;17146:2;1503:63;1603:2;1642:22;;;;974:20;;-1:-1;;;1407:283;1697:257;;1809:2;1797:9;1788:7;1784:23;1780:32;1777:2;;;-1:-1;;1815:12;1777:2;354:6;348:13;366:30;390:5;366:30;;1961:735;;;;;;2132:3;2120:9;2111:7;2107:23;2103:33;2100:2;;;-1:-1;;2139:12;2100:2;219:6;206:20;231:30;255:5;231:30;;;2191:60;-1:-1;2288:2;2327:22;;974:20;;-1:-1;2396:2;2435:22;;974:20;;-1:-1;2532:2;2517:18;;2504:32;2556:18;2545:30;;;2542:2;;;-1:-1;;2578:12;2542:2;2663:6;2652:9;2648:22;536:3;529:4;521:6;517:17;513:27;503:2;;-1:-1;;544:12;503:2;587:6;574:20;564:30;;2556:18;606:6;603:30;600:2;;;-1:-1;;636:12;600:2;731:3;2288:2;711:17;672:6;697:32;;694:41;691:2;;;-1:-1;;738:12;691:2;2288;672:6;668:17;2606:74;;;;;;;;2094:602;;;;;;;;;2703:533;;;;2851:2;2839:9;2830:7;2826:23;2822:32;2819:2;;;-1:-1;;2857:12;2819:2;850:6;844:13;862:33;889:5;862:33;;;3020:2;3070:22;;844:13;2909:74;;-1:-1;862:33;844:13;862:33;;;3139:2;3188:22;;1262:13;3028:74;;-1:-1;16295:10;16284:22;;17645:34;;17635:2;;-1:-1;;17683:12;17635:2;3147:73;;;;2813:423;;;;;;3243:241;;3347:2;3335:9;3326:7;3322:23;3318:32;3315:2;;;-1:-1;;3353:12;3315:2;-1:-1;974:20;;3309:175;-1:-1;3309:175;3491:263;;3606:2;3594:9;3585:7;3581:23;3577:32;3574:2;;;-1:-1;;3612:12;3574:2;-1:-1;1122:13;;3568:186;-1:-1;3568:186;5314:300;5536:1;15317:19;;-1:-1;;;15366:4;15357:14;;5551:26;5596:12;;;5459:155;7996:271;;4301:5;15173:12;-1:-1;16893:101;16907:6;16904:1;16901:13;16893:101;;;4445:4;16974:11;;;;;16968:18;16955:11;;;16948:39;16922:10;16893:101;;;17009:6;17006:1;17003:13;17000:2;;;-1:-1;17065:6;17060:3;17056:16;17049:27;17000:2;-1:-1;4476:16;;;;;8130:137;-1:-1;;8130:137;8274:222;-1:-1;;;;;16078:54;;;;3981:37;;8401:2;8386:18;;8372:124;8503:349;-1:-1;;;;;16078:54;;;;3840:58;;8838:2;8823:18;;7947:37;8666:2;8651:18;;8637:215;9199:210;15874:13;;15867:21;4095:34;;9320:2;9305:18;;9291:118;9416:416;9616:2;9630:47;;;4878:2;9601:18;;;15317:19;-1:-1;;;15357:14;;;4894:33;4946:12;;;9587:245;9839:416;10039:2;10053:47;;;10024:18;;;15317:19;5233:34;15357:14;;;5213:55;5287:12;;;10010:245;10262:416;10462:2;10476:47;;;5847:2;10447:18;;;15317:19;-1:-1;;;15357:14;;;5863:37;5919:12;;;10433:245;10685:416;10885:2;10899:47;;;6170:1;10870:18;;;15317:19;-1:-1;;;15357:14;;;6185:32;6236:12;;;10856:245;11108:416;11308:2;11322:47;;;6756:1;11293:18;;;15317:19;-1:-1;;;15357:14;;;6771:32;6822:12;;;11279:245;11531:416;11731:2;11745:47;;;7073:2;11716:18;;;15317:19;7109:34;15357:14;;;7089:55;-1:-1;;;7164:12;;;7157:34;7210:12;;;11702:245;11954:416;12154:2;12168:47;;;7461:2;12139:18;;;15317:19;-1:-1;;;15357:14;;;7477:37;7533:12;;;12125:245;12377:416;12577:2;12591:47;;;7784:1;12562:18;;;15317:19;-1:-1;;;15357:14;;;7799:32;7850:12;;;12548:245;12800:222;7947:37;;;12927:2;12912:18;;12898:124;13029:652;;7977:5;7954:3;7947:37;16541:24;13464:2;13453:9;13449:18;4583:58;13292:2;13501;13490:9;13486:18;13479:48;13541:130;13292:2;13281:9;13277:18;13541:130;;;13533:138;13263:418;-1:-1;;;;13263:418;13688:748;7947:37;;;14136:2;14121:18;;7947:37;;;;-1:-1;;;;;16078:54;14219:2;14204:18;;3981:37;13971:3;14256:2;14241:18;;14234:48;;;13688:748;13956:19;;;15317;16089:42;15357:14;;13942:494;17221:111;17302:5;15874:13;15867:21;17280:5;17277:32;17267:2;;17323:1;;17313:12;17267:2;17261:71;;17339:117;-1:-1;;;;;17426:5;15962:42;17401:5;17398:35;17388:2;;17447:1;;17437:12", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\npragma experimental ABIEncoderV2;\n\nimport {Ownable} from \"../lib/Ownable.sol\";\nimport {IDODO} from \"../intf/IDODO.sol\";\nimport {IERC20} from \"../intf/IERC20.sol\";\nimport {SafeERC20} from \"../lib/SafeERC20.sol\";\nimport {SafeMath} from \"../lib/SafeMath.sol\";\n\ninterface IUniswapV2Pair {\n function token0() external view returns (address);\n\n function token1() external view returns (address);\n\n function getReserves()\n external\n view\n returns (\n uint112 reserve0,\n uint112 reserve1,\n uint32 blockTimestampLast\n );\n\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external;\n}\n\ncontract UniswapArbitrageur {\n using SafeMath for uint256;\n using SafeERC20 for IERC20;\n\n address public _UNISWAP_;\n address public _DODO_;\n address public _BASE_;\n address public _QUOTE_;\n\n bool public _REVERSE_; // true if dodo.baseToken=uniswap.token0\n\n constructor(address _uniswap, address _dodo) public {\n _UNISWAP_ = _uniswap;\n _DODO_ = _dodo;\n\n _BASE_ = IDODO(_DODO_)._BASE_TOKEN_();\n _QUOTE_ = IDODO(_DODO_)._QUOTE_TOKEN_();\n\n address token0 = IUniswapV2Pair(_UNISWAP_).token0();\n address token1 = IUniswapV2Pair(_UNISWAP_).token1();\n\n if (token0 == _BASE_ && token1 == _QUOTE_) {\n _REVERSE_ = false;\n } else if (token0 == _QUOTE_ && token1 == _BASE_) {\n _REVERSE_ = true;\n } else {\n require(true, \"DODO_UNISWAP_NOT_MATCH\");\n }\n\n IERC20(_BASE_).approve(_DODO_, uint256(-1));\n IERC20(_QUOTE_).approve(_DODO_, uint256(-1));\n }\n\n function executeBuyArbitrage(uint256 baseAmount) external returns (uint256 quoteProfit) {\n IDODO(_DODO_).buyBaseToken(baseAmount, uint256(-1), \"0xd\");\n quoteProfit = IERC20(_QUOTE_).balanceOf(address(this));\n IERC20(_QUOTE_).transfer(msg.sender, quoteProfit);\n return quoteProfit;\n }\n\n function executeSellArbitrage(uint256 baseAmount) external returns (uint256 baseProfit) {\n IDODO(_DODO_).sellBaseToken(baseAmount, 0, \"0xd\");\n baseProfit = IERC20(_BASE_).balanceOf(address(this));\n IERC20(_BASE_).transfer(msg.sender, baseProfit);\n return baseProfit;\n }\n\n function dodoCall(\n bool isDODOBuy,\n uint256 baseAmount,\n uint256 quoteAmount,\n bytes calldata\n ) external {\n require(msg.sender == _DODO_, \"WRONG_DODO\");\n if (_REVERSE_) {\n _inverseArbitrage(isDODOBuy, baseAmount, quoteAmount);\n } else {\n _arbitrage(isDODOBuy, baseAmount, quoteAmount);\n }\n }\n\n function _inverseArbitrage(\n bool isDODOBuy,\n uint256 baseAmount,\n uint256 quoteAmount\n ) internal {\n (uint112 _reserve0, uint112 _reserve1, ) = IUniswapV2Pair(_UNISWAP_).getReserves();\n uint256 token0Balance = uint256(_reserve0);\n uint256 token1Balance = uint256(_reserve1);\n uint256 token0Amount;\n uint256 token1Amount;\n if (isDODOBuy) {\n IERC20(_BASE_).transfer(_UNISWAP_, baseAmount);\n // transfer token1 into uniswap\n uint256 newToken0Balance = token0Balance.mul(token1Balance).div(\n token1Balance.add(baseAmount)\n );\n token0Amount = token0Balance.sub(newToken0Balance).mul(9969).div(10000); // mul 0.9969\n require(token0Amount > quoteAmount, \"NOT_PROFITABLE\");\n IUniswapV2Pair(_UNISWAP_).swap(token0Amount, token1Amount, address(this), \"\");\n } else {\n IERC20(_QUOTE_).transfer(_UNISWAP_, quoteAmount);\n // transfer token0 into uniswap\n uint256 newToken1Balance = token0Balance.mul(token1Balance).div(\n token0Balance.add(quoteAmount)\n );\n token1Amount = token1Balance.sub(newToken1Balance).mul(9969).div(10000); // mul 0.9969\n require(token1Amount > baseAmount, \"NOT_PROFITABLE\");\n IUniswapV2Pair(_UNISWAP_).swap(token0Amount, token1Amount, address(this), \"\");\n }\n }\n\n function _arbitrage(\n bool isDODOBuy,\n uint256 baseAmount,\n uint256 quoteAmount\n ) internal {\n (uint112 _reserve0, uint112 _reserve1, ) = IUniswapV2Pair(_UNISWAP_).getReserves();\n uint256 token0Balance = uint256(_reserve0);\n uint256 token1Balance = uint256(_reserve1);\n uint256 token0Amount;\n uint256 token1Amount;\n if (isDODOBuy) {\n IERC20(_BASE_).transfer(_UNISWAP_, baseAmount);\n // transfer token0 into uniswap\n uint256 newToken1Balance = token1Balance.mul(token0Balance).div(\n token0Balance.add(baseAmount)\n );\n token1Amount = token1Balance.sub(newToken1Balance).mul(9969).div(10000); // mul 0.9969\n require(token1Amount > quoteAmount, \"NOT_PROFITABLE\");\n IUniswapV2Pair(_UNISWAP_).swap(token0Amount, token1Amount, address(this), \"\");\n } else {\n IERC20(_QUOTE_).transfer(_UNISWAP_, quoteAmount);\n // transfer token1 into uniswap\n uint256 newToken0Balance = token1Balance.mul(token0Balance).div(\n token1Balance.add(quoteAmount)\n );\n token0Amount = token0Balance.sub(newToken0Balance).mul(9969).div(10000); // mul 0.9969\n require(token0Amount > baseAmount, \"NOT_PROFITABLE\");\n IUniswapV2Pair(_UNISWAP_).swap(token0Amount, token1Amount, address(this), \"\");\n }\n }\n\n function retrieve(address token, uint256 amount) external {\n IERC20(token).safeTransfer(msg.sender, amount);\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapArbitrageur.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapArbitrageur.sol", + "exportedSymbols": { + "IUniswapV2Pair": [ + 3996 + ], + "UniswapArbitrageur": [ + 4558 + ] + }, + "id": 4559, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3954, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:20" + }, + { + "id": 3955, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:20" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 3957, + "nodeType": "ImportDirective", + "scope": 4559, + "sourceUnit": 11272, + "src": "136:43:20", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3956, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "file": "../intf/IDODO.sol", + "id": 3959, + "nodeType": "ImportDirective", + "scope": 4559, + "sourceUnit": 10492, + "src": "180:40:20", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3958, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "188:5:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 3961, + "nodeType": "ImportDirective", + "scope": 4559, + "sourceUnit": 10608, + "src": "221:42:20", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3960, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "229:6:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "../lib/SafeERC20.sol", + "id": 3963, + "nodeType": "ImportDirective", + "scope": 4559, + "sourceUnit": 11441, + "src": "264:47:20", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3962, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "272:9:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 3965, + "nodeType": "ImportDirective", + "scope": 4559, + "sourceUnit": 11624, + "src": "312:45:20", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3964, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "320:8:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 3996, + "linearizedBaseContracts": [ + 3996 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 3970, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3966, + "nodeType": "ParameterList", + "parameters": [], + "src": "405:2:20" + }, + "returnParameters": { + "id": 3969, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3968, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3970, + "src": "431:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3967, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "431:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "430:9:20" + }, + "scope": 3996, + "src": "390:50:20", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 3975, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3971, + "nodeType": "ParameterList", + "parameters": [], + "src": "461:2:20" + }, + "returnParameters": { + "id": 3974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3973, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3975, + "src": "487:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3972, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "487:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "486:9:20" + }, + "scope": 3996, + "src": "446:50:20", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 3984, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3976, + "nodeType": "ParameterList", + "parameters": [], + "src": "522:2:20" + }, + "returnParameters": { + "id": 3983, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3978, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3984, + "src": "585:16:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 3977, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "585:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3980, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3984, + "src": "615:16:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 3979, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "615:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3982, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3984, + "src": "645:25:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3981, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "645:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "571:109:20" + }, + "scope": 3996, + "src": "502:179:20", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 3995, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3986, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3995, + "src": "710:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3985, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "710:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3988, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3995, + "src": "738:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "738:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3990, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3995, + "src": "766:10:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3989, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "766:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3992, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3995, + "src": "786:19:20", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3991, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "786:5:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "700:111:20" + }, + "returnParameters": { + "id": 3994, + "nodeType": "ParameterList", + "parameters": [], + "src": "820:0:20" + }, + "scope": 3996, + "src": "687:134:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 4559, + "src": "359:464:20" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4558, + "linearizedBaseContracts": [ + 4558 + ], + "name": "UniswapArbitrageur", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3999, + "libraryName": { + "contractScope": null, + "id": 3997, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "865:8:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "859:27:20", + "typeName": { + "id": 3998, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "878:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 4002, + "libraryName": { + "contractScope": null, + "id": 4000, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "897:9:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "891:27:20", + "typeName": { + "contractScope": null, + "id": 4001, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "911:6:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "constant": false, + "functionSelector": "25755c95", + "id": 4004, + "mutability": "mutable", + "name": "_UNISWAP_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4558, + "src": "924:24:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4003, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "924:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "23208b5a", + "id": 4006, + "mutability": "mutable", + "name": "_DODO_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4558, + "src": "954:21:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4005, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "954:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f4c7076a", + "id": 4008, + "mutability": "mutable", + "name": "_BASE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4558, + "src": "981:21:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "981:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ca436ea4", + "id": 4010, + "mutability": "mutable", + "name": "_QUOTE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4558, + "src": "1008:22:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4009, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1008:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "75103e15", + "id": 4012, + "mutability": "mutable", + "name": "_REVERSE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4558, + "src": "1037:21:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4011, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1037:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 4115, + "nodeType": "Block", + "src": "1158:644:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4019, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "1168:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4020, + "name": "_uniswap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4014, + "src": "1180:8:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1168:20:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4022, + "nodeType": "ExpressionStatement", + "src": "1168:20:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4023, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "1198:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4024, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4016, + "src": "1207:5:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1198:14:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4026, + "nodeType": "ExpressionStatement", + "src": "1198:14:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4027, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "1223:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4029, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "1238:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4028, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1232:5:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 4030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1232:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 4031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10485, + "src": "1232:26:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 4032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1232:28:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1223:37:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4034, + "nodeType": "ExpressionStatement", + "src": "1223:37:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4035, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "1270:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4037, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "1286:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4036, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1280:5:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 4038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1280:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 4039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10490, + "src": "1280:27:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 4040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1280:29:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1270:39:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4042, + "nodeType": "ExpressionStatement", + "src": "1270:39:20" + }, + { + "assignments": [ + 4044 + ], + "declarations": [ + { + "constant": false, + "id": 4044, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4115, + "src": "1320:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1320:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4050, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4046, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "1352:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4045, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "1337:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1337:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "token0", + "nodeType": "MemberAccess", + "referencedDeclaration": 3970, + "src": "1337:32:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 4049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1337:34:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1320:51:20" + }, + { + "assignments": [ + 4052 + ], + "declarations": [ + { + "constant": false, + "id": 4052, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4115, + "src": "1381:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1381:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4058, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4054, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "1413:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4053, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "1398:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1398:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "token1", + "nodeType": "MemberAccess", + "referencedDeclaration": 3975, + "src": "1398:32:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 4057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1398:34:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1381:51:20" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4059, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4044, + "src": "1447:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4060, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "1457:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1447:16:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4062, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4052, + "src": "1467:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4063, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "1477:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1467:17:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1447:37:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4071, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4044, + "src": "1538:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4072, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "1548:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1538:17:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4074, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4052, + "src": "1559:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4075, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "1569:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1559:16:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1538:37:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4088, + "nodeType": "Block", + "src": "1624:64:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1646:4:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f554e49535741505f4e4f545f4d41544348", + "id": 4085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1652:24:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_085ae99011c80da9c1d86962411149a128f10f322f636819b5a99783f05c31c1", + "typeString": "literal_string \"DODO_UNISWAP_NOT_MATCH\"" + }, + "value": "DODO_UNISWAP_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_085ae99011c80da9c1d86962411149a128f10f322f636819b5a99783f05c31c1", + "typeString": "literal_string \"DODO_UNISWAP_NOT_MATCH\"" + } + ], + "id": 4083, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1638:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1638:39:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4087, + "nodeType": "ExpressionStatement", + "src": "1638:39:20" + } + ] + }, + "id": 4089, + "nodeType": "IfStatement", + "src": "1534:154:20", + "trueBody": { + "id": 4082, + "nodeType": "Block", + "src": "1577:41:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4078, + "name": "_REVERSE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4012, + "src": "1591:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1603:4:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1591:16:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4081, + "nodeType": "ExpressionStatement", + "src": "1591:16:20" + } + ] + } + }, + "id": 4090, + "nodeType": "IfStatement", + "src": "1443:245:20", + "trueBody": { + "id": 4070, + "nodeType": "Block", + "src": "1486:42:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4066, + "name": "_REVERSE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4012, + "src": "1500:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1512:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1500:17:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4069, + "nodeType": "ExpressionStatement", + "src": "1500:17:20" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4095, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "1721:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1737:2:20", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1738:1:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1729:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4096, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1729:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1729:11:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4092, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "1705:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4091, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1698:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1698:14:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10594, + "src": "1698:22:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1698:43:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4102, + "nodeType": "ExpressionStatement", + "src": "1698:43:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4107, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "1775:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1791:2:20", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1792:1:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1783:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1783:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1783:11:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4104, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "1758:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4103, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1751:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1751:15:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10594, + "src": "1751:23:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1751:44:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4114, + "nodeType": "ExpressionStatement", + "src": "1751:44:20" + } + ] + }, + "documentation": null, + "id": 4116, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4017, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4014, + "mutability": "mutable", + "name": "_uniswap", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4116, + "src": "1118:16:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4013, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1118:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4016, + "mutability": "mutable", + "name": "_dodo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4116, + "src": "1136:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4015, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1136:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1117:33:20" + }, + "returnParameters": { + "id": 4018, + "nodeType": "ParameterList", + "parameters": [], + "src": "1158:0:20" + }, + "scope": 4558, + "src": "1106:696:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4159, + "nodeType": "Block", + "src": "1896:226:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4127, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4118, + "src": "1933:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4131, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1953:2:20", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4130, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1954:1:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1945:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1945:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1945:11:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "307864", + "id": 4133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1958:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4ca88ae40bb7d308c953e4be794121a997c64099064e80e6e79d9445458a1a7a", + "typeString": "literal_string \"0xd\"" + }, + "value": "0xd" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_4ca88ae40bb7d308c953e4be794121a997c64099064e80e6e79d9445458a1a7a", + "typeString": "literal_string \"0xd\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4124, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "1912:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4123, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1906:5:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 4125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1906:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 4126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "buyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10407, + "src": "1906:26:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 4134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1906:58:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4135, + "nodeType": "ExpressionStatement", + "src": "1906:58:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4136, + "name": "quoteProfit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4121, + "src": "1974:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4143, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2022:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + ], + "id": 4142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2014:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2014:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2014:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4138, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "1995:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4137, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1988:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1988:15:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "1988:25:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 4145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1988:40:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1974:54:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4147, + "nodeType": "ExpressionStatement", + "src": "1974:54:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4152, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2063:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2063:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4154, + "name": "quoteProfit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4121, + "src": "2075:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4149, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "2045:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4148, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "2038:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2038:15:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "2038:24:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2038:49:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4156, + "nodeType": "ExpressionStatement", + "src": "2038:49:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4157, + "name": "quoteProfit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4121, + "src": "2104:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4122, + "id": 4158, + "nodeType": "Return", + "src": "2097:18:20" + } + ] + }, + "documentation": null, + "functionSelector": "949805ff", + "id": 4160, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "executeBuyArbitrage", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4118, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4160, + "src": "1837:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1837:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1836:20:20" + }, + "returnParameters": { + "id": 4122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4121, + "mutability": "mutable", + "name": "quoteProfit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4160, + "src": "1875:19:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1875:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1874:21:20" + }, + "scope": 4558, + "src": "1808:314:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4199, + "nodeType": "Block", + "src": "2216:212:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4171, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4162, + "src": "2254:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 4172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2266:1:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "307864", + "id": 4173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2269:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4ca88ae40bb7d308c953e4be794121a997c64099064e80e6e79d9445458a1a7a", + "typeString": "literal_string \"0xd\"" + }, + "value": "0xd" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_stringliteral_4ca88ae40bb7d308c953e4be794121a997c64099064e80e6e79d9445458a1a7a", + "typeString": "literal_string \"0xd\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4168, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "2232:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4167, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "2226:5:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 4169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2226:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 4170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sellBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10396, + "src": "2226:27:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 4174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2226:49:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4175, + "nodeType": "ExpressionStatement", + "src": "2226:49:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4176, + "name": "baseProfit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4165, + "src": "2285:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4183, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2331:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + ], + "id": 4182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2323:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2323:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2323:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4178, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "2305:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4177, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "2298:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2298:14:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "2298:24:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 4185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2298:39:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2285:52:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4187, + "nodeType": "ExpressionStatement", + "src": "2285:52:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4192, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2371:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2371:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4194, + "name": "baseProfit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4165, + "src": "2383:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4189, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "2354:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4188, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "2347:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2347:14:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "2347:23:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2347:47:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4196, + "nodeType": "ExpressionStatement", + "src": "2347:47:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4197, + "name": "baseProfit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4165, + "src": "2411:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4166, + "id": 4198, + "nodeType": "Return", + "src": "2404:17:20" + } + ] + }, + "documentation": null, + "functionSelector": "919d365d", + "id": 4200, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "executeSellArbitrage", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4162, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4200, + "src": "2158:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4161, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2158:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2157:20:20" + }, + "returnParameters": { + "id": 4166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4165, + "mutability": "mutable", + "name": "baseProfit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4200, + "src": "2196:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4164, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2196:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2195:20:20" + }, + "scope": 4558, + "src": "2128:300:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4235, + "nodeType": "Block", + "src": "2572:239:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4212, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2590:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2590:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4214, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "2604:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2590:20:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "57524f4e475f444f444f", + "id": 4216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2612:12:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_41662103fa761538f203aa14fdd6465fb2b049b8631d2a0c262356d67d2459f3", + "typeString": "literal_string \"WRONG_DODO\"" + }, + "value": "WRONG_DODO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_41662103fa761538f203aa14fdd6465fb2b049b8631d2a0c262356d67d2459f3", + "typeString": "literal_string \"WRONG_DODO\"" + } + ], + "id": 4211, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2582:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2582:43:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4218, + "nodeType": "ExpressionStatement", + "src": "2582:43:20" + }, + { + "condition": { + "argumentTypes": null, + "id": 4219, + "name": "_REVERSE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4012, + "src": "2639:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4233, + "nodeType": "Block", + "src": "2734:71:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4228, + "name": "isDODOBuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4202, + "src": "2759:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 4229, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4204, + "src": "2770:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4230, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4206, + "src": "2782:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4227, + "name": "_arbitrage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4540, + "src": "2748:10:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (bool,uint256,uint256)" + } + }, + "id": 4231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2748:46:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4232, + "nodeType": "ExpressionStatement", + "src": "2748:46:20" + } + ] + }, + "id": 4234, + "nodeType": "IfStatement", + "src": "2635:170:20", + "trueBody": { + "id": 4226, + "nodeType": "Block", + "src": "2650:78:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4221, + "name": "isDODOBuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4202, + "src": "2682:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 4222, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4204, + "src": "2693:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4223, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4206, + "src": "2705:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4220, + "name": "_inverseArbitrage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4388, + "src": "2664:17:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (bool,uint256,uint256)" + } + }, + "id": 4224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2664:53:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4225, + "nodeType": "ExpressionStatement", + "src": "2664:53:20" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "60378cea", + "id": 4236, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "dodoCall", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4202, + "mutability": "mutable", + "name": "isDODOBuy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4236, + "src": "2461:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4201, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2461:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4204, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4236, + "src": "2485:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2485:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4206, + "mutability": "mutable", + "name": "quoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4236, + "src": "2513:19:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2513:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4208, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4236, + "src": "2542:14:20", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4207, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2542:5:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2451:111:20" + }, + "returnParameters": { + "id": 4210, + "nodeType": "ParameterList", + "parameters": [], + "src": "2572:0:20" + }, + "scope": 4558, + "src": "2434:377:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4387, + "nodeType": "Block", + "src": "2940:1315:20", + "statements": [ + { + "assignments": [ + 4246, + 4248, + null + ], + "declarations": [ + { + "constant": false, + "id": 4246, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4387, + "src": "2951:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4245, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2951:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4248, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4387, + "src": "2970:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4247, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2970:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 4254, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4250, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "3008:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4249, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "2993:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2993:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 3984, + "src": "2993:37:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view external returns (uint112,uint112,uint32)" + } + }, + "id": 4253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2993:39:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2950:82:20" + }, + { + "assignments": [ + 4256 + ], + "declarations": [ + { + "constant": false, + "id": 4256, + "mutability": "mutable", + "name": "token0Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4387, + "src": "3042:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3042:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4261, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4259, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4246, + "src": "3074:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 4258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3066:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3066:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3066:18:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3042:42:20" + }, + { + "assignments": [ + 4263 + ], + "declarations": [ + { + "constant": false, + "id": 4263, + "mutability": "mutable", + "name": "token1Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4387, + "src": "3094:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4262, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3094:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4268, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4266, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4248, + "src": "3126:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 4265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3118:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4264, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3118:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3118:18:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3094:42:20" + }, + { + "assignments": [ + 4270 + ], + "declarations": [ + { + "constant": false, + "id": 4270, + "mutability": "mutable", + "name": "token0Amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4387, + "src": "3146:20:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3146:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4271, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3146:20:20" + }, + { + "assignments": [ + 4273 + ], + "declarations": [ + { + "constant": false, + "id": 4273, + "mutability": "mutable", + "name": "token1Amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4387, + "src": "3176:20:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4272, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3176:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4274, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3176:20:20" + }, + { + "condition": { + "argumentTypes": null, + "id": 4275, + "name": "isDODOBuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4238, + "src": "3210:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4385, + "nodeType": "Block", + "src": "3737:512:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4335, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "3776:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4336, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4242, + "src": "3787:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4332, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "3758:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4331, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "3751:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3751:15:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "3751:24:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3751:48:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4338, + "nodeType": "ExpressionStatement", + "src": "3751:48:20" + }, + { + "assignments": [ + 4340 + ], + "declarations": [ + { + "constant": false, + "id": 4340, + "mutability": "mutable", + "name": "newToken1Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4385, + "src": "3857:24:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4339, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3857:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4351, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4348, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4242, + "src": "3956:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4346, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4256, + "src": "3938:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3938:17:20", + "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": 4349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3938:30:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4343, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "3902:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4341, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4256, + "src": "3884:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3884:17:20", + "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": 4344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3884:32:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "3884:36:20", + "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": 4350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3884:98:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3857:125:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4352, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4273, + "src": "3996:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 4361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4061:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "39393639", + "id": 4358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4051:4:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + }, + "value": "9969" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4355, + "name": "newToken1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4340, + "src": "4029:16:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4353, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "4011:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4011:17:20", + "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": 4356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4011:35:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "4011:39:20", + "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": 4359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4011:45:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "4011:49:20", + "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": 4362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4011:56:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3996:71:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4364, + "nodeType": "ExpressionStatement", + "src": "3996:71:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4366, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4273, + "src": "4103:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 4367, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4240, + "src": "4118:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4103:25:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f50524f46495441424c45", + "id": 4369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4130:16:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + }, + "value": "NOT_PROFITABLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + } + ], + "id": 4365, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4095:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:52:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4371, + "nodeType": "ExpressionStatement", + "src": "4095:52:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4376, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4270, + "src": "4192:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4377, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4273, + "src": "4206:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4380, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4228:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + ], + "id": 4379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4220:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4378, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4220:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4220:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 4382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4235:2:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4373, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "4176:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4372, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "4161:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4161:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 3995, + "src": "4161:30:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,address,bytes memory) external" + } + }, + "id": 4383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4161:77:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4384, + "nodeType": "ExpressionStatement", + "src": "4161:77:20" + } + ] + }, + "id": 4386, + "nodeType": "IfStatement", + "src": "3206:1043:20", + "trueBody": { + "id": 4330, + "nodeType": "Block", + "src": "3221:510:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4280, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "3259:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4281, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4240, + "src": "3270:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4277, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "3242:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4276, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "3235:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3235:14:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "3235:23:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3235:46:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4283, + "nodeType": "ExpressionStatement", + "src": "3235:46:20" + }, + { + "assignments": [ + 4285 + ], + "declarations": [ + { + "constant": false, + "id": 4285, + "mutability": "mutable", + "name": "newToken0Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4330, + "src": "3339:24:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3339:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4296, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4293, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4240, + "src": "3438:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4291, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "3420:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3420:17:20", + "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": 4294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3420:29:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4288, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "3384:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4286, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4256, + "src": "3366:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3366:17:20", + "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": 4289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3366:32:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "3366:36:20", + "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": 4295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3366:97:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3339:124:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4297, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4270, + "src": "3477:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 4306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3542:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "39393639", + "id": 4303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3532:4:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + }, + "value": "9969" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4300, + "name": "newToken0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4285, + "src": "3510:16:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4298, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4256, + "src": "3492:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3492:17:20", + "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": 4301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3492:35:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3492:39:20", + "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": 4304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3492:45:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "3492:49:20", + "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": 4307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3492:56:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3477:71:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4309, + "nodeType": "ExpressionStatement", + "src": "3477:71:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4311, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4270, + "src": "3584:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 4312, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4242, + "src": "3599:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3584:26:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f50524f46495441424c45", + "id": 4314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3612:16:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + }, + "value": "NOT_PROFITABLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + } + ], + "id": 4310, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3576:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3576:53:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4316, + "nodeType": "ExpressionStatement", + "src": "3576:53:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4321, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4270, + "src": "3674:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4322, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4273, + "src": "3688:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4325, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3710:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + ], + "id": 4324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3702:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4323, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3702:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 4327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3717:2:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4318, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "3658:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4317, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "3643:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3643:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 3995, + "src": "3643:30:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,address,bytes memory) external" + } + }, + "id": 4328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3643:77:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4329, + "nodeType": "ExpressionStatement", + "src": "3643:77:20" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_inverseArbitrage", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4238, + "mutability": "mutable", + "name": "isDODOBuy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4388, + "src": "2853:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4237, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2853:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4240, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4388, + "src": "2877:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2877:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4242, + "mutability": "mutable", + "name": "quoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4388, + "src": "2905:19:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2905:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2843:87:20" + }, + "returnParameters": { + "id": 4244, + "nodeType": "ParameterList", + "parameters": [], + "src": "2940:0:20" + }, + "scope": 4558, + "src": "2817:1438:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4539, + "nodeType": "Block", + "src": "4377:1315:20", + "statements": [ + { + "assignments": [ + 4398, + 4400, + null + ], + "declarations": [ + { + "constant": false, + "id": 4398, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4539, + "src": "4388:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4397, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "4388:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4400, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4539, + "src": "4407:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4399, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "4407:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 4406, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4402, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "4445:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4401, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "4430:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4430:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 3984, + "src": "4430:37:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view external returns (uint112,uint112,uint32)" + } + }, + "id": 4405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4430:39:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4387:82:20" + }, + { + "assignments": [ + 4408 + ], + "declarations": [ + { + "constant": false, + "id": 4408, + "mutability": "mutable", + "name": "token0Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4539, + "src": "4479:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4479:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4413, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4411, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4398, + "src": "4511:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 4410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4503:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4503:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4503:18:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4479:42:20" + }, + { + "assignments": [ + 4415 + ], + "declarations": [ + { + "constant": false, + "id": 4415, + "mutability": "mutable", + "name": "token1Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4539, + "src": "4531:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4414, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4420, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4418, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4400, + "src": "4563:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 4417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4555:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4416, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4555:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4555:18:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4531:42:20" + }, + { + "assignments": [ + 4422 + ], + "declarations": [ + { + "constant": false, + "id": 4422, + "mutability": "mutable", + "name": "token0Amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4539, + "src": "4583:20:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4583:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4423, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4583:20:20" + }, + { + "assignments": [ + 4425 + ], + "declarations": [ + { + "constant": false, + "id": 4425, + "mutability": "mutable", + "name": "token1Amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4539, + "src": "4613:20:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4424, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4613:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4426, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4613:20:20" + }, + { + "condition": { + "argumentTypes": null, + "id": 4427, + "name": "isDODOBuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4390, + "src": "4647:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4537, + "nodeType": "Block", + "src": "5174:512:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4487, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "5213:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4488, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "5224:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4484, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "5195:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4483, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5188:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5188:15:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "5188:24:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5188:48:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4490, + "nodeType": "ExpressionStatement", + "src": "5188:48:20" + }, + { + "assignments": [ + 4492 + ], + "declarations": [ + { + "constant": false, + "id": 4492, + "mutability": "mutable", + "name": "newToken0Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4537, + "src": "5294:24:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5294:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4503, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4500, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "5393:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4498, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4415, + "src": "5375:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5375:17:20", + "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": 4501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5375:30:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4495, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4408, + "src": "5339:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4493, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4415, + "src": "5321:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5321:17:20", + "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": 4496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5321:32:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "5321:36:20", + "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": 4502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5321:98:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5294:125:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4504, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4422, + "src": "5433:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 4513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5498:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "39393639", + "id": 4510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5488:4:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + }, + "value": "9969" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4507, + "name": "newToken0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4492, + "src": "5466:16:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4505, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4408, + "src": "5448:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5448:17:20", + "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": 4508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5448:35:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5448:39:20", + "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": 4511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5448:45:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "5448:49:20", + "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": 4514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5448:56:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5433:71:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4516, + "nodeType": "ExpressionStatement", + "src": "5433:71:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4518, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4422, + "src": "5540:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 4519, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4392, + "src": "5555:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5540:25:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f50524f46495441424c45", + "id": 4521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5567:16:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + }, + "value": "NOT_PROFITABLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + } + ], + "id": 4517, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5532:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5532:52:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4523, + "nodeType": "ExpressionStatement", + "src": "5532:52:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4528, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4422, + "src": "5629:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4529, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "5643:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4532, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5665:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + ], + "id": 4531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5657:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5657:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5657:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 4534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5672:2:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4525, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "5613:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4524, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "5598:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5598:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 3995, + "src": "5598:30:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,address,bytes memory) external" + } + }, + "id": 4535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5598:77:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4536, + "nodeType": "ExpressionStatement", + "src": "5598:77:20" + } + ] + }, + "id": 4538, + "nodeType": "IfStatement", + "src": "4643:1043:20", + "trueBody": { + "id": 4482, + "nodeType": "Block", + "src": "4658:510:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4432, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "4696:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4433, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4392, + "src": "4707:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4429, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "4679:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4428, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "4672:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4672:14:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "4672:23:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4672:46:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4435, + "nodeType": "ExpressionStatement", + "src": "4672:46:20" + }, + { + "assignments": [ + 4437 + ], + "declarations": [ + { + "constant": false, + "id": 4437, + "mutability": "mutable", + "name": "newToken1Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4482, + "src": "4776:24:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4436, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4776:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4448, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4445, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4392, + "src": "4875:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4443, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4408, + "src": "4857:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4857:17:20", + "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": 4446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4857:29:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4440, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4408, + "src": "4821:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4438, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4415, + "src": "4803:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "4803:17:20", + "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": 4441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4803:32:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "4803:36:20", + "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": 4447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4803:97:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4776:124:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4449, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "4914:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 4458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4979:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "39393639", + "id": 4455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:4:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + }, + "value": "9969" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4452, + "name": "newToken1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4437, + "src": "4947:16:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4450, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4415, + "src": "4929:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4929:17:20", + "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": 4453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4929:35:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "4929:39:20", + "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": 4456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4929:45:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "4929:49:20", + "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": 4459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4929:56:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4914:71:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4461, + "nodeType": "ExpressionStatement", + "src": "4914:71:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4463, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "5021:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 4464, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "5036:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5021:26:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f50524f46495441424c45", + "id": 4466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5049:16:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + }, + "value": "NOT_PROFITABLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + } + ], + "id": 4462, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5013:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5013:53:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4468, + "nodeType": "ExpressionStatement", + "src": "5013:53:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4473, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4422, + "src": "5111:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4474, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "5125:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4477, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5147:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + ], + "id": 4476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5139:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4475, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5139:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5139:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 4479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5154:2:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4470, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "5095:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4469, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "5080:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5080:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 3995, + "src": "5080:30:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,address,bytes memory) external" + } + }, + "id": 4480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5080:77:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4481, + "nodeType": "ExpressionStatement", + "src": "5080:77:20" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4540, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_arbitrage", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4390, + "mutability": "mutable", + "name": "isDODOBuy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4540, + "src": "4290:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4389, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4290:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4392, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4540, + "src": "4314:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4314:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4394, + "mutability": "mutable", + "name": "quoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4540, + "src": "4342:19:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4393, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4342:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4280:87:20" + }, + "returnParameters": { + "id": 4396, + "nodeType": "ParameterList", + "parameters": [], + "src": "4377:0:20" + }, + "scope": 4558, + "src": "4261:1431:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4556, + "nodeType": "Block", + "src": "5756:63:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4551, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5793:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5793:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4553, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4544, + "src": "5805:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4548, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4542, + "src": "5773:5:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4547, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5766:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "5766:26:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 4554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:46:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4555, + "nodeType": "ExpressionStatement", + "src": "5766:46:20" + } + ] + }, + "documentation": null, + "functionSelector": "c3a2a665", + "id": 4557, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "retrieve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4545, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4542, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4557, + "src": "5716:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5716:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4544, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4557, + "src": "5731:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5731:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5715:31:20" + }, + "returnParameters": { + "id": 4546, + "nodeType": "ParameterList", + "parameters": [], + "src": "5756:0:20" + }, + "scope": 4558, + "src": "5698:121:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 4559, + "src": "825:4996:20" + } + ], + "src": "78:5744:20" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapArbitrageur.sol", + "exportedSymbols": { + "IUniswapV2Pair": [ + 3996 + ], + "UniswapArbitrageur": [ + 4558 + ] + }, + "id": 4559, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3954, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:20" + }, + { + "id": 3955, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "101:33:20" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/Ownable.sol", + "file": "../lib/Ownable.sol", + "id": 3957, + "nodeType": "ImportDirective", + "scope": 4559, + "sourceUnit": 11272, + "src": "136:43:20", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3956, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "144:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IDODO.sol", + "file": "../intf/IDODO.sol", + "id": 3959, + "nodeType": "ImportDirective", + "scope": 4559, + "sourceUnit": 10492, + "src": "180:40:20", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3958, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "188:5:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/intf/IERC20.sol", + "file": "../intf/IERC20.sol", + "id": 3961, + "nodeType": "ImportDirective", + "scope": 4559, + "sourceUnit": 10608, + "src": "221:42:20", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3960, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "229:6:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeERC20.sol", + "file": "../lib/SafeERC20.sol", + "id": 3963, + "nodeType": "ImportDirective", + "scope": 4559, + "sourceUnit": 11441, + "src": "264:47:20", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3962, + "name": "SafeERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "272:9:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/lib/SafeMath.sol", + "file": "../lib/SafeMath.sol", + "id": 3965, + "nodeType": "ImportDirective", + "scope": 4559, + "sourceUnit": 11624, + "src": "312:45:20", + "symbolAliases": [ + { + "foreign": { + "argumentTypes": null, + "id": 3964, + "name": "SafeMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": null, + "src": "320:8:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + }, + "local": null + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 3996, + "linearizedBaseContracts": [ + 3996 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 3970, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3966, + "nodeType": "ParameterList", + "parameters": [], + "src": "405:2:20" + }, + "returnParameters": { + "id": 3969, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3968, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3970, + "src": "431:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3967, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "431:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "430:9:20" + }, + "scope": 3996, + "src": "390:50:20", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 3975, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3971, + "nodeType": "ParameterList", + "parameters": [], + "src": "461:2:20" + }, + "returnParameters": { + "id": 3974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3973, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3975, + "src": "487:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3972, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "487:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "486:9:20" + }, + "scope": 3996, + "src": "446:50:20", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 3984, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3976, + "nodeType": "ParameterList", + "parameters": [], + "src": "522:2:20" + }, + "returnParameters": { + "id": 3983, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3978, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3984, + "src": "585:16:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 3977, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "585:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3980, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3984, + "src": "615:16:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 3979, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "615:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3982, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3984, + "src": "645:25:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 3981, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "645:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "571:109:20" + }, + "scope": 3996, + "src": "502:179:20", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 3995, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3986, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3995, + "src": "710:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3985, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "710:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3988, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3995, + "src": "738:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "738:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3990, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3995, + "src": "766:10:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3989, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "766:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3992, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3995, + "src": "786:19:20", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3991, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "786:5:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "700:111:20" + }, + "returnParameters": { + "id": 3994, + "nodeType": "ParameterList", + "parameters": [], + "src": "820:0:20" + }, + "scope": 3996, + "src": "687:134:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 4559, + "src": "359:464:20" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4558, + "linearizedBaseContracts": [ + 4558 + ], + "name": "UniswapArbitrageur", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3999, + "libraryName": { + "contractScope": null, + "id": 3997, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11623, + "src": "865:8:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$11623", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "859:27:20", + "typeName": { + "id": 3998, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "878:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 4002, + "libraryName": { + "contractScope": null, + "id": 4000, + "name": "SafeERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 11440, + "src": "897:9:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$11440", + "typeString": "library SafeERC20" + } + }, + "nodeType": "UsingForDirective", + "src": "891:27:20", + "typeName": { + "contractScope": null, + "id": 4001, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10607, + "src": "911:6:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + } + }, + { + "constant": false, + "functionSelector": "25755c95", + "id": 4004, + "mutability": "mutable", + "name": "_UNISWAP_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4558, + "src": "924:24:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4003, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "924:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "23208b5a", + "id": 4006, + "mutability": "mutable", + "name": "_DODO_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4558, + "src": "954:21:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4005, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "954:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f4c7076a", + "id": 4008, + "mutability": "mutable", + "name": "_BASE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4558, + "src": "981:21:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "981:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ca436ea4", + "id": 4010, + "mutability": "mutable", + "name": "_QUOTE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4558, + "src": "1008:22:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4009, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1008:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "75103e15", + "id": 4012, + "mutability": "mutable", + "name": "_REVERSE_", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4558, + "src": "1037:21:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4011, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1037:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 4115, + "nodeType": "Block", + "src": "1158:644:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4019, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "1168:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4020, + "name": "_uniswap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4014, + "src": "1180:8:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1168:20:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4022, + "nodeType": "ExpressionStatement", + "src": "1168:20:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4023, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "1198:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4024, + "name": "_dodo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4016, + "src": "1207:5:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1198:14:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4026, + "nodeType": "ExpressionStatement", + "src": "1198:14:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4027, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "1223:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4029, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "1238:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4028, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1232:5:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 4030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1232:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 4031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_BASE_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10485, + "src": "1232:26:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 4032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1232:28:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1223:37:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4034, + "nodeType": "ExpressionStatement", + "src": "1223:37:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4035, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "1270:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4037, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "1286:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4036, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1280:5:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 4038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1280:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 4039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_QUOTE_TOKEN_", + "nodeType": "MemberAccess", + "referencedDeclaration": 10490, + "src": "1280:27:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$_t_address_$", + "typeString": "function () external returns (address)" + } + }, + "id": 4040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1280:29:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1270:39:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4042, + "nodeType": "ExpressionStatement", + "src": "1270:39:20" + }, + { + "assignments": [ + 4044 + ], + "declarations": [ + { + "constant": false, + "id": 4044, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4115, + "src": "1320:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1320:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4050, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4046, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "1352:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4045, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "1337:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1337:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "token0", + "nodeType": "MemberAccess", + "referencedDeclaration": 3970, + "src": "1337:32:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 4049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1337:34:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1320:51:20" + }, + { + "assignments": [ + 4052 + ], + "declarations": [ + { + "constant": false, + "id": 4052, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4115, + "src": "1381:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1381:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4058, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4054, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "1413:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4053, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "1398:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1398:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "token1", + "nodeType": "MemberAccess", + "referencedDeclaration": 3975, + "src": "1398:32:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 4057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1398:34:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1381:51:20" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4059, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4044, + "src": "1447:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4060, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "1457:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1447:16:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4062, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4052, + "src": "1467:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4063, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "1477:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1467:17:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1447:37:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4071, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4044, + "src": "1538:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4072, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "1548:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1538:17:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4074, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4052, + "src": "1559:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4075, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "1569:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1559:16:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1538:37:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4088, + "nodeType": "Block", + "src": "1624:64:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1646:4:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "hexValue": "444f444f5f554e49535741505f4e4f545f4d41544348", + "id": 4085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1652:24:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_085ae99011c80da9c1d86962411149a128f10f322f636819b5a99783f05c31c1", + "typeString": "literal_string \"DODO_UNISWAP_NOT_MATCH\"" + }, + "value": "DODO_UNISWAP_NOT_MATCH" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_085ae99011c80da9c1d86962411149a128f10f322f636819b5a99783f05c31c1", + "typeString": "literal_string \"DODO_UNISWAP_NOT_MATCH\"" + } + ], + "id": 4083, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1638:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1638:39:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4087, + "nodeType": "ExpressionStatement", + "src": "1638:39:20" + } + ] + }, + "id": 4089, + "nodeType": "IfStatement", + "src": "1534:154:20", + "trueBody": { + "id": 4082, + "nodeType": "Block", + "src": "1577:41:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4078, + "name": "_REVERSE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4012, + "src": "1591:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1603:4:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1591:16:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4081, + "nodeType": "ExpressionStatement", + "src": "1591:16:20" + } + ] + } + }, + "id": 4090, + "nodeType": "IfStatement", + "src": "1443:245:20", + "trueBody": { + "id": 4070, + "nodeType": "Block", + "src": "1486:42:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4066, + "name": "_REVERSE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4012, + "src": "1500:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1512:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1500:17:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4069, + "nodeType": "ExpressionStatement", + "src": "1500:17:20" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4095, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "1721:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1737:2:20", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1738:1:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1729:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4096, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1729:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1729:11:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4092, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "1705:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4091, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1698:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1698:14:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10594, + "src": "1698:22:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1698:43:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4102, + "nodeType": "ExpressionStatement", + "src": "1698:43:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4107, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "1775:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1791:2:20", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1792:1:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1783:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1783:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1783:11:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4104, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "1758:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4103, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1751:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1751:15:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 10594, + "src": "1751:23:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1751:44:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4114, + "nodeType": "ExpressionStatement", + "src": "1751:44:20" + } + ] + }, + "documentation": null, + "id": 4116, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4017, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4014, + "mutability": "mutable", + "name": "_uniswap", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4116, + "src": "1118:16:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4013, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1118:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4016, + "mutability": "mutable", + "name": "_dodo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4116, + "src": "1136:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4015, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1136:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1117:33:20" + }, + "returnParameters": { + "id": 4018, + "nodeType": "ParameterList", + "parameters": [], + "src": "1158:0:20" + }, + "scope": 4558, + "src": "1106:696:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4159, + "nodeType": "Block", + "src": "1896:226:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4127, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4118, + "src": "1933:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4131, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1953:2:20", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 4130, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1954:1:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 4129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1945:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1945:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1945:11:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "307864", + "id": 4133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1958:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4ca88ae40bb7d308c953e4be794121a997c64099064e80e6e79d9445458a1a7a", + "typeString": "literal_string \"0xd\"" + }, + "value": "0xd" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_4ca88ae40bb7d308c953e4be794121a997c64099064e80e6e79d9445458a1a7a", + "typeString": "literal_string \"0xd\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4124, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "1912:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4123, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "1906:5:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 4125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1906:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 4126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "buyBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10407, + "src": "1906:26:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 4134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1906:58:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4135, + "nodeType": "ExpressionStatement", + "src": "1906:58:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4136, + "name": "quoteProfit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4121, + "src": "1974:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4143, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2022:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + ], + "id": 4142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2014:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4141, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2014:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2014:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4138, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "1995:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4137, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "1988:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1988:15:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "1988:25:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 4145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1988:40:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1974:54:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4147, + "nodeType": "ExpressionStatement", + "src": "1974:54:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4152, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2063:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2063:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4154, + "name": "quoteProfit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4121, + "src": "2075:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4149, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "2045:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4148, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "2038:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2038:15:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "2038:24:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2038:49:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4156, + "nodeType": "ExpressionStatement", + "src": "2038:49:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4157, + "name": "quoteProfit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4121, + "src": "2104:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4122, + "id": 4158, + "nodeType": "Return", + "src": "2097:18:20" + } + ] + }, + "documentation": null, + "functionSelector": "949805ff", + "id": 4160, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "executeBuyArbitrage", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4118, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4160, + "src": "1837:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1837:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1836:20:20" + }, + "returnParameters": { + "id": 4122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4121, + "mutability": "mutable", + "name": "quoteProfit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4160, + "src": "1875:19:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1875:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1874:21:20" + }, + "scope": 4558, + "src": "1808:314:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4199, + "nodeType": "Block", + "src": "2216:212:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4171, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4162, + "src": "2254:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 4172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2266:1:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "307864", + "id": 4173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2269:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4ca88ae40bb7d308c953e4be794121a997c64099064e80e6e79d9445458a1a7a", + "typeString": "literal_string \"0xd\"" + }, + "value": "0xd" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_stringliteral_4ca88ae40bb7d308c953e4be794121a997c64099064e80e6e79d9445458a1a7a", + "typeString": "literal_string \"0xd\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4168, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "2232:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4167, + "name": "IDODO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10491, + "src": "2226:5:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IDODO_$10491_$", + "typeString": "type(contract IDODO)" + } + }, + "id": 4169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2226:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IDODO_$10491", + "typeString": "contract IDODO" + } + }, + "id": 4170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sellBaseToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 10396, + "src": "2226:27:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,bytes memory) external returns (uint256)" + } + }, + "id": 4174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2226:49:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4175, + "nodeType": "ExpressionStatement", + "src": "2226:49:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4176, + "name": "baseProfit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4165, + "src": "2285:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4183, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "2331:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + ], + "id": 4182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2323:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2323:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2323:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4178, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "2305:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4177, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "2298:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2298:14:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 10564, + "src": "2298:24:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 4185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2298:39:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2285:52:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4187, + "nodeType": "ExpressionStatement", + "src": "2285:52:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4192, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2371:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2371:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4194, + "name": "baseProfit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4165, + "src": "2383:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4189, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "2354:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4188, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "2347:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2347:14:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "2347:23:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2347:47:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4196, + "nodeType": "ExpressionStatement", + "src": "2347:47:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4197, + "name": "baseProfit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4165, + "src": "2411:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4166, + "id": 4198, + "nodeType": "Return", + "src": "2404:17:20" + } + ] + }, + "documentation": null, + "functionSelector": "919d365d", + "id": 4200, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "executeSellArbitrage", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4162, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4200, + "src": "2158:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4161, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2158:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2157:20:20" + }, + "returnParameters": { + "id": 4166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4165, + "mutability": "mutable", + "name": "baseProfit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4200, + "src": "2196:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4164, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2196:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2195:20:20" + }, + "scope": 4558, + "src": "2128:300:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4235, + "nodeType": "Block", + "src": "2572:239:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4212, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2590:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2590:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4214, + "name": "_DODO_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "2604:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2590:20:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "57524f4e475f444f444f", + "id": 4216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2612:12:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_41662103fa761538f203aa14fdd6465fb2b049b8631d2a0c262356d67d2459f3", + "typeString": "literal_string \"WRONG_DODO\"" + }, + "value": "WRONG_DODO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_41662103fa761538f203aa14fdd6465fb2b049b8631d2a0c262356d67d2459f3", + "typeString": "literal_string \"WRONG_DODO\"" + } + ], + "id": 4211, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2582:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2582:43:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4218, + "nodeType": "ExpressionStatement", + "src": "2582:43:20" + }, + { + "condition": { + "argumentTypes": null, + "id": 4219, + "name": "_REVERSE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4012, + "src": "2639:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4233, + "nodeType": "Block", + "src": "2734:71:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4228, + "name": "isDODOBuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4202, + "src": "2759:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 4229, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4204, + "src": "2770:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4230, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4206, + "src": "2782:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4227, + "name": "_arbitrage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4540, + "src": "2748:10:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (bool,uint256,uint256)" + } + }, + "id": 4231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2748:46:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4232, + "nodeType": "ExpressionStatement", + "src": "2748:46:20" + } + ] + }, + "id": 4234, + "nodeType": "IfStatement", + "src": "2635:170:20", + "trueBody": { + "id": 4226, + "nodeType": "Block", + "src": "2650:78:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4221, + "name": "isDODOBuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4202, + "src": "2682:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 4222, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4204, + "src": "2693:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4223, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4206, + "src": "2705:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4220, + "name": "_inverseArbitrage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4388, + "src": "2664:17:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (bool,uint256,uint256)" + } + }, + "id": 4224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2664:53:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4225, + "nodeType": "ExpressionStatement", + "src": "2664:53:20" + } + ] + } + } + ] + }, + "documentation": null, + "functionSelector": "60378cea", + "id": 4236, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "dodoCall", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4202, + "mutability": "mutable", + "name": "isDODOBuy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4236, + "src": "2461:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4201, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2461:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4204, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4236, + "src": "2485:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2485:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4206, + "mutability": "mutable", + "name": "quoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4236, + "src": "2513:19:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2513:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4208, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4236, + "src": "2542:14:20", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4207, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2542:5:20", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2451:111:20" + }, + "returnParameters": { + "id": 4210, + "nodeType": "ParameterList", + "parameters": [], + "src": "2572:0:20" + }, + "scope": 4558, + "src": "2434:377:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 4387, + "nodeType": "Block", + "src": "2940:1315:20", + "statements": [ + { + "assignments": [ + 4246, + 4248, + null + ], + "declarations": [ + { + "constant": false, + "id": 4246, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4387, + "src": "2951:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4245, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2951:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4248, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4387, + "src": "2970:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4247, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2970:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 4254, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4250, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "3008:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4249, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "2993:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2993:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 3984, + "src": "2993:37:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view external returns (uint112,uint112,uint32)" + } + }, + "id": 4253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2993:39:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2950:82:20" + }, + { + "assignments": [ + 4256 + ], + "declarations": [ + { + "constant": false, + "id": 4256, + "mutability": "mutable", + "name": "token0Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4387, + "src": "3042:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3042:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4261, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4259, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4246, + "src": "3074:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 4258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3066:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3066:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3066:18:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3042:42:20" + }, + { + "assignments": [ + 4263 + ], + "declarations": [ + { + "constant": false, + "id": 4263, + "mutability": "mutable", + "name": "token1Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4387, + "src": "3094:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4262, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3094:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4268, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4266, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4248, + "src": "3126:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 4265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3118:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4264, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3118:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3118:18:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3094:42:20" + }, + { + "assignments": [ + 4270 + ], + "declarations": [ + { + "constant": false, + "id": 4270, + "mutability": "mutable", + "name": "token0Amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4387, + "src": "3146:20:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3146:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4271, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3146:20:20" + }, + { + "assignments": [ + 4273 + ], + "declarations": [ + { + "constant": false, + "id": 4273, + "mutability": "mutable", + "name": "token1Amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4387, + "src": "3176:20:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4272, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3176:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4274, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "3176:20:20" + }, + { + "condition": { + "argumentTypes": null, + "id": 4275, + "name": "isDODOBuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4238, + "src": "3210:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4385, + "nodeType": "Block", + "src": "3737:512:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4335, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "3776:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4336, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4242, + "src": "3787:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4332, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "3758:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4331, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "3751:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3751:15:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "3751:24:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3751:48:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4338, + "nodeType": "ExpressionStatement", + "src": "3751:48:20" + }, + { + "assignments": [ + 4340 + ], + "declarations": [ + { + "constant": false, + "id": 4340, + "mutability": "mutable", + "name": "newToken1Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4385, + "src": "3857:24:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4339, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3857:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4351, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4348, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4242, + "src": "3956:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4346, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4256, + "src": "3938:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3938:17:20", + "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": 4349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3938:30:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4343, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "3902:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4341, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4256, + "src": "3884:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3884:17:20", + "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": 4344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3884:32:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "3884:36:20", + "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": 4350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3884:98:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3857:125:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4352, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4273, + "src": "3996:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 4361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4061:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "39393639", + "id": 4358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4051:4:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + }, + "value": "9969" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4355, + "name": "newToken1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4340, + "src": "4029:16:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4353, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "4011:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4011:17:20", + "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": 4356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4011:35:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "4011:39:20", + "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": 4359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4011:45:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "4011:49:20", + "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": 4362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4011:56:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3996:71:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4364, + "nodeType": "ExpressionStatement", + "src": "3996:71:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4366, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4273, + "src": "4103:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 4367, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4240, + "src": "4118:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4103:25:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f50524f46495441424c45", + "id": 4369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4130:16:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + }, + "value": "NOT_PROFITABLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + } + ], + "id": 4365, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4095:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:52:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4371, + "nodeType": "ExpressionStatement", + "src": "4095:52:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4376, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4270, + "src": "4192:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4377, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4273, + "src": "4206:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4380, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4228:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + ], + "id": 4379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4220:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4378, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4220:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4220:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 4382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4235:2:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4373, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "4176:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4372, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "4161:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4161:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 3995, + "src": "4161:30:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,address,bytes memory) external" + } + }, + "id": 4383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4161:77:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4384, + "nodeType": "ExpressionStatement", + "src": "4161:77:20" + } + ] + }, + "id": 4386, + "nodeType": "IfStatement", + "src": "3206:1043:20", + "trueBody": { + "id": 4330, + "nodeType": "Block", + "src": "3221:510:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4280, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "3259:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4281, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4240, + "src": "3270:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4277, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "3242:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4276, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "3235:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3235:14:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "3235:23:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3235:46:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4283, + "nodeType": "ExpressionStatement", + "src": "3235:46:20" + }, + { + "assignments": [ + 4285 + ], + "declarations": [ + { + "constant": false, + "id": 4285, + "mutability": "mutable", + "name": "newToken0Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4330, + "src": "3339:24:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3339:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4296, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4293, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4240, + "src": "3438:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4291, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "3420:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "3420:17:20", + "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": 4294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3420:29:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4288, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4263, + "src": "3384:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4286, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4256, + "src": "3366:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3366:17:20", + "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": 4289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3366:32:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "3366:36:20", + "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": 4295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3366:97:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3339:124:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4297, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4270, + "src": "3477:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 4306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3542:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "39393639", + "id": 4303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3532:4:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + }, + "value": "9969" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4300, + "name": "newToken0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4285, + "src": "3510:16:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4298, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4256, + "src": "3492:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "3492:17:20", + "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": 4301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3492:35:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "3492:39:20", + "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": 4304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3492:45:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "3492:49:20", + "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": 4307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3492:56:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3477:71:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4309, + "nodeType": "ExpressionStatement", + "src": "3477:71:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4311, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4270, + "src": "3584:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 4312, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4242, + "src": "3599:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3584:26:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f50524f46495441424c45", + "id": 4314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3612:16:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + }, + "value": "NOT_PROFITABLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + } + ], + "id": 4310, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3576:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3576:53:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4316, + "nodeType": "ExpressionStatement", + "src": "3576:53:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4321, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4270, + "src": "3674:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4322, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4273, + "src": "3688:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4325, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "3710:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + ], + "id": 4324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3702:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4323, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3702:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 4327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3717:2:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4318, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "3658:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4317, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "3643:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3643:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 3995, + "src": "3643:30:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,address,bytes memory) external" + } + }, + "id": 4328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3643:77:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4329, + "nodeType": "ExpressionStatement", + "src": "3643:77:20" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_inverseArbitrage", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4238, + "mutability": "mutable", + "name": "isDODOBuy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4388, + "src": "2853:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4237, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2853:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4240, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4388, + "src": "2877:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2877:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4242, + "mutability": "mutable", + "name": "quoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4388, + "src": "2905:19:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2905:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2843:87:20" + }, + "returnParameters": { + "id": 4244, + "nodeType": "ParameterList", + "parameters": [], + "src": "2940:0:20" + }, + "scope": 4558, + "src": "2817:1438:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4539, + "nodeType": "Block", + "src": "4377:1315:20", + "statements": [ + { + "assignments": [ + 4398, + 4400, + null + ], + "declarations": [ + { + "constant": false, + "id": 4398, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4539, + "src": "4388:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4397, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "4388:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4400, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4539, + "src": "4407:17:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4399, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "4407:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 4406, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4402, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "4445:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4401, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "4430:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4430:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getReserves", + "nodeType": "MemberAccess", + "referencedDeclaration": 3984, + "src": "4430:37:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view external returns (uint112,uint112,uint32)" + } + }, + "id": 4405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4430:39:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4387:82:20" + }, + { + "assignments": [ + 4408 + ], + "declarations": [ + { + "constant": false, + "id": 4408, + "mutability": "mutable", + "name": "token0Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4539, + "src": "4479:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4479:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4413, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4411, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4398, + "src": "4511:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 4410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4503:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4503:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4503:18:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4479:42:20" + }, + { + "assignments": [ + 4415 + ], + "declarations": [ + { + "constant": false, + "id": 4415, + "mutability": "mutable", + "name": "token1Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4539, + "src": "4531:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4414, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4420, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4418, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4400, + "src": "4563:9:20", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 4417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4555:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4416, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4555:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4555:18:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4531:42:20" + }, + { + "assignments": [ + 4422 + ], + "declarations": [ + { + "constant": false, + "id": 4422, + "mutability": "mutable", + "name": "token0Amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4539, + "src": "4583:20:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4583:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4423, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4583:20:20" + }, + { + "assignments": [ + 4425 + ], + "declarations": [ + { + "constant": false, + "id": 4425, + "mutability": "mutable", + "name": "token1Amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4539, + "src": "4613:20:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4424, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4613:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4426, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "4613:20:20" + }, + { + "condition": { + "argumentTypes": null, + "id": 4427, + "name": "isDODOBuy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4390, + "src": "4647:9:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4537, + "nodeType": "Block", + "src": "5174:512:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4487, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "5213:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4488, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "5224:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4484, + "name": "_QUOTE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4010, + "src": "5195:7:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4483, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5188:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5188:15:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "5188:24:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5188:48:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4490, + "nodeType": "ExpressionStatement", + "src": "5188:48:20" + }, + { + "assignments": [ + 4492 + ], + "declarations": [ + { + "constant": false, + "id": 4492, + "mutability": "mutable", + "name": "newToken0Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4537, + "src": "5294:24:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5294:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4503, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4500, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "5393:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4498, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4415, + "src": "5375:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "5375:17:20", + "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": 4501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5375:30:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4495, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4408, + "src": "5339:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4493, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4415, + "src": "5321:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5321:17:20", + "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": 4496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5321:32:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "5321:36:20", + "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": 4502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5321:98:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5294:125:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4504, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4422, + "src": "5433:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 4513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5498:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "39393639", + "id": 4510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5488:4:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + }, + "value": "9969" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4507, + "name": "newToken0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4492, + "src": "5466:16:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4505, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4408, + "src": "5448:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "5448:17:20", + "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": 4508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5448:35:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "5448:39:20", + "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": 4511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5448:45:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "5448:49:20", + "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": 4514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5448:56:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5433:71:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4516, + "nodeType": "ExpressionStatement", + "src": "5433:71:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4518, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4422, + "src": "5540:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 4519, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4392, + "src": "5555:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5540:25:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f50524f46495441424c45", + "id": 4521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5567:16:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + }, + "value": "NOT_PROFITABLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + } + ], + "id": 4517, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5532:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5532:52:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4523, + "nodeType": "ExpressionStatement", + "src": "5532:52:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4528, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4422, + "src": "5629:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4529, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "5643:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4532, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5665:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + ], + "id": 4531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5657:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4530, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5657:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5657:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 4534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5672:2:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4525, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "5613:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4524, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "5598:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5598:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 3995, + "src": "5598:30:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,address,bytes memory) external" + } + }, + "id": 4535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5598:77:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4536, + "nodeType": "ExpressionStatement", + "src": "5598:77:20" + } + ] + }, + "id": 4538, + "nodeType": "IfStatement", + "src": "4643:1043:20", + "trueBody": { + "id": 4482, + "nodeType": "Block", + "src": "4658:510:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4432, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "4696:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4433, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4392, + "src": "4707:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4429, + "name": "_BASE_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4008, + "src": "4679:6:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4428, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "4672:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4672:14:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 10574, + "src": "4672:23:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4672:46:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4435, + "nodeType": "ExpressionStatement", + "src": "4672:46:20" + }, + { + "assignments": [ + 4437 + ], + "declarations": [ + { + "constant": false, + "id": 4437, + "mutability": "mutable", + "name": "newToken1Balance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4482, + "src": "4776:24:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4436, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4776:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4448, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4445, + "name": "baseAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4392, + "src": "4875:10:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4443, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4408, + "src": "4857:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 11582, + "src": "4857:17:20", + "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": 4446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4857:29:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4440, + "name": "token0Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4408, + "src": "4821:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4438, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4415, + "src": "4803:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "4803:17:20", + "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": 4441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4803:32:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "4803:36:20", + "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": 4447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4803:97:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4776:124:20" + }, + { + "expression": { + "argumentTypes": null, + "id": 4460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4449, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "4914:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 4458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4979:5:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "39393639", + "id": 4455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:4:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + }, + "value": "9969" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_9969_by_1", + "typeString": "int_const 9969" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4452, + "name": "newToken1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4437, + "src": "4947:16:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4450, + "name": "token1Balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4415, + "src": "4929:13:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 11557, + "src": "4929:17:20", + "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": 4453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4929:35:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 11478, + "src": "4929:39:20", + "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": 4456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4929:45:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 11499, + "src": "4929:49:20", + "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": 4459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4929:56:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4914:71:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4461, + "nodeType": "ExpressionStatement", + "src": "4914:71:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4463, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "5021:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 4464, + "name": "quoteAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "5036:11:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5021:26:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e4f545f50524f46495441424c45", + "id": 4466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5049:16:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + }, + "value": "NOT_PROFITABLE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ed9cb83f8e0a8cbd28c4025212bde92e5c49adb79749aec6363d598b55a8f5dd", + "typeString": "literal_string \"NOT_PROFITABLE\"" + } + ], + "id": 4462, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5013:7:20", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5013:53:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4468, + "nodeType": "ExpressionStatement", + "src": "5013:53:20" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4473, + "name": "token0Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4422, + "src": "5111:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4474, + "name": "token1Amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4425, + "src": "5125:12:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4477, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5147:4:20", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapArbitrageur_$4558", + "typeString": "contract UniswapArbitrageur" + } + ], + "id": 4476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5139:7:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4475, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5139:7:20", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 4478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5139:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 4479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5154:2:20", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4470, + "name": "_UNISWAP_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4004, + "src": "5095:9:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4469, + "name": "IUniswapV2Pair", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3996, + "src": "5080:14:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$3996_$", + "typeString": "type(contract IUniswapV2Pair)" + } + }, + "id": 4471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5080:25:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Pair_$3996", + "typeString": "contract IUniswapV2Pair" + } + }, + "id": 4472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "swap", + "nodeType": "MemberAccess", + "referencedDeclaration": 3995, + "src": "5080:30:20", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,address,bytes memory) external" + } + }, + "id": 4480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5080:77:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4481, + "nodeType": "ExpressionStatement", + "src": "5080:77:20" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4540, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_arbitrage", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4390, + "mutability": "mutable", + "name": "isDODOBuy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4540, + "src": "4290:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4389, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4290:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4392, + "mutability": "mutable", + "name": "baseAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4540, + "src": "4314:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4314:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4394, + "mutability": "mutable", + "name": "quoteAmount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4540, + "src": "4342:19:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4393, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4342:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4280:87:20" + }, + "returnParameters": { + "id": 4396, + "nodeType": "ParameterList", + "parameters": [], + "src": "4377:0:20" + }, + "scope": 4558, + "src": "4261:1431:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4556, + "nodeType": "Block", + "src": "5756:63:20", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4551, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5793:3:20", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5793:10:20", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4553, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4544, + "src": "5805:6:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4548, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4542, + "src": "5773:5:20", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4547, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10607, + "src": "5766:6:20", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$10607_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 4549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:13:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$10607", + "typeString": "contract IERC20" + } + }, + "id": 4550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "safeTransfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 11329, + "src": "5766:26:20", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$10607_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$10607_$", + "typeString": "function (contract IERC20,address,uint256)" + } + }, + "id": 4554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:46:20", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4555, + "nodeType": "ExpressionStatement", + "src": "5766:46:20" + } + ] + }, + "documentation": null, + "functionSelector": "c3a2a665", + "id": 4557, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "retrieve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4545, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4542, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4557, + "src": "5716:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4541, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5716:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4544, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4557, + "src": "5731:14:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5731:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5715:31:20" + }, + "returnParameters": { + "id": 4546, + "nodeType": "ParameterList", + "parameters": [], + "src": "5756:0:20" + }, + "scope": 4558, + "src": "5698:121:20", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 4559, + "src": "825:4996:20" + } + ], + "src": "78:5744:20" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.544Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/UniswapV2ERC20.json b/build-v1/contracts/UniswapV2ERC20.json new file mode 100644 index 0000000..ce63d19 --- /dev/null +++ b/build-v1/contracts/UniswapV2ERC20.json @@ -0,0 +1,59452 @@ +{ + "contractName": "UniswapV2ERC20", + "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": [], + "name": "DOMAIN_SEPARATOR", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PERMIT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "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": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "nonces", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "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": "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": "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" + }, + { + "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" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"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\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"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\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"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\":\"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\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":\"UniswapV2ERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":{\"keccak256\":\"0x13276cbc5f35abd8a8599841059a1b618e394bab470fb40ae1bf382f32603043\",\"urls\":[\"bzz-raw://3c7be65f25ff007e1ad9fab37105253b91b300e289153c4e6848e5bacaf7b9d3\",\"dweb:/ipfs/QmSEaJzNeFQRGX1JPsU7aNsjcZ9zFB7snRi5Fzosysk4kG\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5061087f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610336565b604080519115158252519081900360200190f35b61019961034d565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b03813581169160208101359091169060400135610353565b6101996103ed565b6101f1610411565b6040805160ff9092168252519081900360200190f35b610199610416565b6101996004803603602081101561022557600080fd5b50356001600160a01b031661041c565b6101996004803603602081101561024b57600080fd5b50356001600160a01b031661042e565b6100dc610440565b61017d6004803603604081101561027957600080fd5b506001600160a01b038135169060200135610462565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561046f565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610671565b6040518060400160405280600a8152602001692ab734b9bbb0b8102b1960b11b81525081565b600061034333848461068e565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103d8576001600160a01b03841660009081526002602090815260408083203384529091529020546103b3908363ffffffff6106f016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103e3848484610740565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b604051806040016040528060068152602001652aa72496ab1960d11b81525081565b6000610343338484610740565b428410156104b9576040805162461bcd60e51b8152602060048201526012602482015271155b9a5cddd85c158c8e881156141254915160721b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105d4573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061060a5750886001600160a01b0316816001600160a01b0316145b61065b576040805162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61066689898961068e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610347576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160a01b038316600090815260016020526040902054610769908263ffffffff6106f016565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461079e908263ffffffff6107fa16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b80820182811015610347576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea264697066735822122085851fcb2dce7079afb1362dcdd77a9cf96d9405eb09e287aad41428f4a8016464736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b411461025b578063a9059cbb14610263578063d505accf1461028f578063dd62ed3e146102e2576100cf565b80633644e5151461020757806370a082311461020f5780637ecebe0014610235576100cf565b806306fdde03146100d4578063095ea7b31461015157806318160ddd1461019157806323b872dd146101ab57806330adf81f146101e1578063313ce567146101e9575b600080fd5b6100dc610310565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101165781810151838201526020016100fe565b50505050905090810190601f1680156101435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61017d6004803603604081101561016757600080fd5b506001600160a01b038135169060200135610336565b604080519115158252519081900360200190f35b61019961034d565b60408051918252519081900360200190f35b61017d600480360360608110156101c157600080fd5b506001600160a01b03813581169160208101359091169060400135610353565b6101996103ed565b6101f1610411565b6040805160ff9092168252519081900360200190f35b610199610416565b6101996004803603602081101561022557600080fd5b50356001600160a01b031661041c565b6101996004803603602081101561024b57600080fd5b50356001600160a01b031661042e565b6100dc610440565b61017d6004803603604081101561027957600080fd5b506001600160a01b038135169060200135610462565b6102e0600480360360e08110156102a557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c0013561046f565b005b610199600480360360408110156102f857600080fd5b506001600160a01b0381358116916020013516610671565b6040518060400160405280600a8152602001692ab734b9bbb0b8102b1960b11b81525081565b600061034333848461068e565b5060015b92915050565b60005481565b6001600160a01b0383166000908152600260209081526040808320338452909152812054600019146103d8576001600160a01b03841660009081526002602090815260408083203384529091529020546103b3908363ffffffff6106f016565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b6103e3848484610740565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60016020526000908152604090205481565b60046020526000908152604090205481565b604051806040016040528060068152602001652aa72496ab1960d11b81525081565b6000610343338484610740565b428410156104b9576040805162461bcd60e51b8152602060048201526012602482015271155b9a5cddd85c158c8e881156141254915160721b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156105d4573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061060a5750886001600160a01b0316816001600160a01b0316145b61065b576040805162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b61066689898961068e565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b80820382811115610347576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160a01b038316600090815260016020526040902054610769908263ffffffff6106f016565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461079e908263ffffffff6107fa16565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b80820182811015610347576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfea264697066735822122085851fcb2dce7079afb1362dcdd77a9cf96d9405eb09e287aad41428f4a8016464736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "4876:3134:21:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "4876:3134:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4939:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6571:147;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6571:147:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5074:26;;;:::i;:::-;;;;;;;;;;;;;;;;6869:331;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6869:331:21;;;;;;;;;;;;;;;;;:::i;5368:108::-;;;:::i;5033:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5227:31;;;:::i;5106:44::-;;;;;;;;;;;;;;;;-1:-1:-1;5106:44:21;-1:-1:-1;;;;;5106:44:21;;:::i;5482:41::-;;;;;;;;;;;;;;;;-1:-1:-1;5482:41:21;-1:-1:-1;;;;;5482:41:21;;:::i;4987:40::-;;;:::i;6724:139::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6724:139:21;;;;;;;;:::i;7206:802::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7206:802:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5156:64;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5156:64:21;;;;;;;;;;:::i;4939:42::-;;;;;;;;;;;;;;-1:-1:-1;;;4939:42:21;;;;:::o;6571:147::-;6638:4;6654:36;6663:10;6675:7;6684:5;6654:8;:36::i;:::-;-1:-1:-1;6707:4:21;6571:147;;;;;:::o;5074:26::-;;;;:::o;6869:331::-;-1:-1:-1;;;;;7000:15:21;;6980:4;7000:15;;;:9;:15;;;;;;;;7016:10;7000:27;;;;;;;;-1:-1:-1;;7000:42:21;6996:141;;-1:-1:-1;;;;;7088:15:21;;;;;;:9;:15;;;;;;;;7104:10;7088:27;;;;;;;;:38;;7120:5;7088:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;7058:15:21;;;;;;:9;:15;;;;;;;;7074:10;7058:27;;;;;;;:68;6996:141;7146:26;7156:4;7162:2;7166:5;7146:9;:26::i;:::-;-1:-1:-1;7189:4:21;6869:331;;;;;:::o;5368:108::-;5410:66;5368:108;:::o;5033:35::-;5066:2;5033:35;:::o;5227:31::-;;;;:::o;5106:44::-;;;;;;;;;;;;;:::o;5482:41::-;;;;;;;;;;;;;:::o;4987:40::-;;;;;;;;;;;;;;-1:-1:-1;;;4987:40:21;;;;:::o;6724:139::-;6787:4;6803:32;6813:10;6825:2;6829:5;6803:9;:32::i;7206:802::-;7419:15;7407:8;:27;;7399:58;;;;;-1:-1:-1;;;7399:58:21;;;;;;;;;;;;-1:-1:-1;;;7399:58:21;;;;;;;;;;;;;;;7569:16;;-1:-1:-1;;;;;7685:13:21;;;7467:14;7685:13;;;:6;:13;;;;;;;;:15;;;;;;;;;7634:77;;5410:66;7634:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7603:126;;;;;;-1:-1:-1;;;7507:236:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7484:269;;;;;;;;;7790:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7467:14;;7685:15;7790:26;;;;;-1:-1:-1;;7790:26:21;;;;;;;;;;7685:15;7790:26;;;;;;;;;;;;;;;-1:-1:-1;;7790:26:21;;-1:-1:-1;;7790:26:21;;;-1:-1:-1;;;;;;;7847:30:21;;;;;;:59;;;7901:5;-1:-1:-1;;;;;7881:25:21;:16;-1:-1:-1;;;;;7881:25:21;;7847:59;7826:134;;;;;-1:-1:-1;;;7826:134:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;7970:31;7979:5;7986:7;7995:5;7970:8;:31::i;:::-;7206:802;;;;;;;;;:::o;5156:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;6111:199::-;-1:-1:-1;;;;;6224:16:21;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;6272:31;;;;;;;;;;;;;;;;;6111:199;;;:::o;4518:136::-;4610:5;;;4605:16;;;;4597:50;;;;;-1:-1:-1;;;4597:50:21;;;;;;;;;;;;-1:-1:-1;;;4597:50:21;;;;;;;;;;;;;;6316:249;-1:-1:-1;;;;;6442:15:21;;;;;;:9;:15;;;;;;:26;;6462:5;6442:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;6424:15:21;;;;;;;:9;:15;;;;;;:44;;;;6494:13;;;;;;;:24;;6512:5;6494:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;6478:13:21;;;;;;;:9;:13;;;;;;;;;:40;;;;6533:25;;;;;;;6478:13;;6533:25;;;;;;;;;;;;;6316:249;;;:::o;4377:135::-;4469:5;;;4464:16;;;;4456:49;;;;;-1:-1:-1;;;4456:49:21;;;;;;;;;;;;-1:-1:-1;;;4456:49:21;;;;;;;;;;;;;", + "source": "/**\n *Submitted for verification at Etherscan.io on 2020-05-05\n */\n\n// File: contracts/interfaces/IUniswapV2Pair.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Pair {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n function MINIMUM_LIQUIDITY() external pure returns (uint256);\n\n function factory() external view returns (address);\n\n function token0() external view returns (address);\n\n function token1() external view returns (address);\n\n function getReserves()\n external\n view\n returns (\n uint112 reserve0,\n uint112 reserve1,\n uint32 blockTimestampLast\n );\n\n function price0CumulativeLast() external view returns (uint256);\n\n function price1CumulativeLast() external view returns (uint256);\n\n function kLast() external view returns (uint256);\n\n function mint(address to) external returns (uint256 liquidity);\n\n function burn(address to) external returns (uint256 amount0, uint256 amount1);\n\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external;\n\n function skim(address to) external;\n\n function sync() external;\n\n function initialize(address, address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2ERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2ERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n}\n\n// File: contracts/libraries/SafeMath.sol\n\npragma solidity 0.6.9;\n\n// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)\n\nlibrary SafeMath {\n function add(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x + y) >= x, \"ds-math-add-overflow\");\n }\n\n function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x - y) <= x, \"ds-math-sub-underflow\");\n }\n\n function mul(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require(y == 0 || (z = x * y) / y == x, \"ds-math-mul-overflow\");\n }\n}\n\n// File: contracts/UniswapV2ERC20.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2ERC20 {\n using SafeMath for uint256;\n\n string public constant name = \"Uniswap V2\";\n string public constant symbol = \"UNI-V2\";\n uint8 public constant decimals = 18;\n uint256 public totalSupply;\n mapping(address => uint256) public balanceOf;\n mapping(address => mapping(address => uint256)) public allowance;\n\n bytes32 public DOMAIN_SEPARATOR;\n // keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\");\n bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\n mapping(address => uint256) public nonces;\n\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function _mint(address to, uint256 value) internal {\n totalSupply = totalSupply.add(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(address(0), to, value);\n }\n\n function _burn(address from, uint256 value) internal {\n balanceOf[from] = balanceOf[from].sub(value);\n totalSupply = totalSupply.sub(value);\n emit Transfer(from, address(0), value);\n }\n\n function _approve(\n address owner,\n address spender,\n uint256 value\n ) private {\n allowance[owner][spender] = value;\n emit Approval(owner, spender, value);\n }\n\n function _transfer(\n address from,\n address to,\n uint256 value\n ) private {\n balanceOf[from] = balanceOf[from].sub(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(from, to, value);\n }\n\n function approve(address spender, uint256 value) external returns (bool) {\n _approve(msg.sender, spender, value);\n return true;\n }\n\n function transfer(address to, uint256 value) external returns (bool) {\n _transfer(msg.sender, to, value);\n return true;\n }\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool) {\n if (allowance[from][msg.sender] != uint256(-1)) {\n allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);\n }\n _transfer(from, to, value);\n return true;\n }\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external {\n require(deadline >= block.timestamp, \"UniswapV2: EXPIRED\");\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n DOMAIN_SEPARATOR,\n keccak256(\n abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)\n )\n )\n );\n address recoveredAddress = ecrecover(digest, v, r, s);\n require(\n recoveredAddress != address(0) && recoveredAddress == owner,\n \"UniswapV2: INVALID_SIGNATURE\"\n );\n _approve(owner, spender, value);\n }\n}\n\n// File: contracts/libraries/Math.sol\n\npragma solidity 0.6.9;\n\n// a library for performing various math operations\n\nlibrary Math {\n function min(uint256 x, uint256 y) internal pure returns (uint256 z) {\n z = x < y ? x : y;\n }\n\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\n function sqrt(uint256 y) internal pure returns (uint256 z) {\n if (y > 3) {\n z = y;\n uint256 x = y / 2 + 1;\n while (x < z) {\n z = x;\n x = (y / x + x) / 2;\n }\n } else if (y != 0) {\n z = 1;\n }\n }\n}\n\n// File: contracts/libraries/UQ112x112.sol\n\npragma solidity 0.6.9;\n\n// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))\n\n// range: [0, 2**112 - 1]\n// resolution: 1 / 2**112\n\nlibrary UQ112x112 {\n uint224 constant Q112 = 2**112;\n\n // encode a uint112 as a UQ112x112\n function encode(uint112 y) internal pure returns (uint224 z) {\n z = uint224(y) * Q112; // never overflows\n }\n\n // divide a UQ112x112 by a uint112, returning a UQ112x112\n function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\n z = x / uint224(y);\n }\n}\n\n// File: contracts/interfaces/IERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external view returns (string memory);\n\n function symbol() external view returns (string memory);\n\n function decimals() external view returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n}\n\n// File: contracts/interfaces/IUniswapV2Factory.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Factory {\n event PairCreated(address indexed token0, address indexed token1, address pair, uint256);\n\n function feeTo() external view returns (address);\n\n function feeToSetter() external view returns (address);\n\n function getPair(address tokenA, address tokenB) external view returns (address pair);\n\n function allPairs(uint256) external view returns (address pair);\n\n function allPairsLength() external view returns (uint256);\n\n function createPair(address tokenA, address tokenB) external returns (address pair);\n\n function setFeeTo(address) external;\n\n function setFeeToSetter(address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2Callee.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Callee {\n function uniswapV2Call(\n address sender,\n uint256 amount0,\n uint256 amount1,\n bytes calldata data\n ) external;\n}\n\n// File: contracts/UniswapV2Pair.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2Pair is UniswapV2ERC20 {\n using SafeMath for uint256;\n using UQ112x112 for uint224;\n\n uint256 public constant MINIMUM_LIQUIDITY = 10**3;\n bytes4 private constant SELECTOR = bytes4(keccak256(bytes(\"transfer(address,uint256)\")));\n\n address public factory;\n address public token0;\n address public token1;\n\n uint112 private reserve0; // uses single storage slot, accessible via getReserves\n uint112 private reserve1; // uses single storage slot, accessible via getReserves\n uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\n\n uint256 public price0CumulativeLast;\n uint256 public price1CumulativeLast;\n uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\n\n uint256 private unlocked = 1;\n modifier lock() {\n require(unlocked == 1, \"UniswapV2: LOCKED\");\n unlocked = 0;\n _;\n unlocked = 1;\n }\n\n function getReserves()\n public\n view\n returns (\n uint112 _reserve0,\n uint112 _reserve1,\n uint32 _blockTimestampLast\n )\n {\n _reserve0 = reserve0;\n _reserve1 = reserve1;\n _blockTimestampLast = blockTimestampLast;\n }\n\n function _safeTransfer(\n address token,\n address to,\n uint256 value\n ) private {\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n \"UniswapV2: TRANSFER_FAILED\"\n );\n }\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n constructor() public {\n factory = msg.sender;\n }\n\n // called once by the factory at time of deployment\n function initialize(address _token0, address _token1) external {\n require(msg.sender == factory, \"UniswapV2: FORBIDDEN\"); // sufficient check\n token0 = _token0;\n token1 = _token1;\n }\n\n // update reserves and, on the first call per block, price accumulators\n function _update(\n uint256 balance0,\n uint256 balance1,\n uint112 _reserve0,\n uint112 _reserve1\n ) private {\n require(balance0 <= uint112(-1) && balance1 <= uint112(-1), \"UniswapV2: OVERFLOW\");\n uint32 blockTimestamp = uint32(block.timestamp % 2**32);\n uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\n if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {\n // * never overflows, and + overflow is desired\n price0CumulativeLast +=\n uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) *\n timeElapsed;\n price1CumulativeLast +=\n uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) *\n timeElapsed;\n }\n reserve0 = uint112(balance0);\n reserve1 = uint112(balance1);\n blockTimestampLast = blockTimestamp;\n emit Sync(reserve0, reserve1);\n }\n\n // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)\n function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {\n address feeTo = IUniswapV2Factory(factory).feeTo();\n feeOn = feeTo != address(0);\n uint256 _kLast = kLast; // gas savings\n if (feeOn) {\n if (_kLast != 0) {\n uint256 rootK = Math.sqrt(uint256(_reserve0).mul(_reserve1));\n uint256 rootKLast = Math.sqrt(_kLast);\n if (rootK > rootKLast) {\n uint256 numerator = totalSupply.mul(rootK.sub(rootKLast));\n uint256 denominator = rootK.mul(5).add(rootKLast);\n uint256 liquidity = numerator / denominator;\n if (liquidity > 0) _mint(feeTo, liquidity);\n }\n }\n } else if (_kLast != 0) {\n kLast = 0;\n }\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function mint(address to) external lock returns (uint256 liquidity) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n uint256 balance0 = IERC20(token0).balanceOf(address(this));\n uint256 balance1 = IERC20(token1).balanceOf(address(this));\n uint256 amount0 = balance0.sub(_reserve0);\n uint256 amount1 = balance1.sub(_reserve1);\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n if (_totalSupply == 0) {\n liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);\n _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens\n } else {\n liquidity = Math.min(\n amount0.mul(_totalSupply) / _reserve0,\n amount1.mul(_totalSupply) / _reserve1\n );\n }\n require(liquidity > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\");\n _mint(to, liquidity);\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Mint(msg.sender, amount0, amount1);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function burn(address to) external lock returns (uint256 amount0, uint256 amount1) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n uint256 balance0 = IERC20(_token0).balanceOf(address(this));\n uint256 balance1 = IERC20(_token1).balanceOf(address(this));\n uint256 liquidity = balanceOf[address(this)];\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution\n amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution\n require(amount0 > 0 && amount1 > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\");\n _burn(address(this), liquidity);\n _safeTransfer(_token0, to, amount0);\n _safeTransfer(_token1, to, amount1);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Burn(msg.sender, amount0, amount1, to);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external lock {\n require(amount0Out > 0 || amount1Out > 0, \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\");\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n require(\n amount0Out < _reserve0 && amount1Out < _reserve1,\n \"UniswapV2: INSUFFICIENT_LIQUIDITY\"\n );\n\n uint256 balance0;\n uint256 balance1;\n {\n // scope for _token{0,1}, avoids stack too deep errors\n address _token0 = token0;\n address _token1 = token1;\n require(to != _token0 && to != _token1, \"UniswapV2: INVALID_TO\");\n if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens\n if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens\n if (data.length > 0)\n IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n }\n uint256 amount0In = balance0 > _reserve0 - amount0Out\n ? balance0 - (_reserve0 - amount0Out)\n : 0;\n uint256 amount1In = balance1 > _reserve1 - amount1Out\n ? balance1 - (_reserve1 - amount1Out)\n : 0;\n require(amount0In > 0 || amount1In > 0, \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\");\n {\n // scope for reserve{0,1}Adjusted, avoids stack too deep errors\n uint256 balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));\n uint256 balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));\n require(\n balance0Adjusted.mul(balance1Adjusted) >=\n uint256(_reserve0).mul(_reserve1).mul(1000**2),\n \"UniswapV2: K\"\n );\n }\n\n _update(balance0, balance1, _reserve0, _reserve1);\n emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);\n }\n\n // force balances to match reserves\n function skim(address to) external lock {\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));\n _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));\n }\n\n // force reserves to match balances\n function sync() external lock {\n _update(\n IERC20(token0).balanceOf(address(this)),\n IERC20(token1).balanceOf(address(this)),\n reserve0,\n reserve1\n );\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.641Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/UniswapV2Pair.json b/build-v1/contracts/UniswapV2Pair.json new file mode 100644 index 0000000..0b39434 --- /dev/null +++ b/build-v1/contracts/UniswapV2Pair.json @@ -0,0 +1,59798 @@ +{ + "contractName": "UniswapV2Pair", + "abi": [ + { + "inputs": [], + "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": "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": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PERMIT_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "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": "", + "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": "factory", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "kLast", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "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": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "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" + }, + { + "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": "_token0", + "type": "address" + }, + { + "internalType": "address", + "name": "_token1", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "liquidity", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "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": [ + { + "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": [ + { + "internalType": "address", + "name": "to", + "type": "address" + } + ], + "name": "skim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "sync", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"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\":\"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\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"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\":\"\",\"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\":\"view\",\"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\":\"_token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token1\",\"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\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"view\",\"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\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":\"UniswapV2Pair\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol\":{\"keccak256\":\"0x13276cbc5f35abd8a8599841059a1b618e394bab470fb40ae1bf382f32603043\",\"urls\":[\"bzz-raw://3c7be65f25ff007e1ad9fab37105253b91b300e289153c4e6848e5bacaf7b9d3\",\"dweb:/ipfs/QmSEaJzNeFQRGX1JPsU7aNsjcZ9zFB7snRi5Fzosysk4kG\"]}},\"version\":1}", + "bytecode": "0x60806040526001600c5534801561001557600080fd5b50600580546001600160a01b03191633179055612282806100376000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610534578063d505accf1461053c578063dd62ed3e1461058d578063fff6cae9146105bb576101a9565b8063ba9a7a56146104fe578063bc25cf7714610506578063c45a01551461052c576101a9565b80637ecebe00116100d35780637ecebe001461046557806389afcb441461048b57806395d89b41146104ca578063a9059cbb146104d2576101a9565b80636a6278421461041157806370a08231146104375780637464fc3d1461045d576101a9565b806323b872dd116101665780633644e515116101405780633644e515146103cb578063485cc955146103d35780635909c0d5146104015780635a3d549314610409576101a9565b806323b872dd1461036f57806330adf81f146103a5578063313ce567146103ad576101a9565b8063022c0d9f146101ae57806306fdde031461023c5780630902f1ac146102b9578063095ea7b3146102f15780630dfe16811461033157806318160ddd14610355575b600080fd5b61023a600480360360808110156101c457600080fd5b8135916020810135916001600160a01b0360408301351691908101906080810160608201356401000000008111156101fb57600080fd5b82018360208201111561020d57600080fd5b8035906020019184600183028401116401000000008311171561022f57600080fd5b5090925090506105c3565b005b610244610afe565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027e578181015183820152602001610266565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c1610b24565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b61031d6004803603604081101561030757600080fd5b506001600160a01b038135169060200135610b4e565b604080519115158252519081900360200190f35b610339610b65565b604080516001600160a01b039092168252519081900360200190f35b61035d610b74565b60408051918252519081900360200190f35b61031d6004803603606081101561038557600080fd5b506001600160a01b03813581169160208101359091169060400135610b7a565b61035d610c14565b6103b5610c38565b6040805160ff9092168252519081900360200190f35b61035d610c3d565b61023a600480360360408110156103e957600080fd5b506001600160a01b0381358116916020013516610c43565b61035d610cc7565b61035d610ccd565b61035d6004803603602081101561042757600080fd5b50356001600160a01b0316610cd3565b61035d6004803603602081101561044d57600080fd5b50356001600160a01b0316610fd3565b61035d610fe5565b61035d6004803603602081101561047b57600080fd5b50356001600160a01b0316610feb565b6104b1600480360360208110156104a157600080fd5b50356001600160a01b0316610ffd565b6040805192835260208301919091528051918290030190f35b6102446113a3565b61031d600480360360408110156104e857600080fd5b506001600160a01b0381351690602001356113c5565b61035d6113d2565b61023a6004803603602081101561051c57600080fd5b50356001600160a01b03166113d8565b610339611543565b610339611552565b61023a600480360360e081101561055257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611561565b61035d600480360360408110156105a357600080fd5b506001600160a01b0381358116916020013516611763565b61023a611780565b600c5460011461060e576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55841515806106215750600084115b61065c5760405162461bcd60e51b81526004018080602001828103825260258152602001806121936025913960400191505060405180910390fd5b600080610667610b24565b5091509150816001600160701b03168710801561068c5750806001600160701b031686105b6106c75760405162461bcd60e51b81526004018080602001828103825260218152602001806121dc6021913960400191505060405180910390fd5b60065460075460009182916001600160a01b039182169190811690891682148015906107055750806001600160a01b0316896001600160a01b031614155b61074e576040805162461bcd60e51b8152602060048201526015602482015274556e697377617056323a20494e56414c49445f544f60581b604482015290519081900360640190fd5b8a1561075f5761075f828a8d6118e2565b891561077057610770818a8c6118e2565b861561082b57886001600160a01b03166310d1e85c338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561081257600080fd5b505af1158015610826573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561087157600080fd5b505afa158015610885573d6000803e3d6000fd5b505050506040513d602081101561089b57600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108e757600080fd5b505afa1580156108fb573d6000803e3d6000fd5b505050506040513d602081101561091157600080fd5b5051925060009150506001600160701b0385168a90038311610934576000610943565b89856001600160701b03160383035b9050600089856001600160701b031603831161096057600061096f565b89856001600160701b03160383035b905060008211806109805750600081115b6109bb5760405162461bcd60e51b81526004018080602001828103825260248152602001806121b86024913960400191505060405180910390fd5b60006109ef6109d184600363ffffffff611a7c16565b6109e3876103e863ffffffff611a7c16565b9063ffffffff611adf16565b90506000610a076109d184600363ffffffff611a7c16565b9050610a38620f4240610a2c6001600160701b038b8116908b1663ffffffff611a7c16565b9063ffffffff611a7c16565b610a48838363ffffffff611a7c16565b1015610a8a576040805162461bcd60e51b815260206004820152600c60248201526b556e697377617056323a204b60a01b604482015290519081900360640190fd5b5050610a9884848888611b2f565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a8152602001692ab734b9bbb0b8102b1960b11b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b5b338484611cf4565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610bff576001600160a01b0384166000908152600260209081526040808320338452909152902054610bda908363ffffffff611adf16565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610c0a848484611d56565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610c99576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610d20576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c81905580610d30610b24565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d8457600080fd5b505afa158015610d98573d6000803e3d6000fd5b505050506040513d6020811015610dae57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610e0157600080fd5b505afa158015610e15573d6000803e3d6000fd5b505050506040513d6020811015610e2b57600080fd5b505190506000610e4a836001600160701b03871663ffffffff611adf16565b90506000610e67836001600160701b03871663ffffffff611adf16565b90506000610e758787611e10565b60005490915080610eb257610e9e6103e86109e3610e99878763ffffffff611a7c16565b611f6e565b9850610ead60006103e8611fc0565b610f01565b610efe6001600160701b038916610ecf868463ffffffff611a7c16565b81610ed657fe5b046001600160701b038916610ef1868563ffffffff611a7c16565b81610ef857fe5b04612056565b98505b60008911610f405760405162461bcd60e51b81526004018080602001828103825260288152602001806122256028913960400191505060405180910390fd5b610f4a8a8a611fc0565b610f5686868a8a611b2f565b8115610f8657600854610f82906001600160701b0380821691600160701b90041663ffffffff611a7c16565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461104b576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c8190558061105b610b24565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b1580156110b757600080fd5b505afa1580156110cb573d6000803e3d6000fd5b505050506040513d60208110156110e157600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561112f57600080fd5b505afa158015611143573d6000803e3d6000fd5b505050506040513d602081101561115957600080fd5b5051306000908152600160205260408120549192506111788888611e10565b6000549091508061118f848763ffffffff611a7c16565b8161119657fe5b049a50806111aa848663ffffffff611a7c16565b816111b157fe5b04995060008b1180156111c4575060008a115b6111ff5760405162461bcd60e51b81526004018080602001828103825260288152602001806121fd6028913960400191505060405180910390fd5b611209308461206e565b611214878d8d6118e2565b61121f868d8c6118e2565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561126557600080fd5b505afa158015611279573d6000803e3d6000fd5b505050506040513d602081101561128f57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b1580156112db57600080fd5b505afa1580156112ef573d6000803e3d6000fd5b505050506040513d602081101561130557600080fd5b5051935061131585858b8b611b2f565b811561134557600854611341906001600160701b0380821691600160701b90041663ffffffff611a7c16565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b604051806040016040528060068152602001652aa72496ab1960d11b81525081565b6000610b5b338484611d56565b6103e881565b600c54600114611423576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b0394851694909316926114d292859287926114cd926001600160701b03169185916370a0823191602480820192602092909190829003018186803b15801561149557600080fd5b505afa1580156114a9573d6000803e3d6000fd5b505050506040513d60208110156114bf57600080fd5b50519063ffffffff611adf16565b6118e2565b600854604080516370a0823160e01b8152306004820152905161153992849287926114cd92600160701b90046001600160701b0316916001600160a01b038616916370a0823191602480820192602092909190829003018186803b15801561149557600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b428410156115ab576040805162461bcd60e51b8152602060048201526012602482015271155b9a5cddd85c158c8e881156141254915160721b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156116c6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906116fc5750886001600160a01b0316816001600160a01b0316145b61174d576040805162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611758898989611cf4565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c546001146117cb576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b815230600482015290516118db926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561181c57600080fd5b505afa158015611830573d6000803e3d6000fd5b505050506040513d602081101561184657600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561189357600080fd5b505afa1580156118a7573d6000803e3d6000fd5b505050506040513d60208110156118bd57600080fd5b50516008546001600160701b0380821691600160701b900416611b2f565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b6020831061198f5780518252601f199092019160209182019101611970565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146119f1576040519150601f19603f3d011682016040523d82523d6000602084013e6119f6565b606091505b5091509150818015611a24575080511580611a245750808060200190516020811015611a2157600080fd5b50515b611a75576040805162461bcd60e51b815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b6000811580611a9757505080820282828281611a9457fe5b04145b610b5f576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b5f576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611b4d57506001600160701b038311155b611b94576040805162461bcd60e51b8152602060048201526013602482015272556e697377617056323a204f564552464c4f5760681b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611bc457506001600160701b03841615155b8015611bd857506001600160701b03831615155b15611c49578063ffffffff16611c0685611bf18661210c565b6001600160e01b03169063ffffffff61211e16565b600980546001600160e01b03929092169290920201905563ffffffff8116611c3184611bf18761210c565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611d7f908263ffffffff611adf16565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611db4908263ffffffff61214316565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6157600080fd5b505afa158015611e75573d6000803e3d6000fd5b505050506040513d6020811015611e8b57600080fd5b5051600b546001600160a01b038216158015945091925090611f5a578015611f55576000611ece610e996001600160701b0388811690881663ffffffff611a7c16565b90506000611edb83611f6e565b905080821115611f52576000611f09611efa848463ffffffff611adf16565b6000549063ffffffff611a7c16565b90506000611f2e83611f2286600563ffffffff611a7c16565b9063ffffffff61214316565b90506000818381611f3b57fe5b0490508015611f4e57611f4e8782611fc0565b5050505b50505b611f66565b8015611f66576000600b555b505092915050565b60006003821115611fb1575080600160028204015b81811015611fab57809150600281828581611f9a57fe5b040181611fa357fe5b049050611f83565b50611fbb565b8115611fbb575060015b919050565b600054611fd3908263ffffffff61214316565b60009081556001600160a01b038316815260016020526040902054611ffe908263ffffffff61214316565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106120655781612067565b825b9392505050565b6001600160a01b038216600090815260016020526040902054612097908263ffffffff611adf16565b6001600160a01b038316600090815260016020526040812091909155546120c4908263ffffffff611adf16565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161213b57fe5b049392505050565b80820182811015610b5f576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220dfe422fce9615ec1f80c1f8a063e80317755f61383c2aae25f0731d4f6bf9d0164736f6c63430006090033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a714610534578063d505accf1461053c578063dd62ed3e1461058d578063fff6cae9146105bb576101a9565b8063ba9a7a56146104fe578063bc25cf7714610506578063c45a01551461052c576101a9565b80637ecebe00116100d35780637ecebe001461046557806389afcb441461048b57806395d89b41146104ca578063a9059cbb146104d2576101a9565b80636a6278421461041157806370a08231146104375780637464fc3d1461045d576101a9565b806323b872dd116101665780633644e515116101405780633644e515146103cb578063485cc955146103d35780635909c0d5146104015780635a3d549314610409576101a9565b806323b872dd1461036f57806330adf81f146103a5578063313ce567146103ad576101a9565b8063022c0d9f146101ae57806306fdde031461023c5780630902f1ac146102b9578063095ea7b3146102f15780630dfe16811461033157806318160ddd14610355575b600080fd5b61023a600480360360808110156101c457600080fd5b8135916020810135916001600160a01b0360408301351691908101906080810160608201356401000000008111156101fb57600080fd5b82018360208201111561020d57600080fd5b8035906020019184600183028401116401000000008311171561022f57600080fd5b5090925090506105c3565b005b610244610afe565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561027e578181015183820152602001610266565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c1610b24565b604080516001600160701b03948516815292909316602083015263ffffffff168183015290519081900360600190f35b61031d6004803603604081101561030757600080fd5b506001600160a01b038135169060200135610b4e565b604080519115158252519081900360200190f35b610339610b65565b604080516001600160a01b039092168252519081900360200190f35b61035d610b74565b60408051918252519081900360200190f35b61031d6004803603606081101561038557600080fd5b506001600160a01b03813581169160208101359091169060400135610b7a565b61035d610c14565b6103b5610c38565b6040805160ff9092168252519081900360200190f35b61035d610c3d565b61023a600480360360408110156103e957600080fd5b506001600160a01b0381358116916020013516610c43565b61035d610cc7565b61035d610ccd565b61035d6004803603602081101561042757600080fd5b50356001600160a01b0316610cd3565b61035d6004803603602081101561044d57600080fd5b50356001600160a01b0316610fd3565b61035d610fe5565b61035d6004803603602081101561047b57600080fd5b50356001600160a01b0316610feb565b6104b1600480360360208110156104a157600080fd5b50356001600160a01b0316610ffd565b6040805192835260208301919091528051918290030190f35b6102446113a3565b61031d600480360360408110156104e857600080fd5b506001600160a01b0381351690602001356113c5565b61035d6113d2565b61023a6004803603602081101561051c57600080fd5b50356001600160a01b03166113d8565b610339611543565b610339611552565b61023a600480360360e081101561055257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611561565b61035d600480360360408110156105a357600080fd5b506001600160a01b0381358116916020013516611763565b61023a611780565b600c5460011461060e576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55841515806106215750600084115b61065c5760405162461bcd60e51b81526004018080602001828103825260258152602001806121936025913960400191505060405180910390fd5b600080610667610b24565b5091509150816001600160701b03168710801561068c5750806001600160701b031686105b6106c75760405162461bcd60e51b81526004018080602001828103825260218152602001806121dc6021913960400191505060405180910390fd5b60065460075460009182916001600160a01b039182169190811690891682148015906107055750806001600160a01b0316896001600160a01b031614155b61074e576040805162461bcd60e51b8152602060048201526015602482015274556e697377617056323a20494e56414c49445f544f60581b604482015290519081900360640190fd5b8a1561075f5761075f828a8d6118e2565b891561077057610770818a8c6118e2565b861561082b57886001600160a01b03166310d1e85c338d8d8c8c6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b03168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561081257600080fd5b505af1158015610826573d6000803e3d6000fd5b505050505b604080516370a0823160e01b815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b15801561087157600080fd5b505afa158015610885573d6000803e3d6000fd5b505050506040513d602081101561089b57600080fd5b5051604080516370a0823160e01b815230600482015290519195506001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156108e757600080fd5b505afa1580156108fb573d6000803e3d6000fd5b505050506040513d602081101561091157600080fd5b5051925060009150506001600160701b0385168a90038311610934576000610943565b89856001600160701b03160383035b9050600089856001600160701b031603831161096057600061096f565b89856001600160701b03160383035b905060008211806109805750600081115b6109bb5760405162461bcd60e51b81526004018080602001828103825260248152602001806121b86024913960400191505060405180910390fd5b60006109ef6109d184600363ffffffff611a7c16565b6109e3876103e863ffffffff611a7c16565b9063ffffffff611adf16565b90506000610a076109d184600363ffffffff611a7c16565b9050610a38620f4240610a2c6001600160701b038b8116908b1663ffffffff611a7c16565b9063ffffffff611a7c16565b610a48838363ffffffff611a7c16565b1015610a8a576040805162461bcd60e51b815260206004820152600c60248201526b556e697377617056323a204b60a01b604482015290519081900360640190fd5b5050610a9884848888611b2f565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a8152602001692ab734b9bbb0b8102b1960b11b81525081565b6008546001600160701b0380821692600160701b830490911691600160e01b900463ffffffff1690565b6000610b5b338484611cf4565b5060015b92915050565b6006546001600160a01b031681565b60005481565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001914610bff576001600160a01b0384166000908152600260209081526040808320338452909152902054610bda908363ffffffff611adf16565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b610c0a848484611d56565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b6005546001600160a01b03163314610c99576040805162461bcd60e51b81526020600482015260146024820152732ab734b9bbb0b82b191d102327a92124a22222a760611b604482015290519081900360640190fd5b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c54600114610d20576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c81905580610d30610b24565b50600654604080516370a0823160e01b815230600482015290519395509193506000926001600160a01b03909116916370a08231916024808301926020929190829003018186803b158015610d8457600080fd5b505afa158015610d98573d6000803e3d6000fd5b505050506040513d6020811015610dae57600080fd5b5051600754604080516370a0823160e01b815230600482015290519293506000926001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610e0157600080fd5b505afa158015610e15573d6000803e3d6000fd5b505050506040513d6020811015610e2b57600080fd5b505190506000610e4a836001600160701b03871663ffffffff611adf16565b90506000610e67836001600160701b03871663ffffffff611adf16565b90506000610e758787611e10565b60005490915080610eb257610e9e6103e86109e3610e99878763ffffffff611a7c16565b611f6e565b9850610ead60006103e8611fc0565b610f01565b610efe6001600160701b038916610ecf868463ffffffff611a7c16565b81610ed657fe5b046001600160701b038916610ef1868563ffffffff611a7c16565b81610ef857fe5b04612056565b98505b60008911610f405760405162461bcd60e51b81526004018080602001828103825260288152602001806122256028913960400191505060405180910390fd5b610f4a8a8a611fc0565b610f5686868a8a611b2f565b8115610f8657600854610f82906001600160701b0380821691600160701b90041663ffffffff611a7c16565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461104b576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c8190558061105b610b24565b50600654600754604080516370a0823160e01b815230600482015290519496509294506001600160a01b039182169391169160009184916370a08231916024808301926020929190829003018186803b1580156110b757600080fd5b505afa1580156110cb573d6000803e3d6000fd5b505050506040513d60208110156110e157600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038516916370a08231916024808301926020929190829003018186803b15801561112f57600080fd5b505afa158015611143573d6000803e3d6000fd5b505050506040513d602081101561115957600080fd5b5051306000908152600160205260408120549192506111788888611e10565b6000549091508061118f848763ffffffff611a7c16565b8161119657fe5b049a50806111aa848663ffffffff611a7c16565b816111b157fe5b04995060008b1180156111c4575060008a115b6111ff5760405162461bcd60e51b81526004018080602001828103825260288152602001806121fd6028913960400191505060405180910390fd5b611209308461206e565b611214878d8d6118e2565b61121f868d8c6118e2565b604080516370a0823160e01b815230600482015290516001600160a01b038916916370a08231916024808301926020929190829003018186803b15801561126557600080fd5b505afa158015611279573d6000803e3d6000fd5b505050506040513d602081101561128f57600080fd5b5051604080516370a0823160e01b815230600482015290519196506001600160a01b038816916370a0823191602480820192602092909190829003018186803b1580156112db57600080fd5b505afa1580156112ef573d6000803e3d6000fd5b505050506040513d602081101561130557600080fd5b5051935061131585858b8b611b2f565b811561134557600854611341906001600160701b0380821691600160701b90041663ffffffff611a7c16565b600b555b604080518c8152602081018c905281516001600160a01b038f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b604051806040016040528060068152602001652aa72496ab1960d11b81525081565b6000610b5b338484611d56565b6103e881565b600c54600114611423576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654600754600854604080516370a0823160e01b815230600482015290516001600160a01b0394851694909316926114d292859287926114cd926001600160701b03169185916370a0823191602480820192602092909190829003018186803b15801561149557600080fd5b505afa1580156114a9573d6000803e3d6000fd5b505050506040513d60208110156114bf57600080fd5b50519063ffffffff611adf16565b6118e2565b600854604080516370a0823160e01b8152306004820152905161153992849287926114cd92600160701b90046001600160701b0316916001600160a01b038616916370a0823191602480820192602092909190829003018186803b15801561149557600080fd5b50506001600c5550565b6005546001600160a01b031681565b6007546001600160a01b031681565b428410156115ab576040805162461bcd60e51b8152602060048201526012602482015271155b9a5cddd85c158c8e881156141254915160721b604482015290519081900360640190fd5b6003546001600160a01b0380891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e08501825280519083012061190160f01b6101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e280820193601f1981019281900390910190855afa1580156116c6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906116fc5750886001600160a01b0316816001600160a01b0316145b61174d576040805162461bcd60e51b815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611758898989611cf4565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c546001146117cb576040805162461bcd60e51b8152602060048201526011602482015270155b9a5cddd85c158c8e881313d0d2d151607a1b604482015290519081900360640190fd5b6000600c55600654604080516370a0823160e01b815230600482015290516118db926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561181c57600080fd5b505afa158015611830573d6000803e3d6000fd5b505050506040513d602081101561184657600080fd5b5051600754604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561189357600080fd5b505afa1580156118a7573d6000803e3d6000fd5b505050506040513d60208110156118bd57600080fd5b50516008546001600160701b0380821691600160701b900416611b2f565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b1781529251815160009460609489169392918291908083835b6020831061198f5780518252601f199092019160209182019101611970565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146119f1576040519150601f19603f3d011682016040523d82523d6000602084013e6119f6565b606091505b5091509150818015611a24575080511580611a245750808060200190516020811015611a2157600080fd5b50515b611a75576040805162461bcd60e51b815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b6000811580611a9757505080820282828281611a9457fe5b04145b610b5f576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820382811115610b5f576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6001600160701b038411801590611b4d57506001600160701b038311155b611b94576040805162461bcd60e51b8152602060048201526013602482015272556e697377617056323a204f564552464c4f5760681b604482015290519081900360640190fd5b60085463ffffffff42811691600160e01b90048116820390811615801590611bc457506001600160701b03841615155b8015611bd857506001600160701b03831615155b15611c49578063ffffffff16611c0685611bf18661210c565b6001600160e01b03169063ffffffff61211e16565b600980546001600160e01b03929092169290920201905563ffffffff8116611c3184611bf18761210c565b600a80546001600160e01b0392909216929092020190555b600880546dffffffffffffffffffffffffffff19166001600160701b03888116919091176dffffffffffffffffffffffffffff60701b1916600160701b8883168102919091176001600160e01b0316600160e01b63ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316600090815260016020526040902054611d7f908263ffffffff611adf16565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611db4908263ffffffff61214316565b6001600160a01b0380841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a90046001600160a01b03166001600160a01b031663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b158015611e6157600080fd5b505afa158015611e75573d6000803e3d6000fd5b505050506040513d6020811015611e8b57600080fd5b5051600b546001600160a01b038216158015945091925090611f5a578015611f55576000611ece610e996001600160701b0388811690881663ffffffff611a7c16565b90506000611edb83611f6e565b905080821115611f52576000611f09611efa848463ffffffff611adf16565b6000549063ffffffff611a7c16565b90506000611f2e83611f2286600563ffffffff611a7c16565b9063ffffffff61214316565b90506000818381611f3b57fe5b0490508015611f4e57611f4e8782611fc0565b5050505b50505b611f66565b8015611f66576000600b555b505092915050565b60006003821115611fb1575080600160028204015b81811015611fab57809150600281828581611f9a57fe5b040181611fa357fe5b049050611f83565b50611fbb565b8115611fbb575060015b919050565b600054611fd3908263ffffffff61214316565b60009081556001600160a01b038316815260016020526040902054611ffe908263ffffffff61214316565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183106120655781612067565b825b9392505050565b6001600160a01b038216600090815260016020526040902054612097908263ffffffff611adf16565b6001600160a01b038316600090815260016020526040812091909155546120c4908263ffffffff611adf16565b60009081556040805183815290516001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6001600160701b0316600160701b0290565b60006001600160701b0382166001600160e01b0384168161213b57fe5b049392505050565b80820182811015610b5f576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a2646970667358221220dfe422fce9615ec1f80c1f8a063e80317755f61383c2aae25f0731d4f6bf9d0164736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "11264:10162:21:-:0;;;12094:1;12067:28;;13315:58;;;;;;;;;-1:-1:-1;13346:7:21;:20;;-1:-1:-1;;;;;;13346:20:21;13356:10;13346:20;;;11264:10162;;;;;;", + "deployedSourceMap": "11264:10162:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18630:2159;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18630:2159:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18630:2159:21;;-1:-1:-1;18630:2159:21;-1:-1:-1;18630:2159:21;:::i;:::-;;4939:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12238:301;;;:::i;:::-;;;;-1:-1:-1;;;;;12238:301:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6571:147;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6571:147:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;11555:21;;;:::i;:::-;;;;-1:-1:-1;;;;;11555:21:21;;;;;;;;;;;;;;5074:26;;;:::i;:::-;;;;;;;;;;;;;;;;6869:331;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6869:331:21;;;;;;;;;;;;;;;;;:::i;5368:108::-;;;:::i;5033:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5227:31;;;:::i;13435:206::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13435:206:21;;;;;;;;;;:::i;11878:35::-;;;:::i;11919:::-;;;:::i;15720:1288::-;;;;;;;;;;;;;;;;-1:-1:-1;15720:1288:21;-1:-1:-1;;;;;15720:1288:21;;:::i;5106:44::-;;;;;;;;;;;;;;;;-1:-1:-1;5106:44:21;-1:-1:-1;;;;;5106:44:21;;:::i;11960:20::-;;;:::i;5482:41::-;;;;;;;;;;;;;;;;-1:-1:-1;5482:41:21;-1:-1:-1;;;;;5482:41:21;;:::i;17117:1404::-;;;;;;;;;;;;;;;;-1:-1:-1;17117:1404:21;-1:-1:-1;;;;;17117:1404:21;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4987:40;;;:::i;6724:139::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6724:139:21;;;;;;;;:::i;11377:49::-;;;:::i;20835:329::-;;;;;;;;;;;;;;;;-1:-1:-1;20835:329:21;-1:-1:-1;;;;;20835:329:21;;:::i;11527:22::-;;;:::i;11582:21::-;;;:::i;7206:802::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7206:802:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5156:64::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5156:64:21;;;;;;;;;;:::i;21210:214::-;;;:::i;18630:2159::-;12135:8;;12147:1;12135:13;12127:43;;;;;-1:-1:-1;;;12127:43:21;;;;;;;;;;;;-1:-1:-1;;;12127:43:21;;;;;;;;;;;;;;;12191:1;12180:8;:12;18787:14;;;;:32:::1;;;18818:1;18805:10;:14;18787:32;18779:82;;;;-1:-1:-1::0;;;18779:82:21::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18872:17;18891::::0;18914:13:::1;:11;:13::i;:::-;18871:56;;;;;18986:9;-1:-1:-1::0;;;;;18973:22:21::1;:10;:22;:48;;;;;19012:9;-1:-1:-1::0;;;;;18999:22:21::1;:10;:22;18973:48;18952:128;;;;-1:-1:-1::0;;;18952:128:21::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19242:6;::::0;19280::::1;::::0;19091:16:::1;::::0;;;-1:-1:-1;;;;;19242:6:21;;::::1;::::0;19280;;::::1;::::0;19308:13;::::1;::::0;::::1;::::0;::::1;::::0;:30:::1;;;19331:7;-1:-1:-1::0;;;;;19325:13:21::1;:2;-1:-1:-1::0;;;;;19325:13:21::1;;;19308:30;19300:64;;;::::0;;-1:-1:-1;;;19300:64:21;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;19300:64:21;;;;;;;;;;;;;::::1;;19382:14:::0;;19378:58:::1;;19398:38;19412:7;19421:2;19425:10;19398:13;:38::i;:::-;19488:14:::0;;19484:58:::1;;19504:38;19518:7;19527:2;19531:10;19504:13;:38::i;:::-;19594:15:::0;;19590:113:::1;;19644:2;-1:-1:-1::0;;;;;19627:34:21::1;;19662:10;19674;19686;19698:4;;19627:76;;;;;;;;;;;;;-1:-1:-1::0;;;;;19627:76:21::1;-1:-1:-1::0;;;;;19627:76:21::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19590:113;19728:40;::::0;;-1:-1:-1;;;19728:40:21;;19762:4:::1;19728:40;::::0;::::1;::::0;;;-1:-1:-1;;;;;19728:25:21;::::1;::::0;::::1;::::0;:40;;;;;::::1;::::0;;;;;;;;:25;:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;19728:40:21;19793::::1;::::0;;-1:-1:-1;;;19793:40:21;;19827:4:::1;19793:40;::::0;::::1;::::0;;;19728;;-1:-1:-1;;;;;;19793:25:21;::::1;::::0;::::1;::::0;:40;;;;;19728::::1;::::0;19793;;;;;;;;:25;:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;19793:40:21;;-1:-1:-1;19853:17:21::1;::::0;-1:-1:-1;;;;;;;19884:22:21;::::1;::::0;;::::1;19873:33:::0;::::1;:99;;19971:1;19873:99;;;19945:10;19933:9;-1:-1:-1::0;;;;;19933:22:21::1;;19921:8;:35;19873:99;19853:119;;19982:17;20025:10;20013:9;-1:-1:-1::0;;;;;20013:22:21::1;;20002:8;:33;:99;;20100:1;20002:99;;;20074:10;20062:9;-1:-1:-1::0;;;;;20062:22:21::1;;20050:8;:35;20002:99;19982:119;;20131:1;20119:9;:13;:30;;;;20148:1;20136:9;:13;20119:30;20111:79;;;;-1:-1:-1::0;;;20111:79:21::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20290:24;20317:40;20340:16;:9:::0;20354:1:::1;20340:16;:13;:16;:::i;:::-;20317:18;:8:::0;20330:4:::1;20317:18;:12;:18;:::i;:::-;:22:::0;:40:::1;:22;:40;:::i;:::-;20290:67:::0;-1:-1:-1;20371:24:21::1;20398:40;20421:16;:9:::0;20435:1:::1;20421:16;:13;:16;:::i;20398:40::-;20371:67:::0;-1:-1:-1;20539:46:21::1;20577:7;20539:33;-1:-1:-1::0;;;;;20539:18:21;;::::1;::::0;:33;::::1;;:22;:33;:::i;:::-;:37:::0;:46:::1;:37;:46;:::i;:::-;20477:38;:16:::0;20498;20477:38:::1;:20;:38;:::i;:::-;:108;;20452:179;;;::::0;;-1:-1:-1;;;20452:179:21;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;20452:179:21;;;;;;;;;;;;;::::1;;12202:1;;20652:49;20660:8;20670;20680:9;20691;20652:7;:49::i;:::-;20716:66;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20716:66:21;::::1;::::0;20721:10:::1;::::0;20716:66:::1;::::0;;;;;;;::::1;-1:-1:-1::0;;12224:1:21;12213:8;:12;-1:-1:-1;;;;;;;;;18630:2159:21:o;4939:42::-;;;;;;;;;;;;;;-1:-1:-1;;;4939:42:21;;;;:::o;12238:301::-;12444:8;;-1:-1:-1;;;;;12444:8:21;;;;-1:-1:-1;;;12474:8:21;;;;;;-1:-1:-1;;;12514:18:21;;;;;12238:301::o;6571:147::-;6638:4;6654:36;6663:10;6675:7;6684:5;6654:8;:36::i;:::-;-1:-1:-1;6707:4:21;6571:147;;;;;:::o;11555:21::-;;;-1:-1:-1;;;;;11555:21:21;;:::o;5074:26::-;;;;:::o;6869:331::-;-1:-1:-1;;;;;7000:15:21;;6980:4;7000:15;;;:9;:15;;;;;;;;7016:10;7000:27;;;;;;;;-1:-1:-1;;7000:42:21;6996:141;;-1:-1:-1;;;;;7088:15:21;;;;;;:9;:15;;;;;;;;7104:10;7088:27;;;;;;;;:38;;7120:5;7088:38;:31;:38;:::i;:::-;-1:-1:-1;;;;;7058:15:21;;;;;;:9;:15;;;;;;;;7074:10;7058:27;;;;;;;:68;6996:141;7146:26;7156:4;7162:2;7166:5;7146:9;:26::i;:::-;-1:-1:-1;7189:4:21;6869:331;;;;;:::o;5368:108::-;5410:66;5368:108;:::o;5033:35::-;5066:2;5033:35;:::o;5227:31::-;;;;:::o;13435:206::-;13530:7;;-1:-1:-1;;;;;13530:7:21;13516:10;:21;13508:54;;;;;-1:-1:-1;;;13508:54:21;;;;;;;;;;;;-1:-1:-1;;;13508:54:21;;;;;;;;;;;;;;;13592:6;:16;;-1:-1:-1;;;;;13592:16:21;;;-1:-1:-1;;;;;;13592:16:21;;;;;;;13618:6;:16;;;;;;;;;;;13435:206::o;11878:35::-;;;;:::o;11919:::-;;;;:::o;15720:1288::-;15769:17;12135:8;;12147:1;12135:13;12127:43;;;;;-1:-1:-1;;;12127:43:21;;;;;;;;;;;;-1:-1:-1;;;12127:43:21;;;;;;;;;;;;;;;12191:1;12180:8;:12;;;12191:1;15841:13:::1;:11;:13::i;:::-;-1:-1:-1::0;15905:6:21::1;::::0;15898:39:::1;::::0;;-1:-1:-1;;;15898:39:21;;15931:4:::1;15898:39;::::0;::::1;::::0;;;15798:56;;-1:-1:-1;15798:56:21;;-1:-1:-1;15879:16:21::1;::::0;-1:-1:-1;;;;;15905:6:21;;::::1;::::0;15898:24:::1;::::0;:39;;;;;::::1;::::0;;;;;;;;15905:6;15898:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15898:39:21;15973:6:::1;::::0;15966:39:::1;::::0;;-1:-1:-1;;;15966:39:21;;15999:4:::1;15966:39;::::0;::::1;::::0;;;15898;;-1:-1:-1;15947:16:21::1;::::0;-1:-1:-1;;;;;15973:6:21;;::::1;::::0;15966:24:::1;::::0;:39;;;;;15898::::1;::::0;15966;;;;;;;;15973:6;15966:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15966:39:21;;-1:-1:-1;16015:15:21::1;16033:23;:8:::0;-1:-1:-1;;;;;16033:23:21;::::1;;:12;:23;:::i;:::-;16015:41:::0;-1:-1:-1;16066:15:21::1;16084:23;:8:::0;-1:-1:-1;;;;;16084:23:21;::::1;;:12;:23;:::i;:::-;16066:41;;16118:10;16131:30;16140:9;16151;16131:8;:30::i;:::-;16171:20;16194:11:::0;16118:43;;-1:-1:-1;16297:17:21;16293:394:::1;;16342:54;11421:5;16342:31;16352:20;:7:::0;16364;16352:20:::1;:11;:20;:::i;:::-;16342:9;:31::i;:54::-;16330:66;;16410:36;16424:1;11421:5;16410;:36::i;:::-;16293:394;;;16544:132;-1:-1:-1::0;;;;;16570:37:21;::::1;:25;:7:::0;16582:12;16570:25:::1;:11;:25;:::i;:::-;:37;;;;;;-1:-1:-1::0;;;;;16625:37:21;::::1;:25;:7:::0;16637:12;16625:25:::1;:11;:25;:::i;:::-;:37;;;;;;16544:8;:132::i;:::-;16532:144;;16293:394;16716:1;16704:9;:13;16696:66;;;;-1:-1:-1::0;;;16696:66:21::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16772:20;16778:2;16782:9;16772:5;:20::i;:::-;16803:49;16811:8;16821;16831:9;16842;16803:7;:49::i;:::-;16866:5;16862:50;;;16903:8;::::0;16881:31:::1;::::0;-1:-1:-1;;;;;16889:8:21;;::::1;::::0;-1:-1:-1;;;16903:8:21;::::1;;16881:31;:21;:31;:::i;:::-;16873:5;:39:::0;16862:50:::1;16967:34;::::0;;;;;::::1;::::0;::::1;::::0;;;;;16972:10:::1;::::0;16967:34:::1;::::0;;;;;;::::1;-1:-1:-1::0;;12224:1:21;12213:8;:12;-1:-1:-1;15720:1288:21;;;-1:-1:-1;;;;;;15720:1288:21:o;5106:44::-;;;;;;;;;;;;;:::o;11960:20::-;;;;:::o;5482:41::-;;;;;;;;;;;;;:::o;17117:1404::-;17166:15;17183;12135:8;;12147:1;12135:13;12127:43;;;;;-1:-1:-1;;;12127:43:21;;;;;;;;;;;;-1:-1:-1;;;12127:43:21;;;;;;;;;;;;;;;12191:1;12180:8;:12;;;12191:1;17253:13:::1;:11;:13::i;:::-;-1:-1:-1::0;17309:6:21::1;::::0;17358::::1;::::0;17408:40:::1;::::0;;-1:-1:-1;;;17408:40:21;;17442:4:::1;17408:40;::::0;::::1;::::0;;;17210:56;;-1:-1:-1;17210:56:21;;-1:-1:-1;;;;;;17309:6:21;;::::1;::::0;17358;::::1;::::0;17291:15:::1;::::0;17309:6;;17408:25:::1;::::0;:40;;;;;::::1;::::0;;;;;;;;17309:6;17408:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17408:40:21;17477::::1;::::0;;-1:-1:-1;;;17477:40:21;;17511:4:::1;17477:40;::::0;::::1;::::0;;;17408;;-1:-1:-1;17458:16:21::1;::::0;-1:-1:-1;;;;;17477:25:21;::::1;::::0;::::1;::::0;:40;;;;;17408::::1;::::0;17477;;;;;;;:25;:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;17477:40:21;17565:4:::1;17527:17;17547:24:::0;;;:9:::1;17477:40;17547:24:::0;;;;;17477:40;;-1:-1:-1;17595:30:21::1;17604:9:::0;17615;17595:8:::1;:30::i;:::-;17635:20;17658:11:::0;17582:43;;-1:-1:-1;17658:11:21;17767:23:::1;:9:::0;17781:8;17767:23:::1;:13;:23;:::i;:::-;:38;;;;;;::::0;-1:-1:-1;17899:12:21;17873:23:::1;:9:::0;17887:8;17873:23:::1;:13;:23;:::i;:::-;:38;;;;;;17863:48;;17987:1;17977:7;:11;:26;;;;;18002:1;17992:7;:11;17977:26;17969:79;;;;-1:-1:-1::0;;;17969:79:21::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18058:31;18072:4;18079:9;18058:5;:31::i;:::-;18099:35;18113:7;18122:2;18126:7;18099:13;:35::i;:::-;18144;18158:7;18167:2;18171:7;18144:13;:35::i;:::-;18200:40;::::0;;-1:-1:-1;;;18200:40:21;;18234:4:::1;18200:40;::::0;::::1;::::0;;;-1:-1:-1;;;;;18200:25:21;::::1;::::0;::::1;::::0;:40;;;;;::::1;::::0;;;;;;;;:25;:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;18200:40:21;18261::::1;::::0;;-1:-1:-1;;;18261:40:21;;18295:4:::1;18261:40;::::0;::::1;::::0;;;18200;;-1:-1:-1;;;;;;18261:25:21;::::1;::::0;::::1;::::0;:40;;;;;18200::::1;::::0;18261;;;;;;;;:25;:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;18261:40:21;;-1:-1:-1;18312:49:21::1;18320:8:::0;18261:40;18340:9;18351;18312:7:::1;:49::i;:::-;18375:5;18371:50;;;18412:8;::::0;18390:31:::1;::::0;-1:-1:-1;;;;;18398:8:21;;::::1;::::0;-1:-1:-1;;;18412:8:21;::::1;;18390:31;:21;:31;:::i;:::-;18382:5;:39:::0;18371:50:::1;18476:38;::::0;;;;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;18476:38:21;::::1;::::0;18481:10:::1;::::0;18476:38:::1;::::0;;;;;;;;;::::1;12202:1;;;;;;;;;12224::::0;12213:8;:12;;;;17117:1404;;;:::o;4987:40::-;;;;;;;;;;;;;;-1:-1:-1;;;4987:40:21;;;;:::o;6724:139::-;6787:4;6803:32;6813:10;6825:2;6829:5;6803:9;:32::i;11377:49::-;11421:5;11377:49;:::o;20835:329::-;12135:8;;12147:1;12135:13;12127:43;;;;;-1:-1:-1;;;12127:43:21;;;;;;;;;;;;-1:-1:-1;;;12127:43:21;;;;;;;;;;;;;;;12191:1;12180:8;:12;20903:6:::1;::::0;20952::::1;::::0;21055:8:::1;::::0;21010:40:::1;::::0;;-1:-1:-1;;;21010:40:21;;21044:4:::1;21010:40;::::0;::::1;::::0;;;-1:-1:-1;;;;;20903:6:21;;::::1;::::0;20952;;::::1;::::0;20983:82:::1;::::0;20903:6;;21006:2;;21010:54:::1;::::0;-1:-1:-1;;;;;21055:8:21::1;::::0;20903:6;;21010:25:::1;::::0;:40;;;;;::::1;::::0;;;;;;;;;20903:6;21010:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;21010:40:21;;:54:::1;:44;:54;:::i;:::-;20983:13;:82::i;:::-;21147:8;::::0;21102:40:::1;::::0;;-1:-1:-1;;;21102:40:21;;21136:4:::1;21102:40;::::0;::::1;::::0;;;21075:82:::1;::::0;21089:7;;21098:2;;21102:54:::1;::::0;-1:-1:-1;;;21147:8:21;::::1;-1:-1:-1::0;;;;;21147:8:21::1;::::0;-1:-1:-1;;;;;21102:25:21;::::1;::::0;::::1;::::0;:40;;;;;::::1;::::0;;;;;;;;;:25;:40;::::1;;::::0;::::1;;;;::::0;::::1;21075:82;-1:-1:-1::0;;12224:1:21;12213:8;:12;-1:-1:-1;20835:329:21:o;11527:22::-;;;-1:-1:-1;;;;;11527:22:21;;:::o;11582:21::-;;;-1:-1:-1;;;;;11582:21:21;;:::o;7206:802::-;7419:15;7407:8;:27;;7399:58;;;;;-1:-1:-1;;;7399:58:21;;;;;;;;;;;;-1:-1:-1;;;7399:58:21;;;;;;;;;;;;;;;7569:16;;-1:-1:-1;;;;;7685:13:21;;;7467:14;7685:13;;;:6;:13;;;;;;;;:15;;;;;;;;;7634:77;;5410:66;7634:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7603:126;;;;;;-1:-1:-1;;;7507:236:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7484:269;;;;;;;;;7790:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7467:14;;7685:15;7790:26;;;;;-1:-1:-1;;7790:26:21;;;;;;;;;;7685:15;7790:26;;;;;;;;;;;;;;;-1:-1:-1;;7790:26:21;;-1:-1:-1;;7790:26:21;;;-1:-1:-1;;;;;;;7847:30:21;;;;;;:59;;;7901:5;-1:-1:-1;;;;;7881:25:21;:16;-1:-1:-1;;;;;7881:25:21;;7847:59;7826:134;;;;;-1:-1:-1;;;7826:134:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;7970:31;7979:5;7986:7;7995:5;7970:8;:31::i;:::-;7206:802;;;;;;;;;:::o;5156:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;21210:214::-;12135:8;;12147:1;12135:13;12127:43;;;;;-1:-1:-1;;;12127:43:21;;;;;;;;;;;;-1:-1:-1;;;12127:43:21;;;;;;;;;;;;;;;12191:1;12180:8;:12;21278:6:::1;::::0;21271:39:::1;::::0;;-1:-1:-1;;;21271:39:21;;21304:4:::1;21271:39;::::0;::::1;::::0;;;21250:167:::1;::::0;-1:-1:-1;;;;;21278:6:21::1;::::0;21271:24:::1;::::0;:39;;;;;::::1;::::0;;;;;;;;21278:6;21271:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;21271:39:21;21331:6:::1;::::0;21324:39:::1;::::0;;-1:-1:-1;;;21324:39:21;;21357:4:::1;21324:39;::::0;::::1;::::0;;;-1:-1:-1;;;;;21331:6:21;;::::1;::::0;21324:24:::1;::::0;:39;;;;;21271::::1;::::0;21324;;;;;;;;21331:6;21324:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;21324:39:21;21377:8:::1;::::0;-1:-1:-1;;;;;21377:8:21;;::::1;::::0;-1:-1:-1;;;21399:8:21;::::1;;21250:7;:167::i;:::-;12224:1:::0;12213:8;:12;21210:214::o;12545:351::-;11484:34;;;;;;;;;;;;;;;;;12705:43;;-1:-1:-1;;;;;12705:43:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12705:43:21;-1:-1:-1;;;12705:43:21;;;12694:55;;;;12659:12;;12673:17;;12694:10;;;12705:43;12694:55;;;12705:43;12694:55;;12705:43;12694:55;;;;;;;;;;-1:-1:-1;;12694:55:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12658:91;;;;12780:7;:57;;;;-1:-1:-1;12792:11:21;;:16;;:44;;;12823:4;12812:24;;;;;;;;;;;;;;;-1:-1:-1;12812:24:21;12792:44;12759:130;;;;;-1:-1:-1;;;12759:130:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;12545:351;;;;;:::o;4660:149::-;4718:9;4747:6;;;:30;;-1:-1:-1;;4762:5:21;;;4776:1;4771;4762:5;4771:1;4757:15;;;;;:20;4747:30;4739:63;;;;;-1:-1:-1;;;4739:63:21;;;;;;;;;;;;-1:-1:-1;;;4739:63:21;;;;;;;;;;;;;;4518:136;4610:5;;;4605:16;;;;4597:50;;;;;-1:-1:-1;;;4597:50:21;;;;;;;;;;;;-1:-1:-1;;;4597:50:21;;;;;;;;;;;;;;13723:961;-1:-1:-1;;;;;13878:23:21;;;;;:50;;-1:-1:-1;;;;;;13905:23:21;;;13878:50;13870:82;;;;;-1:-1:-1;;;13870:82:21;;;;;;;;;;;;-1:-1:-1;;;13870:82:21;;;;;;;;;;;;;;;14065:18;;13993:23;:15;:23;;;-1:-1:-1;;;14065:18:21;;;;14048:35;;;14120:15;;;;;;:33;;-1:-1:-1;;;;;;14139:14:21;;;;14120:33;:51;;;;-1:-1:-1;;;;;;14157:14:21;;;;14120:51;14116:402;;;14359:11;14287:83;;14295:44;14329:9;14295:27;14312:9;14295:16;:27::i;:::-;-1:-1:-1;;;;;14295:33:21;;:44;:33;:44;:::i;:::-;14247:20;:123;;-1:-1:-1;;;;;14287:53:21;;;;:83;;;;14247:123;;;14424:83;;;14432:44;14466:9;14432:27;14449:9;14432:16;:27::i;:44::-;14384:20;:123;;-1:-1:-1;;;;;14424:53:21;;;;:83;;;;14384:123;;;14116:402;14527:8;:28;;-1:-1:-1;;14527:28:21;-1:-1:-1;;;;;14527:28:21;;;;;;;-1:-1:-1;;;;14565:28:21;-1:-1:-1;;;14565:28:21;;;;;;;;;-1:-1:-1;;;;;14603:35:21;-1:-1:-1;;;14603:35:21;;;;;;;;;14653:24;;;14658:8;;;14653:24;;14668:8;;;;;;;14653:24;;;;;;;;;;;;;;;;;13723:961;;;;;;:::o;6111:199::-;-1:-1:-1;;;;;6224:16:21;;;;;;;:9;:16;;;;;;;;:25;;;;;;;;;;;;;:33;;;6272:31;;;;;;;;;;;;;;;;;6111:199;;;:::o;6316:249::-;-1:-1:-1;;;;;6442:15:21;;;;;;:9;:15;;;;;;:26;;6462:5;6442:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;6424:15:21;;;;;;;:9;:15;;;;;;:44;;;;6494:13;;;;;;;:24;;6512:5;6494:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;6478:13:21;;;;;;;:9;:13;;;;;;;;;:40;;;;6533:25;;;;;;;6478:13;;6533:25;;;;;;;;;;;;;6316:249;;;:::o;14771:840::-;14844:10;14866:13;14900:7;;;;;;;;;-1:-1:-1;;;;;14900:7:21;-1:-1:-1;;;;;14882:32:21;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14882:34:21;14980:5;;-1:-1:-1;;;;;14934:19:21;;;;;;-1:-1:-1;14882:34:21;;-1:-1:-1;14980:5:21;15010:595;;15039:11;;15035:503;;15070:13;15086:44;15096:33;-1:-1:-1;;;;;15096:18:21;;;;:33;;;:22;:33;:::i;15086:44::-;15070:60;;15148:17;15168;15178:6;15168:9;:17::i;:::-;15148:37;;15215:9;15207:5;:17;15203:321;;;15248:17;15268:37;15284:20;:5;15294:9;15284:20;:9;:20;:::i;:::-;15268:11;;;:37;:15;:37;:::i;:::-;15248:57;-1:-1:-1;15327:19:21;15349:27;15366:9;15349:12;:5;15359:1;15349:12;:9;:12;:::i;:::-;:16;:27;:16;:27;:::i;:::-;15327:49;;15398:17;15430:11;15418:9;:23;;;;;;;-1:-1:-1;15467:13:21;;15463:42;;15482:23;15488:5;15495:9;15482:5;:23::i;:::-;15203:321;;;;15035:503;;;15010:595;;;15558:11;;15554:51;;15593:1;15585:5;:9;15554:51;14771:840;;;;;;:::o;8365:301::-;8413:9;8442:1;8438;:5;8434:226;;;-1:-1:-1;8463:1:21;8498;8494;8490:5;;:9;8513:89;8524:1;8520;:5;8513:89;;;8549:1;8545:5;;8586:1;8581;8577;8573;:5;;;;;;:9;8572:15;;;;;;8568:19;;8513:89;;;8434:226;;;;8622:6;;8618:42;;-1:-1:-1;8648:1:21;8618:42;8365:301;;;:::o;5691:200::-;5766:11;;:22;;5782:5;5766:22;:15;:22;:::i;:::-;5752:11;:36;;;-1:-1:-1;;;;;5814:13:21;;;;:9;:13;;;;;;:24;;5832:5;5814:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5798:13:21;;;;;;:9;:13;;;;;;;;:40;;;;5853:31;;;;;;;5798:13;;;;5853:31;;;;;;;;;;5691:200;;:::o;8147:103::-;8205:9;8234:1;8230;:5;:13;;8242:1;8230:13;;;8238:1;8230:13;8226:17;8147:103;-1:-1:-1;;;8147:103:21:o;5897:208::-;-1:-1:-1;;;;;5978:15:21;;;;;;:9;:15;;;;;;:26;;5998:5;5978:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5960:15:21;;;;;;:9;:15;;;;;:44;;;;6028:11;:22;;6044:5;6028:22;:15;:22;:::i;:::-;6014:11;:36;;;6065:33;;;;;;;;-1:-1:-1;;;;;6065:33:21;;;;;;;;;;;;;5897:208;;:::o;8995:118::-;-1:-1:-1;;;;;9070:10:21;-1:-1:-1;;;9070:17:21;;8995:118::o;9181:106::-;9241:9;-1:-1:-1;;;;;9270:10:21;;-1:-1:-1;;;;;9266:14:21;;9270:10;9266:14;;;;;;9181:106;-1:-1:-1;;;9181:106:21:o;4377:135::-;4469:5;;;4464:16;;;;4456:49;;;;;-1:-1:-1;;;4456:49:21;;;;;;;;;;;;-1:-1:-1;;;4456:49:21;;;;;;;;;;;;;", + "source": "/**\n *Submitted for verification at Etherscan.io on 2020-05-05\n */\n\n// File: contracts/interfaces/IUniswapV2Pair.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Pair {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n function MINIMUM_LIQUIDITY() external pure returns (uint256);\n\n function factory() external view returns (address);\n\n function token0() external view returns (address);\n\n function token1() external view returns (address);\n\n function getReserves()\n external\n view\n returns (\n uint112 reserve0,\n uint112 reserve1,\n uint32 blockTimestampLast\n );\n\n function price0CumulativeLast() external view returns (uint256);\n\n function price1CumulativeLast() external view returns (uint256);\n\n function kLast() external view returns (uint256);\n\n function mint(address to) external returns (uint256 liquidity);\n\n function burn(address to) external returns (uint256 amount0, uint256 amount1);\n\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external;\n\n function skim(address to) external;\n\n function sync() external;\n\n function initialize(address, address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2ERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2ERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external pure returns (string memory);\n\n function symbol() external pure returns (string memory);\n\n function decimals() external pure returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n\n function DOMAIN_SEPARATOR() external view returns (bytes32);\n\n function PERMIT_TYPEHASH() external pure returns (bytes32);\n\n function nonces(address owner) external view returns (uint256);\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external;\n}\n\n// File: contracts/libraries/SafeMath.sol\n\npragma solidity 0.6.9;\n\n// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)\n\nlibrary SafeMath {\n function add(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x + y) >= x, \"ds-math-add-overflow\");\n }\n\n function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require((z = x - y) <= x, \"ds-math-sub-underflow\");\n }\n\n function mul(uint256 x, uint256 y) internal pure returns (uint256 z) {\n require(y == 0 || (z = x * y) / y == x, \"ds-math-mul-overflow\");\n }\n}\n\n// File: contracts/UniswapV2ERC20.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2ERC20 {\n using SafeMath for uint256;\n\n string public constant name = \"Uniswap V2\";\n string public constant symbol = \"UNI-V2\";\n uint8 public constant decimals = 18;\n uint256 public totalSupply;\n mapping(address => uint256) public balanceOf;\n mapping(address => mapping(address => uint256)) public allowance;\n\n bytes32 public DOMAIN_SEPARATOR;\n // keccak256(\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\");\n bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\n mapping(address => uint256) public nonces;\n\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function _mint(address to, uint256 value) internal {\n totalSupply = totalSupply.add(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(address(0), to, value);\n }\n\n function _burn(address from, uint256 value) internal {\n balanceOf[from] = balanceOf[from].sub(value);\n totalSupply = totalSupply.sub(value);\n emit Transfer(from, address(0), value);\n }\n\n function _approve(\n address owner,\n address spender,\n uint256 value\n ) private {\n allowance[owner][spender] = value;\n emit Approval(owner, spender, value);\n }\n\n function _transfer(\n address from,\n address to,\n uint256 value\n ) private {\n balanceOf[from] = balanceOf[from].sub(value);\n balanceOf[to] = balanceOf[to].add(value);\n emit Transfer(from, to, value);\n }\n\n function approve(address spender, uint256 value) external returns (bool) {\n _approve(msg.sender, spender, value);\n return true;\n }\n\n function transfer(address to, uint256 value) external returns (bool) {\n _transfer(msg.sender, to, value);\n return true;\n }\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool) {\n if (allowance[from][msg.sender] != uint256(-1)) {\n allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);\n }\n _transfer(from, to, value);\n return true;\n }\n\n function permit(\n address owner,\n address spender,\n uint256 value,\n uint256 deadline,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) external {\n require(deadline >= block.timestamp, \"UniswapV2: EXPIRED\");\n bytes32 digest = keccak256(\n abi.encodePacked(\n \"\\x19\\x01\",\n DOMAIN_SEPARATOR,\n keccak256(\n abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline)\n )\n )\n );\n address recoveredAddress = ecrecover(digest, v, r, s);\n require(\n recoveredAddress != address(0) && recoveredAddress == owner,\n \"UniswapV2: INVALID_SIGNATURE\"\n );\n _approve(owner, spender, value);\n }\n}\n\n// File: contracts/libraries/Math.sol\n\npragma solidity 0.6.9;\n\n// a library for performing various math operations\n\nlibrary Math {\n function min(uint256 x, uint256 y) internal pure returns (uint256 z) {\n z = x < y ? x : y;\n }\n\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\n function sqrt(uint256 y) internal pure returns (uint256 z) {\n if (y > 3) {\n z = y;\n uint256 x = y / 2 + 1;\n while (x < z) {\n z = x;\n x = (y / x + x) / 2;\n }\n } else if (y != 0) {\n z = 1;\n }\n }\n}\n\n// File: contracts/libraries/UQ112x112.sol\n\npragma solidity 0.6.9;\n\n// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))\n\n// range: [0, 2**112 - 1]\n// resolution: 1 / 2**112\n\nlibrary UQ112x112 {\n uint224 constant Q112 = 2**112;\n\n // encode a uint112 as a UQ112x112\n function encode(uint112 y) internal pure returns (uint224 z) {\n z = uint224(y) * Q112; // never overflows\n }\n\n // divide a UQ112x112 by a uint112, returning a UQ112x112\n function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\n z = x / uint224(y);\n }\n}\n\n// File: contracts/interfaces/IERC20.sol\n\npragma solidity >=0.5.0;\n\ninterface IERC20 {\n event Approval(address indexed owner, address indexed spender, uint256 value);\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n function name() external view returns (string memory);\n\n function symbol() external view returns (string memory);\n\n function decimals() external view returns (uint8);\n\n function totalSupply() external view returns (uint256);\n\n function balanceOf(address owner) external view returns (uint256);\n\n function allowance(address owner, address spender) external view returns (uint256);\n\n function approve(address spender, uint256 value) external returns (bool);\n\n function transfer(address to, uint256 value) external returns (bool);\n\n function transferFrom(\n address from,\n address to,\n uint256 value\n ) external returns (bool);\n}\n\n// File: contracts/interfaces/IUniswapV2Factory.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Factory {\n event PairCreated(address indexed token0, address indexed token1, address pair, uint256);\n\n function feeTo() external view returns (address);\n\n function feeToSetter() external view returns (address);\n\n function getPair(address tokenA, address tokenB) external view returns (address pair);\n\n function allPairs(uint256) external view returns (address pair);\n\n function allPairsLength() external view returns (uint256);\n\n function createPair(address tokenA, address tokenB) external returns (address pair);\n\n function setFeeTo(address) external;\n\n function setFeeToSetter(address) external;\n}\n\n// File: contracts/interfaces/IUniswapV2Callee.sol\n\npragma solidity >=0.5.0;\n\ninterface IUniswapV2Callee {\n function uniswapV2Call(\n address sender,\n uint256 amount0,\n uint256 amount1,\n bytes calldata data\n ) external;\n}\n\n// File: contracts/UniswapV2Pair.sol\n\npragma solidity 0.6.9;\n\ncontract UniswapV2Pair is UniswapV2ERC20 {\n using SafeMath for uint256;\n using UQ112x112 for uint224;\n\n uint256 public constant MINIMUM_LIQUIDITY = 10**3;\n bytes4 private constant SELECTOR = bytes4(keccak256(bytes(\"transfer(address,uint256)\")));\n\n address public factory;\n address public token0;\n address public token1;\n\n uint112 private reserve0; // uses single storage slot, accessible via getReserves\n uint112 private reserve1; // uses single storage slot, accessible via getReserves\n uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\n\n uint256 public price0CumulativeLast;\n uint256 public price1CumulativeLast;\n uint256 public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\n\n uint256 private unlocked = 1;\n modifier lock() {\n require(unlocked == 1, \"UniswapV2: LOCKED\");\n unlocked = 0;\n _;\n unlocked = 1;\n }\n\n function getReserves()\n public\n view\n returns (\n uint112 _reserve0,\n uint112 _reserve1,\n uint32 _blockTimestampLast\n )\n {\n _reserve0 = reserve0;\n _reserve1 = reserve1;\n _blockTimestampLast = blockTimestampLast;\n }\n\n function _safeTransfer(\n address token,\n address to,\n uint256 value\n ) private {\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));\n require(\n success && (data.length == 0 || abi.decode(data, (bool))),\n \"UniswapV2: TRANSFER_FAILED\"\n );\n }\n\n event Mint(address indexed sender, uint256 amount0, uint256 amount1);\n event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);\n event Swap(\n address indexed sender,\n uint256 amount0In,\n uint256 amount1In,\n uint256 amount0Out,\n uint256 amount1Out,\n address indexed to\n );\n event Sync(uint112 reserve0, uint112 reserve1);\n\n constructor() public {\n factory = msg.sender;\n }\n\n // called once by the factory at time of deployment\n function initialize(address _token0, address _token1) external {\n require(msg.sender == factory, \"UniswapV2: FORBIDDEN\"); // sufficient check\n token0 = _token0;\n token1 = _token1;\n }\n\n // update reserves and, on the first call per block, price accumulators\n function _update(\n uint256 balance0,\n uint256 balance1,\n uint112 _reserve0,\n uint112 _reserve1\n ) private {\n require(balance0 <= uint112(-1) && balance1 <= uint112(-1), \"UniswapV2: OVERFLOW\");\n uint32 blockTimestamp = uint32(block.timestamp % 2**32);\n uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\n if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {\n // * never overflows, and + overflow is desired\n price0CumulativeLast +=\n uint256(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) *\n timeElapsed;\n price1CumulativeLast +=\n uint256(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) *\n timeElapsed;\n }\n reserve0 = uint112(balance0);\n reserve1 = uint112(balance1);\n blockTimestampLast = blockTimestamp;\n emit Sync(reserve0, reserve1);\n }\n\n // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)\n function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {\n address feeTo = IUniswapV2Factory(factory).feeTo();\n feeOn = feeTo != address(0);\n uint256 _kLast = kLast; // gas savings\n if (feeOn) {\n if (_kLast != 0) {\n uint256 rootK = Math.sqrt(uint256(_reserve0).mul(_reserve1));\n uint256 rootKLast = Math.sqrt(_kLast);\n if (rootK > rootKLast) {\n uint256 numerator = totalSupply.mul(rootK.sub(rootKLast));\n uint256 denominator = rootK.mul(5).add(rootKLast);\n uint256 liquidity = numerator / denominator;\n if (liquidity > 0) _mint(feeTo, liquidity);\n }\n }\n } else if (_kLast != 0) {\n kLast = 0;\n }\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function mint(address to) external lock returns (uint256 liquidity) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n uint256 balance0 = IERC20(token0).balanceOf(address(this));\n uint256 balance1 = IERC20(token1).balanceOf(address(this));\n uint256 amount0 = balance0.sub(_reserve0);\n uint256 amount1 = balance1.sub(_reserve1);\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n if (_totalSupply == 0) {\n liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);\n _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens\n } else {\n liquidity = Math.min(\n amount0.mul(_totalSupply) / _reserve0,\n amount1.mul(_totalSupply) / _reserve1\n );\n }\n require(liquidity > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\");\n _mint(to, liquidity);\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Mint(msg.sender, amount0, amount1);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function burn(address to) external lock returns (uint256 amount0, uint256 amount1) {\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n uint256 balance0 = IERC20(_token0).balanceOf(address(this));\n uint256 balance1 = IERC20(_token1).balanceOf(address(this));\n uint256 liquidity = balanceOf[address(this)];\n\n bool feeOn = _mintFee(_reserve0, _reserve1);\n uint256 _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\n amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution\n amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution\n require(amount0 > 0 && amount1 > 0, \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\");\n _burn(address(this), liquidity);\n _safeTransfer(_token0, to, amount0);\n _safeTransfer(_token1, to, amount1);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n\n _update(balance0, balance1, _reserve0, _reserve1);\n if (feeOn) kLast = uint256(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\n emit Burn(msg.sender, amount0, amount1, to);\n }\n\n // this low-level function should be called from a contract which performs important safety checks\n function swap(\n uint256 amount0Out,\n uint256 amount1Out,\n address to,\n bytes calldata data\n ) external lock {\n require(amount0Out > 0 || amount1Out > 0, \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\");\n (uint112 _reserve0, uint112 _reserve1, ) = getReserves(); // gas savings\n require(\n amount0Out < _reserve0 && amount1Out < _reserve1,\n \"UniswapV2: INSUFFICIENT_LIQUIDITY\"\n );\n\n uint256 balance0;\n uint256 balance1;\n {\n // scope for _token{0,1}, avoids stack too deep errors\n address _token0 = token0;\n address _token1 = token1;\n require(to != _token0 && to != _token1, \"UniswapV2: INVALID_TO\");\n if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens\n if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens\n if (data.length > 0)\n IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);\n balance0 = IERC20(_token0).balanceOf(address(this));\n balance1 = IERC20(_token1).balanceOf(address(this));\n }\n uint256 amount0In = balance0 > _reserve0 - amount0Out\n ? balance0 - (_reserve0 - amount0Out)\n : 0;\n uint256 amount1In = balance1 > _reserve1 - amount1Out\n ? balance1 - (_reserve1 - amount1Out)\n : 0;\n require(amount0In > 0 || amount1In > 0, \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\");\n {\n // scope for reserve{0,1}Adjusted, avoids stack too deep errors\n uint256 balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));\n uint256 balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));\n require(\n balance0Adjusted.mul(balance1Adjusted) >=\n uint256(_reserve0).mul(_reserve1).mul(1000**2),\n \"UniswapV2: K\"\n );\n }\n\n _update(balance0, balance1, _reserve0, _reserve1);\n emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);\n }\n\n // force balances to match reserves\n function skim(address to) external lock {\n address _token0 = token0; // gas savings\n address _token1 = token1; // gas savings\n _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));\n _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));\n }\n\n // force reserves to match balances\n function sync() external lock {\n _update(\n IERC20(token0).balanceOf(address(this)),\n IERC20(token1).balanceOf(address(this)),\n reserve0,\n reserve1\n );\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/UniswapV2.sol", + "exportedSymbols": { + "IERC20": [ + 5543 + ], + "IUniswapV2Callee": [ + 5618 + ], + "IUniswapV2ERC20": [ + 4917 + ], + "IUniswapV2Factory": [ + 5605 + ], + "IUniswapV2Pair": [ + 4800 + ], + "Math": [ + 5417 + ], + "SafeMath": [ + 4991 + ], + "UQ112x112": [ + 5460 + ], + "UniswapV2ERC20": [ + 5342 + ], + "UniswapV2Pair": [ + 6679 + ] + }, + "id": 6680, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4560, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "118:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4800, + "linearizedBaseContracts": [ + 4800 + ], + "name": "IUniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4568, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4562, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "190:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "190:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4564, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "213:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4563, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4568, + "src": "238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "238:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "189:63:21" + }, + "src": "175:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4576, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4570, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "273:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4569, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "273:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4572, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "295:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4571, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "295:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4574, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4576, + "src": "315:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "315:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "272:57:21" + }, + "src": "258:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4581, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4577, + "nodeType": "ParameterList", + "parameters": [], + "src": "349:2:21" + }, + "returnParameters": { + "id": 4580, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4579, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4581, + "src": "375:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4578, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "375:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "374:15:21" + }, + "scope": 4800, + "src": "336:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4586, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [], + "src": "411:2:21" + }, + "returnParameters": { + "id": 4585, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4584, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4586, + "src": "437:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "437:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "436:15:21" + }, + "scope": 4800, + "src": "396:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4591, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4587, + "nodeType": "ParameterList", + "parameters": [], + "src": "475:2:21" + }, + "returnParameters": { + "id": 4590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4589, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4591, + "src": "501:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4588, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "501:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:7:21" + }, + "scope": 4800, + "src": "458:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4592, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:2:21" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4594, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4596, + "src": "560:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4593, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "560:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "559:9:21" + }, + "scope": 4800, + "src": "514:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4603, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4599, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "594:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "594:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "593:15:21" + }, + "returnParameters": { + "id": 4602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4603, + "src": "632:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "632:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "631:9:21" + }, + "scope": 4800, + "src": "575:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4612, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4605, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "666:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "666:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "681:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "681:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "665:32:21" + }, + "returnParameters": { + "id": 4611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4610, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4612, + "src": "721:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "720:9:21" + }, + "scope": 4800, + "src": "647:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4621, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4617, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4614, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "753:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4613, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "753:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "770:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "770:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "752:32:21" + }, + "returnParameters": { + "id": 4620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4619, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4621, + "src": "803:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4618, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "803:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "802:6:21" + }, + "scope": 4800, + "src": "736:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4630, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4623, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "833:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "833:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "845:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "832:27:21" + }, + "returnParameters": { + "id": 4629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4630, + "src": "878:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "878:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "877:6:21" + }, + "scope": 4800, + "src": "815:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4641, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4632, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "921:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "921:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4634, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "943:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4633, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "943:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4636, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "963:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4635, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "911:71:21" + }, + "returnParameters": { + "id": 4640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4639, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4641, + "src": "1001:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4638, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1001:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1000:6:21" + }, + "scope": 4800, + "src": "890:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4646, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4642, + "nodeType": "ParameterList", + "parameters": [], + "src": "1038:2:21" + }, + "returnParameters": { + "id": 4645, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4644, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4646, + "src": "1064:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4643, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1063:9:21" + }, + "scope": 4800, + "src": "1013:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4651, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:21" + }, + "returnParameters": { + "id": 4650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4649, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4651, + "src": "1129:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4648, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1129:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1128:9:21" + }, + "scope": 4800, + "src": "1079:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4658, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4654, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4653, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1160:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4652, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1160:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1159:15:21" + }, + "returnParameters": { + "id": 4657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4656, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4658, + "src": "1198:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1198:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1197:9:21" + }, + "scope": 4800, + "src": "1144:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4675, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4660, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1238:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1238:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1261:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1261:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4664, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1286:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4663, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1286:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1309:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1309:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4668, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1335:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4667, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1335:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4670, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1352:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4669, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4672, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4675, + "src": "1371:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4671, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1228:158:21" + }, + "returnParameters": { + "id": 4674, + "nodeType": "ParameterList", + "parameters": [], + "src": "1395:0:21" + }, + "scope": 4800, + "src": "1213:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 4683, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4677, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1413:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1413:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4679, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1437:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1437:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4681, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4683, + "src": "1454:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1454:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1412:58:21" + }, + "src": "1402:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4693, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 4692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4685, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1487:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4684, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1487:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4687, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1511:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4689, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1528:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1528:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4691, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4693, + "src": "1545:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1486:78:21" + }, + "src": "1476:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4707, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 4706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4695, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1590:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1590:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1622:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1622:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4699, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1649:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1649:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4701, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1676:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1676:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4703, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1704:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4705, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4707, + "src": "1732:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4704, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1732:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1580:176:21" + }, + "src": "1570:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4713, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 4712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4709, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1773:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4708, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1773:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4711, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4713, + "src": "1791:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4710, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "1791:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1772:36:21" + }, + "src": "1762:47:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "ba9a7a56", + "id": 4718, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "MINIMUM_LIQUIDITY", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4714, + "nodeType": "ParameterList", + "parameters": [], + "src": "1841:2:21" + }, + "returnParameters": { + "id": 4717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4716, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4718, + "src": "1867:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1866:9:21" + }, + "scope": 4800, + "src": "1815:61:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c45a0155", + "id": 4723, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "factory", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [], + "src": "1898:2:21" + }, + "returnParameters": { + "id": 4722, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4721, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4723, + "src": "1924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4720, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1923:9:21" + }, + "scope": 4800, + "src": "1882:51:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0dfe1681", + "id": 4728, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token0", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4724, + "nodeType": "ParameterList", + "parameters": [], + "src": "1954:2:21" + }, + "returnParameters": { + "id": 4727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4726, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4728, + "src": "1980:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1980:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1979:9:21" + }, + "scope": 4800, + "src": "1939:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d21220a7", + "id": 4733, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "token1", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4729, + "nodeType": "ParameterList", + "parameters": [], + "src": "2010:2:21" + }, + "returnParameters": { + "id": 4732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4731, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4733, + "src": "2036:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4730, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2036:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2035:9:21" + }, + "scope": 4800, + "src": "1995:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 4742, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "2071:2:21" + }, + "returnParameters": { + "id": 4741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4736, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2134:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4735, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2134:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4738, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2164:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 4737, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "2164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4740, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4742, + "src": "2194:25:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 4739, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2194:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2120:109:21" + }, + "scope": 4800, + "src": "2051:179:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5909c0d5", + "id": 4747, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price0CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4743, + "nodeType": "ParameterList", + "parameters": [], + "src": "2265:2:21" + }, + "returnParameters": { + "id": 4746, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4745, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4747, + "src": "2291:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4744, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2290:9:21" + }, + "scope": 4800, + "src": "2236:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "5a3d5493", + "id": 4752, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "price1CumulativeLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "2335:2:21" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4750, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4752, + "src": "2361:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2361:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2360:9:21" + }, + "scope": 4800, + "src": "2306:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7464fc3d", + "id": 4757, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "kLast", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4753, + "nodeType": "ParameterList", + "parameters": [], + "src": "2390:2:21" + }, + "returnParameters": { + "id": 4756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4755, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4757, + "src": "2416:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2415:9:21" + }, + "scope": 4800, + "src": "2376:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "6a627842", + "id": 4764, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4759, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2445:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2444:12:21" + }, + "returnParameters": { + "id": 4763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4762, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4764, + "src": "2475:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:19:21" + }, + "scope": 4800, + "src": "2431:63:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "89afcb44", + "id": 4773, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4766, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2514:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2514:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2513:12:21" + }, + "returnParameters": { + "id": 4772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4769, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2544:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2544:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4771, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4773, + "src": "2561:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2561:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2543:34:21" + }, + "scope": 4800, + "src": "2500:78:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 4784, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4775, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2607:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2607:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4777, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2635:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4776, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2663:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4778, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2663:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4784, + "src": "2683:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4780, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2683:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2597:111:21" + }, + "returnParameters": { + "id": 4783, + "nodeType": "ParameterList", + "parameters": [], + "src": "2717:0:21" + }, + "scope": 4800, + "src": "2584:134:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 4789, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4786, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4789, + "src": "2738:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4785, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2738:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2737:12:21" + }, + "returnParameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [], + "src": "2758:0:21" + }, + "scope": 4800, + "src": "2724:35:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 4792, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4790, + "nodeType": "ParameterList", + "parameters": [], + "src": "2778:2:21" + }, + "returnParameters": { + "id": 4791, + "nodeType": "ParameterList", + "parameters": [], + "src": "2789:0:21" + }, + "scope": 4800, + "src": "2765:25:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "485cc955", + "id": 4799, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2816:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2816:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4799, + "src": "2825:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2825:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2815:18:21" + }, + "returnParameters": { + "id": 4798, + "nodeType": "ParameterList", + "parameters": [], + "src": "2842:0:21" + }, + "scope": 4800, + "src": "2796:47:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "144:2701:21" + }, + { + "id": 4801, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "2898:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4917, + "linearizedBaseContracts": [ + 4917 + ], + "name": "IUniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 4809, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4803, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2971:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4802, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2971:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4805, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "2994:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2994:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4807, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4809, + "src": "3019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4806, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3019:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2970:63:21" + }, + "src": "2956:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 4817, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3054:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3054:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3076:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3076:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4817, + "src": "3096:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3053:57:21" + }, + "src": "3039:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 4822, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3130:2:21" + }, + "returnParameters": { + "id": 4821, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4820, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4822, + "src": "3156:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4819, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3155:15:21" + }, + "scope": 4917, + "src": "3117:54:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 4827, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4823, + "nodeType": "ParameterList", + "parameters": [], + "src": "3192:2:21" + }, + "returnParameters": { + "id": 4826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4825, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4827, + "src": "3218:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4824, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3218:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3217:15:21" + }, + "scope": 4917, + "src": "3177:56:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 4832, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4828, + "nodeType": "ParameterList", + "parameters": [], + "src": "3256:2:21" + }, + "returnParameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4832, + "src": "3282:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4829, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3282:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3281:7:21" + }, + "scope": 4917, + "src": "3239:50:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 4837, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4833, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:21" + }, + "returnParameters": { + "id": 4836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4835, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4837, + "src": "3341:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3341:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3340:9:21" + }, + "scope": 4917, + "src": "3295:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 4844, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4839, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3375:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3375:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3374:15:21" + }, + "returnParameters": { + "id": 4843, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4842, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4844, + "src": "3413:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3412:9:21" + }, + "scope": 4917, + "src": "3356:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 4853, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4846, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3447:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3447:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4848, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3462:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3462:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3446:32:21" + }, + "returnParameters": { + "id": 4852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4853, + "src": "3502:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3501:9:21" + }, + "scope": 4917, + "src": "3428:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 4862, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4855, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3534:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4854, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3534:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4857, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3551:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4856, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3533:32:21" + }, + "returnParameters": { + "id": 4861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4862, + "src": "3584:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4859, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3584:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3583:6:21" + }, + "scope": 4917, + "src": "3517:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 4871, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4864, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3614:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4863, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4866, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3626:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3626:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3613:27:21" + }, + "returnParameters": { + "id": 4870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4869, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4871, + "src": "3659:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4868, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3658:6:21" + }, + "scope": 4917, + "src": "3596:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 4882, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4873, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3702:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4872, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3702:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4875, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3724:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4874, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3724:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4877, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3744:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3692:71:21" + }, + "returnParameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4880, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4882, + "src": "3782:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4879, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3782:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3781:6:21" + }, + "scope": 4917, + "src": "3671:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "3644e515", + "id": 4887, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "DOMAIN_SEPARATOR", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4883, + "nodeType": "ParameterList", + "parameters": [], + "src": "3819:2:21" + }, + "returnParameters": { + "id": 4886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4885, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4887, + "src": "3845:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4884, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3845:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3844:9:21" + }, + "scope": 4917, + "src": "3794:60:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "30adf81f", + "id": 4892, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "PERMIT_TYPEHASH", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4888, + "nodeType": "ParameterList", + "parameters": [], + "src": "3884:2:21" + }, + "returnParameters": { + "id": 4891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4892, + "src": "3910:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4889, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3910:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3909:9:21" + }, + "scope": 4917, + "src": "3860:59:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "7ecebe00", + "id": 4899, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "nonces", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4894, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3941:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4893, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3941:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3940:15:21" + }, + "returnParameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4897, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4899, + "src": "3979:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3979:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3978:9:21" + }, + "scope": 4917, + "src": "3925:63:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "d505accf", + "id": 4916, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4901, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4019:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4900, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4019:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4903, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4042:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4042:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4905, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4067:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4907, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4090:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4090:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4909, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4116:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4908, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4116:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4911, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4133:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4910, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4133:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4916, + "src": "4152:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4912, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4152:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4009:158:21" + }, + "returnParameters": { + "id": 4915, + "nodeType": "ParameterList", + "parameters": [], + "src": "4176:0:21" + }, + "scope": 4917, + "src": "3994:183:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "2924:1255:21" + }, + { + "id": 4918, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4224:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 4991, + "linearizedBaseContracts": [ + 4991 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4939, + "nodeType": "Block", + "src": "4446:66:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4928, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4925, + "src": "4465:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4929, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4469:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 4930, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4922, + "src": "4473:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4469:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4465:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4464:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4934, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4920, + "src": "4479:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4464:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6164642d6f766572666c6f77", + "id": 4936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4482:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + }, + "value": "ds-math-add-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3903056b84ed2aba2be78662dc6c5c99b160cebe9af9bd9493d0fc28ff16f6db", + "typeString": "literal_string \"ds-math-add-overflow\"" + } + ], + "id": 4927, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4456:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4456:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4938, + "nodeType": "ExpressionStatement", + "src": "4456:49:21" + } + ] + }, + "documentation": null, + "id": 4940, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4920, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4390:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4922, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4401:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4389:22:21" + }, + "returnParameters": { + "id": 4926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4925, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4940, + "src": "4435:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4435:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4434:11:21" + }, + "scope": 4991, + "src": "4377:135:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "4587:67:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4950, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4947, + "src": "4606:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4951, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4610:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 4952, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4944, + "src": "4614:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4610:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4606:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4955, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4605:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 4956, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4942, + "src": "4620:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4605:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d7375622d756e646572666c6f77", + "id": 4958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4623:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + }, + "value": "ds-math-sub-underflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_03b20b9f6e6e7905f077509fd420fb44afc685f254bcefe49147296e1ba25590", + "typeString": "literal_string \"ds-math-sub-underflow\"" + } + ], + "id": 4949, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4597:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4597:50:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "4597:50:21" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4942, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4531:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4531:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4944, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4542:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4542:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4530:22:21" + }, + "returnParameters": { + "id": 4948, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4947, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4962, + "src": "4576:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4575:11:21" + }, + "scope": 4991, + "src": "4518:136:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4989, + "nodeType": "Block", + "src": "4729:80:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4972, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4747:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4752:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4747:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 4979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4975, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4969, + "src": "4758:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4976, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4762:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 4977, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4766:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4762:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4758:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4980, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4757:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 4981, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "4771:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 4983, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "4776:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4757:20:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4747:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "64732d6d6174682d6d756c2d6f766572666c6f77", + "id": 4986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4779:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + }, + "value": "ds-math-mul-overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25a0ef6406c6af6852555433653ce478274cd9f03a5dec44d001868a76b3bfdd", + "typeString": "literal_string \"ds-math-mul-overflow\"" + } + ], + "id": 4971, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4739:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4739:63:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4988, + "nodeType": "ExpressionStatement", + "src": "4739:63:21" + } + ] + }, + "documentation": null, + "id": 4990, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4673:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4673:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4684:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4965, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4672:22:21" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4990, + "src": "4718:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4717:11:21" + }, + "scope": 4991, + "src": "4660:149:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "4354:457:21" + }, + { + "id": 4992, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "4852:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5342, + "linearizedBaseContracts": [ + 5342 + ], + "name": "UniswapV2ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 4995, + "libraryName": { + "contractScope": null, + "id": 4993, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "4912:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "4906:27:21", + "typeName": { + "id": 4994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4925:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "functionSelector": "06fdde03", + "id": 4998, + "mutability": "constant", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4939:42:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4996, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4939:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "556e6973776170205632", + "id": 4997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4969:12:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738", + "typeString": "literal_string \"Uniswap V2\"" + }, + "value": "Uniswap V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "95d89b41", + "id": 5001, + "mutability": "constant", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "4987:40:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4987:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "554e492d5632", + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5019:8:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0c49a525f6758cfb27d0ada1467d2a2e99733995423d47ae30ae4ba2ba563255", + "typeString": "literal_string \"UNI-V2\"" + }, + "value": "UNI-V2" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "313ce567", + "id": 5004, + "mutability": "constant", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5033:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5002, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5033:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 5003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5066:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "18160ddd", + "id": 5006, + "mutability": "mutable", + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5074:26:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5074:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 5010, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5106:44:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5009, + "keyType": { + "id": 5007, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5114:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5106:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5125:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 5016, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5156:64:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 5015, + "keyType": { + "id": 5011, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5164:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5156:47:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 5014, + "keyType": { + "id": 5012, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5175:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "3644e515", + "id": 5018, + "mutability": "mutable", + "name": "DOMAIN_SEPARATOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5227:31:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5227:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "30adf81f", + "id": 5021, + "mutability": "constant", + "name": "PERMIT_TYPEHASH", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5368:108:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5368:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "307836653731656461653132623162393766346431663630333730666566313031303566613266616165303132363131346131363963363438343564363132366339", + "id": 5020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5410:66:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_49955707469362902507454157297736832118868343942642399513960811609542965143241_by_1", + "typeString": "int_const 4995...(69 digits omitted)...3241" + }, + "value": "0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7ecebe00", + "id": 5025, + "mutability": "mutable", + "name": "nonces", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5342, + "src": "5482:41:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5024, + "keyType": { + "id": 5022, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5490:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5482:27:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5501:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 5033, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5027, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5545:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5545:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5029, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5568:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5028, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5568:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5031, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5033, + "src": "5593:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5593:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5544:63:21" + }, + "src": "5530:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5041, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5035, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5628:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5034, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5628:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5037, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5650:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5036, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5650:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5039, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5041, + "src": "5670:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5670:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5627:57:21" + }, + "src": "5613:72:21" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "5742:149:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5048, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5752:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5782:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5049, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "5766:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5766:15: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": 5052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5766:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5752:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5054, + "nodeType": "ExpressionStatement", + "src": "5752:36:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5055, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5798:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5057, + "indexExpression": { + "argumentTypes": null, + "id": 5056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5808:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5798:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5832:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5058, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5814:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5060, + "indexExpression": { + "argumentTypes": null, + "id": 5059, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5824:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5814:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "5814:17: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": 5063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5814:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5798:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5065, + "nodeType": "ExpressionStatement", + "src": "5798:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5870:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5067, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5862:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5862:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5071, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5043, + "src": "5874:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5072, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5045, + "src": "5878:5: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": 5066, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "5853:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5853:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5074, + "nodeType": "EmitStatement", + "src": "5848:36:21" + } + ] + }, + "documentation": null, + "id": 5076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5043, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5706:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5042, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5706:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5045, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5076, + "src": "5718:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5718:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5705:27:21" + }, + "returnParameters": { + "id": 5047, + "nodeType": "ParameterList", + "parameters": [], + "src": "5742:0:21" + }, + "scope": 5342, + "src": "5691:200:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5110, + "nodeType": "Block", + "src": "5950:155:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5083, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5960:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5085, + "indexExpression": { + "argumentTypes": null, + "id": 5084, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5970:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5960:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5090, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "5998:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5086, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "5978:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5088, + "indexExpression": { + "argumentTypes": null, + "id": 5087, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "5988:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5978:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "5978:19: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": 5091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5978:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5960:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5093, + "nodeType": "ExpressionStatement", + "src": "5960:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5094, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6014:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6044:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5095, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "6028:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6028:15: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": 5098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6028:22:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6014:36:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5100, + "nodeType": "ExpressionStatement", + "src": "6014:36:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5102, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5078, + "src": "6074:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6088:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6080:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6080:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5107, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "6092:5:21", + "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": 5101, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6065:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6065:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5109, + "nodeType": "EmitStatement", + "src": "6060:38:21" + } + ] + }, + "documentation": null, + "id": 5111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5081, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5078, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5912:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5912:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5080, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5111, + "src": "5926:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5079, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5926:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5911:29:21" + }, + "returnParameters": { + "id": 5082, + "nodeType": "ParameterList", + "parameters": [], + "src": "5950:0:21" + }, + "scope": 5342, + "src": "5897:208:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5134, + "nodeType": "Block", + "src": "6214:96:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5120, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "6224:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5123, + "indexExpression": { + "argumentTypes": null, + "id": 5121, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6234:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6224:16:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5124, + "indexExpression": { + "argumentTypes": null, + "id": 5122, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6224:25:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5125, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6252:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6224:33:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5127, + "nodeType": "ExpressionStatement", + "src": "6224:33:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5129, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5113, + "src": "6281:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5130, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5115, + "src": "6288:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5117, + "src": "6297:5: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": 5128, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5033, + "src": "6272:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6272:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5133, + "nodeType": "EmitStatement", + "src": "6267:36:21" + } + ] + }, + "documentation": null, + "id": 5135, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5113, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6138:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6138:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5115, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6161:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6161:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5117, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5135, + "src": "6186:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6186:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6128:77:21" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [], + "src": "6214:0:21" + }, + "scope": 5342, + "src": "6111:199:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5172, + "nodeType": "Block", + "src": "6414:151:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5144, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6424:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5146, + "indexExpression": { + "argumentTypes": null, + "id": 5145, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6434:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6424:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6462:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5147, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6442:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5149, + "indexExpression": { + "argumentTypes": null, + "id": 5148, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6452:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6442:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "6442:19: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": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6442:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6424:44:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5154, + "nodeType": "ExpressionStatement", + "src": "6424:44:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5155, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6478:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5157, + "indexExpression": { + "argumentTypes": null, + "id": 5156, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6488:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6478:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5162, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6512:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5158, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "6494:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5160, + "indexExpression": { + "argumentTypes": null, + "id": 5159, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6504:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6494:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "6494:17: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": 5163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6494:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6478:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5165, + "nodeType": "ExpressionStatement", + "src": "6478:40:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5167, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5137, + "src": "6542:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5168, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5139, + "src": "6548:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5169, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5141, + "src": "6552:5: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": 5166, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5041, + "src": "6533:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5171, + "nodeType": "EmitStatement", + "src": "6528:30:21" + } + ] + }, + "documentation": null, + "id": 5173, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5137, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6344:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5136, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6344:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5139, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6366:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6366:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5141, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5173, + "src": "6386:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6386:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6334:71:21" + }, + "returnParameters": { + "id": 5143, + "nodeType": "ParameterList", + "parameters": [], + "src": "6414:0:21" + }, + "scope": 5342, + "src": "6316:249:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5191, + "nodeType": "Block", + "src": "6644:74:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5183, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6663:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6663:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5185, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5175, + "src": "6675:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5186, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5177, + "src": "6684:5: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": 5182, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "6654:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5188, + "nodeType": "ExpressionStatement", + "src": "6654:36:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6707:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5181, + "id": 5190, + "nodeType": "Return", + "src": "6700:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5175, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6588:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5174, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6588:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5177, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6605:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6605:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6587:32:21" + }, + "returnParameters": { + "id": 5181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5180, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5192, + "src": "6638:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5179, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6638:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6637:6:21" + }, + "scope": 5342, + "src": "6571:147:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5210, + "nodeType": "Block", + "src": "6793:70:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5202, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6813:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6813:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5204, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "6825:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5205, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5196, + "src": "6829:5: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": 5201, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "6803:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6803:32:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5207, + "nodeType": "ExpressionStatement", + "src": "6803:32:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6852:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5200, + "id": 5209, + "nodeType": "Return", + "src": "6845:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5211, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6742:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5193, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6742:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5196, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6754:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6741:27:21" + }, + "returnParameters": { + "id": 5200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5199, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5211, + "src": "6787:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5198, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6787:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6786:6:21" + }, + "scope": 5342, + "src": "6724:139:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5261, + "nodeType": "Block", + "src": "6986:214:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5222, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7000:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5224, + "indexExpression": { + "argumentTypes": null, + "id": 5223, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5227, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5225, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7016:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7016:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7000:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "7039:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7040:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5229, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7031:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7000:42:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5252, + "nodeType": "IfStatement", + "src": "6996:141:21", + "trueBody": { + "id": 5251, + "nodeType": "Block", + "src": "7044:93:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5234, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7058:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5238, + "indexExpression": { + "argumentTypes": null, + "id": 5235, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7068:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7058:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5239, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5236, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7074:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7058:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5247, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7120:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5240, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5016, + "src": "7088:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5242, + "indexExpression": { + "argumentTypes": null, + "id": 5241, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7098:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:15:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5245, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5243, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7104:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7104:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7088:27:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "7088:31: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": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7088:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7058:68:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5250, + "nodeType": "ExpressionStatement", + "src": "7058:68:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5254, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5213, + "src": "7156:4:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5255, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5215, + "src": "7162:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5256, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5217, + "src": "7166:5: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": 5253, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5173, + "src": "7146:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7146:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5258, + "nodeType": "ExpressionStatement", + "src": "7146:26:21" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7189:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5221, + "id": 5260, + "nodeType": "Return", + "src": "7182:11:21" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5213, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6900:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6900:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5215, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6922:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6922:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5217, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6942:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6942:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6890:71:21" + }, + "returnParameters": { + "id": 5221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5220, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5262, + "src": "6980:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5219, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6980:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6979:6:21" + }, + "scope": 5342, + "src": "6869:331:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5340, + "nodeType": "Block", + "src": "7389:619:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5280, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7407:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5281, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "7419:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7419:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7407:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a2045585049524544", + "id": 5284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7436:20:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + }, + "value": "UniswapV2: EXPIRED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47797eaaf6df6dc2efdb1e824209400a8293aff4c1e7f6d90fcc4b3e3ba18a87", + "typeString": "literal_string \"UniswapV2: EXPIRED\"" + } + ], + "id": 5279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7399:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7399:58:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5286, + "nodeType": "ExpressionStatement", + "src": "7399:58:21" + }, + { + "assignments": [ + 5288 + ], + "declarations": [ + { + "constant": false, + "id": 5288, + "mutability": "mutable", + "name": "digest", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7467:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7467:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5310, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "1901", + "id": 5292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7541:10:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + "value": "\u0019\u0001" + }, + { + "argumentTypes": null, + "id": 5293, + "name": "DOMAIN_SEPARATOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5018, + "src": "7569:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5297, + "name": "PERMIT_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5021, + "src": "7645:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5298, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7662:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5299, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7669:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5300, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7678:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7685:15:21", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5301, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5025, + "src": "7685:6:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5303, + "indexExpression": { + "argumentTypes": null, + "id": 5302, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7692:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7685:13:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5305, + "name": "deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5270, + "src": "7702:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5295, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7634:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7634:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7634:77:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5294, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7603:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7603:126:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541", + "typeString": "literal_string \"\u0019\u0001\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 5290, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "7507:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7507:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:236:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5289, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7484:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:269:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7467:286:21" + }, + { + "assignments": [ + 5312 + ], + "declarations": [ + { + "constant": false, + "id": 5312, + "mutability": "mutable", + "name": "recoveredAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5340, + "src": "7763:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7763:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5319, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5314, + "name": "digest", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5288, + "src": "7800:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5315, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5272, + "src": "7808:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 5316, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5274, + "src": "7811:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 5317, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5276, + "src": "7814:1:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5313, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "7790:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 5318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7790:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7763:53:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5321, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7847:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7875:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7867:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7867:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7847:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5327, + "name": "recoveredAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5312, + "src": "7881:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5328, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7901:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7881:25:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7847:59:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f5349474e4154555245", + "id": 5331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7920:30:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + }, + "value": "UniswapV2: INVALID_SIGNATURE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2d893fc9f5fa2494c39ecec82df2778b33226458ccce3b9a56f5372437d54a56", + "typeString": "literal_string \"UniswapV2: INVALID_SIGNATURE\"" + } + ], + "id": 5320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7826:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:134:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5333, + "nodeType": "ExpressionStatement", + "src": "7826:134:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5335, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "7979:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5336, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5266, + "src": "7986:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5268, + "src": "7995:5: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": 5334, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5135, + "src": "7970:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7970:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5339, + "nodeType": "ExpressionStatement", + "src": "7970:31:21" + } + ] + }, + "documentation": null, + "functionSelector": "d505accf", + "id": 5341, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "permit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5264, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7231:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7231:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5266, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7254:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5265, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7254:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5268, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7279:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7279:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5270, + "mutability": "mutable", + "name": "deadline", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7302:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7302:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5272, + "mutability": "mutable", + "name": "v", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7328:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7328:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5274, + "mutability": "mutable", + "name": "r", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7345:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7345:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "s", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5341, + "src": "7364:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7221:158:21" + }, + "returnParameters": { + "id": 5278, + "nodeType": "ParameterList", + "parameters": [], + "src": "7389:0:21" + }, + "scope": 5342, + "src": "7206:802:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "4876:3134:21" + }, + { + "id": 5343, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8051:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5417, + "linearizedBaseContracts": [ + 5417 + ], + "name": "Math", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5361, + "nodeType": "Block", + "src": "8216:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5352, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "8226:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5353, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8230:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5354, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8234:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8230:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 5357, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5347, + "src": "8242:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8230:13:21", + "trueExpression": { + "argumentTypes": null, + "id": 5356, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5345, + "src": "8238:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8226:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5360, + "nodeType": "ExpressionStatement", + "src": "8226:17:21" + } + ] + }, + "documentation": null, + "id": 5362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5345, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8160:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5347, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8171:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8159:22:21" + }, + "returnParameters": { + "id": 5351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5362, + "src": "8205:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8205:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8204:11:21" + }, + "scope": 5417, + "src": "8147:103:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5415, + "nodeType": "Block", + "src": "8424:242:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5369, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8438:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8442:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "8438:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5405, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8622:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8627:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8622:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5413, + "nodeType": "IfStatement", + "src": "8618:42:21", + "trueBody": { + "id": 5412, + "nodeType": "Block", + "src": "8630:30:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8644:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8648:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8644:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5411, + "nodeType": "ExpressionStatement", + "src": "8644:5:21" + } + ] + } + }, + "id": 5414, + "nodeType": "IfStatement", + "src": "8434:226:21", + "trueBody": { + "id": 5404, + "nodeType": "Block", + "src": "8445:167:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5372, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8459:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5373, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8463:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8459:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5375, + "nodeType": "ExpressionStatement", + "src": "8459:5:21" + }, + { + "assignments": [ + 5377 + ], + "declarations": [ + { + "constant": false, + "id": 5377, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5404, + "src": "8478:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8478:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5383, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5378, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8490:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8494:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8490:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8498:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8490:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8478:21:21" + }, + { + "body": { + "id": 5402, + "nodeType": "Block", + "src": "8527:75:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5387, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8545:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5388, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8549:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8545:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5390, + "nodeType": "ExpressionStatement", + "src": "8545:5:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5391, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8568:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5392, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5364, + "src": "8573:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 5393, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8577:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 5395, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8581:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8573:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5397, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8572:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8586:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "8572:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8568:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "8568:19:21" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5384, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5377, + "src": "8520:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 5385, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5367, + "src": "8524:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8520:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5403, + "nodeType": "WhileStatement", + "src": "8513:89:21" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5365, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5364, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8379:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8379:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8378:11:21" + }, + "returnParameters": { + "id": 5368, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5367, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5416, + "src": "8413:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5366, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8412:11:21" + }, + "scope": 5417, + "src": "8365:301:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8128:540:21" + }, + { + "id": 5418, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "8714:22:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 5460, + "linearizedBaseContracts": [ + 5460 + ], + "name": "UQ112x112", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5423, + "mutability": "constant", + "name": "Q112", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5460, + "src": "8919:30:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5419, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "8919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + }, + "id": 5422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8943:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "313132", + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8946:3:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + "src": "8943:6:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1", + "typeString": "int_const 5192...(26 digits omitted)...0096" + } + }, + "visibility": "internal" + }, + { + "body": { + "id": 5439, + "nodeType": "Block", + "src": "9056:57:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5430, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "9066:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5433, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5425, + "src": "9078:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5432, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5431, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9070:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9070:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5435, + "name": "Q112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "9083:4:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9070:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9066:21:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5438, + "nodeType": "ExpressionStatement", + "src": "9066:21:21" + } + ] + }, + "documentation": null, + "id": 5440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "encode", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5425, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9011:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5424, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9010:11:21" + }, + "returnParameters": { + "id": 5429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5428, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5440, + "src": "9045:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5427, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9045:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9044:11:21" + }, + "scope": 5460, + "src": "8995:118:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5458, + "nodeType": "Block", + "src": "9252:35:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5449, + "name": "z", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5447, + "src": "9262:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "id": 5455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5450, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5442, + "src": "9266:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5453, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5444, + "src": "9278:1:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 5451, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9270:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9270:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9266:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "9262:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5457, + "nodeType": "ExpressionStatement", + "src": "9262:18:21" + } + ] + }, + "documentation": null, + "id": 5459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uqdiv", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9196:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5441, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9196:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5444, + "mutability": "mutable", + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9207:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5443, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "9207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9195:22:21" + }, + "returnParameters": { + "id": 5448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5447, + "mutability": "mutable", + "name": "z", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5459, + "src": "9241:9:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 5446, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "9241:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9240:11:21" + }, + "scope": 5460, + "src": "9181:106:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6680, + "src": "8895:394:21" + }, + { + "id": 5461, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9333:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5543, + "linearizedBaseContracts": [ + 5543 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5469, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5463, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9397:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5462, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5465, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9420:23:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9420:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5467, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5469, + "src": "9445:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9445:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9396:63:21" + }, + "src": "9382:78:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5477, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5471, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9480:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9480:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5473, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9502:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9502:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5475, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5477, + "src": "9522:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9522:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9479:57:21" + }, + "src": "9465:72:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "06fdde03", + "id": 5482, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5478, + "nodeType": "ParameterList", + "parameters": [], + "src": "9556:2:21" + }, + "returnParameters": { + "id": 5481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5480, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5482, + "src": "9582:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5479, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9582:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9581:15:21" + }, + "scope": 5543, + "src": "9543:54:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "95d89b41", + "id": 5487, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5483, + "nodeType": "ParameterList", + "parameters": [], + "src": "9618:2:21" + }, + "returnParameters": { + "id": 5486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5485, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5487, + "src": "9644:13:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5484, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9644:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9643:15:21" + }, + "scope": 5543, + "src": "9603:56:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "313ce567", + "id": 5492, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5488, + "nodeType": "ParameterList", + "parameters": [], + "src": "9682:2:21" + }, + "returnParameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5490, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5492, + "src": "9708:5:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5489, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "9708:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9707:7:21" + }, + "scope": 5543, + "src": "9665:50:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "18160ddd", + "id": 5497, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5493, + "nodeType": "ParameterList", + "parameters": [], + "src": "9741:2:21" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5495, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5497, + "src": "9767:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9767:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9766:9:21" + }, + "scope": 5543, + "src": "9721:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "70a08231", + "id": 5504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5499, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9801:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9801:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9800:15:21" + }, + "returnParameters": { + "id": 5503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5502, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5504, + "src": "9839:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9839:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9838:9:21" + }, + "scope": 5543, + "src": "9782:66:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "dd62ed3e", + "id": 5513, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5506, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9873:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5505, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9873:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5508, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9888:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9888:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9872:32:21" + }, + "returnParameters": { + "id": 5512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5511, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5513, + "src": "9928:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9928:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9927:9:21" + }, + "scope": 5543, + "src": "9854:83:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 5522, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5515, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9960:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9960:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5517, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "9977:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9959:32:21" + }, + "returnParameters": { + "id": 5521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5520, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5522, + "src": "10010:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5519, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10010:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10009:6:21" + }, + "scope": 5543, + "src": "9943:73:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 5531, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5524, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10040:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10040:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5526, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10052:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10052:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10039:27:21" + }, + "returnParameters": { + "id": 5530, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5531, + "src": "10085:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10085:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10084:6:21" + }, + "scope": 5543, + "src": "10022:69:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "23b872dd", + "id": 5542, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5533, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10128:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5532, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10128:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5535, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10150:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5534, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5537, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10170:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10170:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10118:71:21" + }, + "returnParameters": { + "id": 5541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5540, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5542, + "src": "10208:4:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10208:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10207:6:21" + }, + "scope": 5543, + "src": "10097:117:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "9359:857:21" + }, + { + "id": 5544, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10271:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5605, + "linearizedBaseContracts": [ + 5605 + ], + "name": "IUniswapV2Factory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5554, + "name": "PairCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 5553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5546, + "indexed": true, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10349:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10349:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5548, + "indexed": true, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10373:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10373:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5550, + "indexed": false, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10397:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10397:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5552, + "indexed": false, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5554, + "src": "10411:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10411:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10348:71:21" + }, + "src": "10331:89:21" + }, + { + "body": null, + "documentation": null, + "functionSelector": "017e7e58", + "id": 5559, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5555, + "nodeType": "ParameterList", + "parameters": [], + "src": "10440:2:21" + }, + "returnParameters": { + "id": 5558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5557, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5559, + "src": "10466:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10466:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10465:9:21" + }, + "scope": 5605, + "src": "10426:49:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "094b7415", + "id": 5564, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "feeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5560, + "nodeType": "ParameterList", + "parameters": [], + "src": "10501:2:21" + }, + "returnParameters": { + "id": 5563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5564, + "src": "10527:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5561, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10526:9:21" + }, + "scope": 5605, + "src": "10481:55:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "e6a43905", + "id": 5573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5569, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5566, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10559:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10559:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5568, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10575:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10575:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10558:32:21" + }, + "returnParameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5571, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5573, + "src": "10614:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10613:14:21" + }, + "scope": 5605, + "src": "10542:86:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "1e3dd18b", + "id": 5580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairs", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5575, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10652:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10651:9:21" + }, + "returnParameters": { + "id": 5579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5578, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5580, + "src": "10684:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5577, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10684:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10683:14:21" + }, + "scope": 5605, + "src": "10634:64:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "574f2ba3", + "id": 5585, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allPairsLength", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5581, + "nodeType": "ParameterList", + "parameters": [], + "src": "10727:2:21" + }, + "returnParameters": { + "id": 5584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5585, + "src": "10753:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10753:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10752:9:21" + }, + "scope": 5605, + "src": "10704:58:21", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "c9c65396", + "id": 5594, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "createPair", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5587, + "mutability": "mutable", + "name": "tokenA", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10788:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5586, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10788:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5589, + "mutability": "mutable", + "name": "tokenB", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10804:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10804:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10787:32:21" + }, + "returnParameters": { + "id": 5593, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5592, + "mutability": "mutable", + "name": "pair", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5594, + "src": "10838:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5591, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10838:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10837:14:21" + }, + "scope": 5605, + "src": "10768:84:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "f46901ed", + "id": 5599, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeTo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5596, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5599, + "src": "10876:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5595, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10876:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10875:9:21" + }, + "returnParameters": { + "id": 5598, + "nodeType": "ParameterList", + "parameters": [], + "src": "10893:0:21" + }, + "scope": 5605, + "src": "10858:36:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "functionSelector": "a2e74af6", + "id": 5604, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setFeeToSetter", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5601, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5604, + "src": "10924:7:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10924:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10923:9:21" + }, + "returnParameters": { + "id": 5603, + "nodeType": "ParameterList", + "parameters": [], + "src": "10941:0:21" + }, + "scope": 5605, + "src": "10900:42:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "10297:647:21" + }, + { + "id": 5606, + "literals": [ + "solidity", + ">=", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10998:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 5618, + "linearizedBaseContracts": [ + 5618 + ], + "name": "IUniswapV2Callee", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "functionSelector": "10d1e85c", + "id": 5617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "uniswapV2Call", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5608, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11089:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11089:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5610, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11113:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5612, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11138:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11138:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5614, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5617, + "src": "11163:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5613, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11163:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11079:109:21" + }, + "returnParameters": { + "id": 5616, + "nodeType": "ParameterList", + "parameters": [], + "src": "11197:0:21" + }, + "scope": 5618, + "src": "11057:141:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11024:176:21" + }, + { + "id": 5619, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "11240:22:21" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5620, + "name": "UniswapV2ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5342, + "src": "11290:14:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2ERC20_$5342", + "typeString": "contract UniswapV2ERC20" + } + }, + "id": 5621, + "nodeType": "InheritanceSpecifier", + "src": "11290:14:21" + } + ], + "contractDependencies": [ + 5342 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6679, + "linearizedBaseContracts": [ + 6679, + 5342 + ], + "name": "UniswapV2Pair", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 5624, + "libraryName": { + "contractScope": null, + "id": 5622, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4991, + "src": "11317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$4991", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "11311:27:21", + "typeName": { + "id": 5623, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11330:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5627, + "libraryName": { + "contractScope": null, + "id": 5625, + "name": "UQ112x112", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5460, + "src": "11349:9:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UQ112x112_$5460", + "typeString": "library UQ112x112" + } + }, + "nodeType": "UsingForDirective", + "src": "11343:28:21", + "typeName": { + "id": 5626, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "11363:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + }, + { + "constant": true, + "functionSelector": "ba9a7a56", + "id": 5632, + "mutability": "constant", + "name": "MINIMUM_LIQUIDITY", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11377:49:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11377:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "id": 5631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 5629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11421:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 5630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11425:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11421:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + }, + "visibility": "public" + }, + { + "constant": true, + "id": 5643, + "mutability": "constant", + "name": "SELECTOR", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11432:88:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5633, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11432:6:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 5639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11490:27:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + } + ], + "id": 5638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5637, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11484:5:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11484:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5636, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "11474:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11474:45:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 5634, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11467:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11467:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "c45a0155", + "id": 5645, + "mutability": "mutable", + "name": "factory", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11527:22:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11527:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "0dfe1681", + "id": 5647, + "mutability": "mutable", + "name": "token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11555:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11555:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "d21220a7", + "id": 5649, + "mutability": "mutable", + "name": "token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11582:21:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5648, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11582:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5651, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11610:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5650, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11610:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5653, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11696:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5652, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "11696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 5655, + "mutability": "mutable", + "name": "blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11782:33:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5654, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "11782:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5909c0d5", + "id": 5657, + "mutability": "mutable", + "name": "price0CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11878:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11878:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5a3d5493", + "id": 5659, + "mutability": "mutable", + "name": "price1CumulativeLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11919:35:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11919:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7464fc3d", + "id": 5661, + "mutability": "mutable", + "name": "kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "11960:20:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11960:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5664, + "mutability": "mutable", + "name": "unlocked", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6679, + "src": "12067:28:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12067:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 5663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12094:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "body": { + "id": 5682, + "nodeType": "Block", + "src": "12117:115:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5667, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12135:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12147:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12135:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204c4f434b4544", + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12150:19:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + }, + "value": "UniswapV2: LOCKED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4cc87f075f04bdfaccb0dc54ec0b98f9169b1507a7e83ec8ee97e34d6a77db4a", + "typeString": "literal_string \"UniswapV2: LOCKED\"" + } + ], + "id": 5666, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12127:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12127:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5672, + "nodeType": "ExpressionStatement", + "src": "12127:43:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5673, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12180:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 5674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12191:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12180:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5676, + "nodeType": "ExpressionStatement", + "src": "12180:12:21" + }, + { + "id": 5677, + "nodeType": "PlaceholderStatement", + "src": "12202:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5678, + "name": "unlocked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5664, + "src": "12213:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 5679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12224:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12213:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5681, + "nodeType": "ExpressionStatement", + "src": "12213:12:21" + } + ] + }, + "documentation": null, + "id": 5683, + "name": "lock", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 5665, + "nodeType": "ParameterList", + "parameters": [], + "src": "12114:2:21" + }, + "src": "12101:131:21", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5704, + "nodeType": "Block", + "src": "12422:117:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5692, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5686, + "src": "12432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5693, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "12444:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12432:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5695, + "nodeType": "ExpressionStatement", + "src": "12432:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5696, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5688, + "src": "12462:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5697, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "12474:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "12462:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5699, + "nodeType": "ExpressionStatement", + "src": "12462:20:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5700, + "name": "_blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "12492:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5701, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "12514:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12492:40:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5703, + "nodeType": "ExpressionStatement", + "src": "12492:40:21" + } + ] + }, + "documentation": null, + "functionSelector": "0902f1ac", + "id": 5705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getReserves", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5684, + "nodeType": "ParameterList", + "parameters": [], + "src": "12258:2:21" + }, + "returnParameters": { + "id": 5691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12319:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5685, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12319:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5688, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12350:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5687, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "12350:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5690, + "mutability": "mutable", + "name": "_blockTimestampLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5705, + "src": "12381:26:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5689, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12381:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12305:112:21" + }, + "scope": 6679, + "src": "12238:301:21", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5747, + "nodeType": "Block", + "src": "12648:248:21", + "statements": [ + { + "assignments": [ + 5715, + 5717 + ], + "declarations": [ + { + "constant": false, + "id": 5715, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12659:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5714, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12659:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5717, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5747, + "src": "12673:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5716, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12673:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5727, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5722, + "name": "SELECTOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5643, + "src": "12728:8:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "argumentTypes": null, + "id": 5723, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5709, + "src": "12738:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5711, + "src": "12742:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5720, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12705:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12705:22:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 5725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12705:43:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 5718, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5707, + "src": "12694:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12694:10:21", + "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": 5726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12694:55:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12658:91:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5715, + "src": "12780:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5730, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12792:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12792:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12807:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12792:16:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5736, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5717, + "src": "12823:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 5738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 5737, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12830:4:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 5739, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12829:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "argumentTypes": null, + "id": 5734, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "12812:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12812:10:21", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12812:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12792:44:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12791:46:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12780:57:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a205452414e534645525f4641494c4544", + "id": 5744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12851:28:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + }, + "value": "UniswapV2: TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d8733df98393ec23d211b1de22ecb14bb9ce352e147cbbbe19c11e12e90b7ff2", + "typeString": "literal_string \"UniswapV2: TRANSFER_FAILED\"" + } + ], + "id": 5728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12759:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12759:130:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5746, + "nodeType": "ExpressionStatement", + "src": "12759:130:21" + } + ] + }, + "documentation": null, + "id": 5748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5707, + "mutability": "mutable", + "name": "token", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12577:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5706, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12577:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12600:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5708, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12600:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5711, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5748, + "src": "12620:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5710, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12620:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12567:72:21" + }, + "returnParameters": { + "id": 5713, + "nodeType": "ParameterList", + "parameters": [], + "src": "12648:0:21" + }, + "scope": 6679, + "src": "12545:351:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 5756, + "name": "Mint", + "nodeType": "EventDefinition", + "parameters": { + "id": 5755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5750, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12913:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12913:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5752, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12937:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12937:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5754, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5756, + "src": "12954:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12954:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12912:58:21" + }, + "src": "12902:69:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5766, + "name": "Burn", + "nodeType": "EventDefinition", + "parameters": { + "id": 5765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5758, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "12987:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12987:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5760, + "indexed": false, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13011:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13011:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5762, + "indexed": false, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13028:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5761, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13028:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5764, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5766, + "src": "13045:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5763, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13045:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12986:78:21" + }, + "src": "12976:89:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5780, + "name": "Swap", + "nodeType": "EventDefinition", + "parameters": { + "id": 5779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13090:22:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13090:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "indexed": false, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13122:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13122:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5772, + "indexed": false, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13149:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13149:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5774, + "indexed": false, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13176:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13176:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5776, + "indexed": false, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13204:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13204:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5778, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5780, + "src": "13232:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5777, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13232:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13080:176:21" + }, + "src": "13070:187:21" + }, + { + "anonymous": false, + "documentation": null, + "id": 5786, + "name": "Sync", + "nodeType": "EventDefinition", + "parameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5782, + "indexed": false, + "mutability": "mutable", + "name": "reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13273:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5781, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13273:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5784, + "indexed": false, + "mutability": "mutable", + "name": "reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5786, + "src": "13291:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5783, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13291:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13272:36:21" + }, + "src": "13262:47:21" + }, + { + "body": { + "id": 5794, + "nodeType": "Block", + "src": "13336:37:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5789, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13346:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5790, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13356:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13356:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13346:20:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5793, + "nodeType": "ExpressionStatement", + "src": "13346:20:21" + } + ] + }, + "documentation": null, + "id": 5795, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5787, + "nodeType": "ParameterList", + "parameters": [], + "src": "13326:2:21" + }, + "returnParameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [], + "src": "13336:0:21" + }, + "scope": 6679, + "src": "13315:58:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 5818, + "nodeType": "Block", + "src": "13498:143:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13516:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13516:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5805, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "13530:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13516:21:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20464f5242494444454e", + "id": 5807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13539:22:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + }, + "value": "UniswapV2: FORBIDDEN" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e6d2caae3ed190a2586f9b576de92bc80eab72002acec2261bbed89d68a3b37", + "typeString": "literal_string \"UniswapV2: FORBIDDEN\"" + } + ], + "id": 5802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13508:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13508:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5809, + "nodeType": "ExpressionStatement", + "src": "13508:54:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5810, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "13592:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5811, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5797, + "src": "13601:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13592:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5813, + "nodeType": "ExpressionStatement", + "src": "13592:16:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5814, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "13618:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5815, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5799, + "src": "13627:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13618:16:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5817, + "nodeType": "ExpressionStatement", + "src": "13618:16:21" + } + ] + }, + "documentation": null, + "functionSelector": "485cc955", + "id": 5819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5800, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5797, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13455:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5796, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13455:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5799, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5819, + "src": "13472:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5798, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13472:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13454:34:21" + }, + "returnParameters": { + "id": 5801, + "nodeType": "ParameterList", + "parameters": [], + "src": "13498:0:21" + }, + "scope": 6679, + "src": "13435:206:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 5933, + "nodeType": "Block", + "src": "13860:824:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5831, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "13878:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13898:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5832, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13890:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5836, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13890:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13878:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5838, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "13905:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "13925:2:21", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 5841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13926:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 5840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5839, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13917:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13917:11:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "13905:23:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13878:50:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204f564552464c4f57", + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13930:21:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + }, + "value": "UniswapV2: OVERFLOW" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a5d1f08cd66a1a59e841a286c7f2c877311b5d331d2315cd2fe3c5f05e833928", + "typeString": "literal_string \"UniswapV2: OVERFLOW\"" + } + ], + "id": 5830, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13870:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5848, + "nodeType": "ExpressionStatement", + "src": "13870:82:21" + }, + { + "assignments": [ + 5850 + ], + "declarations": [ + { + "constant": false, + "id": 5850, + "mutability": "mutable", + "name": "blockTimestamp", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "13962:21:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5849, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13962:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5853, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "13993:5:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13993:15:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14011:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3332", + "id": 5856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14014:2:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14011:5:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "13993:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 5851, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13986:6:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13986:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13962:55:21" + }, + { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "timeElapsed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5933, + "src": "14027:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 5861, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "14027:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5863, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14048:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 5864, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14065:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14048:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14027:56:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5867, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14120:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14134:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14120:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5870, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14139:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14152:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14139:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5874, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14157:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14170:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14157:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14120:51:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5909, + "nodeType": "IfStatement", + "src": "14116:402:21", + "trueBody": { + "id": 5908, + "nodeType": "Block", + "src": "14173:345:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5878, + "name": "price0CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "14247:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5886, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14329:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5883, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14312:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5881, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14295:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14295:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14295:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14295:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5879, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14287:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5889, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14359:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14287:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14247:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5892, + "nodeType": "ExpressionStatement", + "src": "14247:123:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5893, + "name": "price1CumulativeLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "14384:20:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5901, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5827, + "src": "14466:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5898, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5825, + "src": "14449:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 5896, + "name": "UQ112x112", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5460, + "src": "14432:9:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_UQ112x112_$5460_$", + "typeString": "type(library UQ112x112)" + } + }, + "id": 5897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": 5440, + "src": "14432:16:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint112_$returns$_t_uint224_$", + "typeString": "function (uint112) pure returns (uint224)" + } + }, + "id": 5899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "id": 5900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uqdiv", + "nodeType": "MemberAccess", + "referencedDeclaration": 5459, + "src": "14432:33:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint224_$_t_uint112_$returns$_t_uint224_$bound_to$_t_uint224_$", + "typeString": "function (uint224,uint112) pure returns (uint224)" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14432:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + ], + "id": 5895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5894, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14424:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14424:53:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 5904, + "name": "timeElapsed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "14496:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14424:83:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14384:123:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5907, + "nodeType": "ExpressionStatement", + "src": "14384:123:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 5915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5910, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14527:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5913, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5821, + "src": "14546:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5911, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14538:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14538:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14527:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5916, + "nodeType": "ExpressionStatement", + "src": "14527:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5917, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14565:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5920, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5823, + "src": "14584:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 5918, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14576:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14576:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "14565:28:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "id": 5923, + "nodeType": "ExpressionStatement", + "src": "14565:28:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5924, + "name": "blockTimestampLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "14603:18:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "blockTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "14624:14:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14603:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "14603:35:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5929, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "14658:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 5930, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "14668:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5928, + "name": "Sync", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5786, + "src": "14653:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint112,uint112)" + } + }, + "id": 5931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14653:24:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5932, + "nodeType": "EmitStatement", + "src": "14648:29:21" + } + ] + }, + "documentation": null, + "id": 5934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_update", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5821, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13749:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13749:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5823, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13775:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5825, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13801:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5824, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13801:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5827, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 5934, + "src": "13828:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5826, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "13828:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13739:112:21" + }, + "returnParameters": { + "id": 5829, + "nodeType": "ParameterList", + "parameters": [], + "src": "13860:0:21" + }, + "scope": 6679, + "src": "13723:961:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6041, + "nodeType": "Block", + "src": "14856:755:21", + "statements": [ + { + "assignments": [ + 5944 + ], + "declarations": [ + { + "constant": false, + "id": 5944, + "mutability": "mutable", + "name": "feeTo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14866:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14866:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5950, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5946, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5645, + "src": "14900:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5945, + "name": "IUniswapV2Factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5605, + "src": "14882:17:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Factory_$5605_$", + "typeString": "type(contract IUniswapV2Factory)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:26:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Factory_$5605", + "typeString": "contract IUniswapV2Factory" + } + }, + "id": 5948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "feeTo", + "nodeType": "MemberAccess", + "referencedDeclaration": 5559, + "src": "14882:32:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14882:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14866:50:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 5958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5951, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "14926:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5952, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "14934:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14951:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5953, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14943:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14943:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14934:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14926:27:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5959, + "nodeType": "ExpressionStatement", + "src": "14926:27:21" + }, + { + "assignments": [ + 5961 + ], + "declarations": [ + { + "constant": false, + "id": 5961, + "mutability": "mutable", + "name": "_kLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6041, + "src": "14963:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14963:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5963, + "initialValue": { + "argumentTypes": null, + "id": 5962, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "14980:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14963:22:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 5964, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5941, + "src": "15014:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6031, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15558:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15568:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15558:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6039, + "nodeType": "IfStatement", + "src": "15554:51:21", + "trueBody": { + "id": 6038, + "nodeType": "Block", + "src": "15571:34:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6034, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "15585:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 6035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15593:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15585:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6037, + "nodeType": "ExpressionStatement", + "src": "15585:9:21" + } + ] + } + }, + "id": 6040, + "nodeType": "IfStatement", + "src": "15010:595:21", + "trueBody": { + "id": 6030, + "nodeType": "Block", + "src": "15021:527:21", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15039:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15049:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15039:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6029, + "nodeType": "IfStatement", + "src": "15035:503:21", + "trueBody": { + "id": 6028, + "nodeType": "Block", + "src": "15052:486:21", + "statements": [ + { + "assignments": [ + 5969 + ], + "declarations": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "rootK", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15070:13:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5980, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5977, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5938, + "src": "15119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5974, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5936, + "src": "15104:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 5973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15096:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 5975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15096: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": 5978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15096:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5970, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15086:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15086:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15086:44:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15070:60:21" + }, + { + "assignments": [ + 5982 + ], + "declarations": [ + { + "constant": false, + "id": 5982, + "mutability": "mutable", + "name": "rootKLast", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6028, + "src": "15148:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15148:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5987, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5985, + "name": "_kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5961, + "src": "15178:6:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5983, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "15168:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 5984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "15168:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15168:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15148:37:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5988, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15207:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 5989, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15215:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15207:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "15203:321:21", + "trueBody": { + "id": 6026, + "nodeType": "Block", + "src": "15226:298:21", + "statements": [ + { + "assignments": [ + 5992 + ], + "declarations": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "numerator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15248:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15248:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6000, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5997, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15294:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5995, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15284:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "15284:9: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": 5998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15284:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5993, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "15268:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15268:15: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": 5999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15268:37:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15248:57:21" + }, + { + "assignments": [ + 6002 + ], + "declarations": [ + { + "constant": false, + "id": 6002, + "mutability": "mutable", + "name": "denominator", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15327:19:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15327:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6010, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6008, + "name": "rootKLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5982, + "src": "15366:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 6005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15359:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 6003, + "name": "rootK", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5969, + "src": "15349:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "15349:9: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": 6006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:12:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 4940, + "src": "15349: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": 6009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15349:27:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15327:49:21" + }, + { + "assignments": [ + 6012 + ], + "declarations": [ + { + "constant": false, + "id": 6012, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6026, + "src": "15398:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15398:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6016, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6013, + "name": "numerator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5992, + "src": "15418:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6014, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6002, + "src": "15430:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15418:23:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15398:43:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6017, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15467:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15479:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15467:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6025, + "nodeType": "IfStatement", + "src": "15463:42:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6021, + "name": "feeTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5944, + "src": "15488:5:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6022, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6012, + "src": "15495:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6020, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "15482:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15482:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6024, + "nodeType": "ExpressionStatement", + "src": "15482:23:21" + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "documentation": null, + "id": 6042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mintFee", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 5939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5936, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14789:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5935, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14789:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5938, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14808:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 5937, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "14808:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14788:38:21" + }, + "returnParameters": { + "id": 5942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5941, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6042, + "src": "14844:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14844:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14843:12:21" + }, + "scope": 6679, + "src": "14771:840:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6190, + "nodeType": "Block", + "src": "15788:1220:21", + "statements": [ + { + "assignments": [ + 6052, + 6054, + null + ], + "declarations": [ + { + "constant": false, + "id": 6052, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15799:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6051, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15799:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6054, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15818:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6053, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "15818:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6057, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6055, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "15841:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15841:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15798:56:21" + }, + { + "assignments": [ + 6059 + ], + "declarations": [ + { + "constant": false, + "id": 6059, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15879:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6058, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15879:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6069, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15931:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15923:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15923:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6061, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "15905:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6060, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15898:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15898:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15879:58:21" + }, + { + "assignments": [ + 6071 + ], + "declarations": [ + { + "constant": false, + "id": 6071, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "15947:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15947:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6081, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6078, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "15999:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6076, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15991:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15991:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6073, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "15973:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6072, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "15966:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "15966:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15966:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:58:21" + }, + { + "assignments": [ + 6083 + ], + "declarations": [ + { + "constant": false, + "id": 6083, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16015:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16015:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6088, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6086, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16046:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6084, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16033:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16033:12: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": 6087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16033:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16015:41:21" + }, + { + "assignments": [ + 6090 + ], + "declarations": [ + { + "constant": false, + "id": 6090, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16066:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16066:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6095, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6093, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16097:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "id": 6091, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16084:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16084:12: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": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16084:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16066:41:21" + }, + { + "assignments": [ + 6097 + ], + "declarations": [ + { + "constant": false, + "id": 6097, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16118:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6096, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16118:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6102, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6099, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16140:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6100, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16151:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6098, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "16131:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16131:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16118:43:21" + }, + { + "assignments": [ + 6104 + ], + "declarations": [ + { + "constant": false, + "id": 6104, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6190, + "src": "16171:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16171:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6106, + "initialValue": { + "argumentTypes": null, + "id": 6105, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "16194:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16171:34:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6107, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16297:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16313:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16297:17:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6150, + "nodeType": "Block", + "src": "16518:169:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6132, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16532:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6137, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16582:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6135, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16570:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16570:11: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": 6138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16570:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6139, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16598:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16570:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6143, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6104, + "src": "16637:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6141, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16625:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16625:11: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": 6144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16625:25:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6145, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16653:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "16625:37:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6133, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16544:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 5362, + "src": "16544:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16544:132:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16532:144:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6149, + "nodeType": "ExpressionStatement", + "src": "16532:144:21" + } + ] + }, + "id": 6151, + "nodeType": "IfStatement", + "src": "16293:394:21", + "trueBody": { + "id": 6131, + "nodeType": "Block", + "src": "16316:196:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6110, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16330:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6119, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16378:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6115, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16364:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6113, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16352:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16352:11: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": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16352:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6111, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5417, + "src": "16342:4:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$5417_$", + "typeString": "type(library Math)" + } + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sqrt", + "nodeType": "MemberAccess", + "referencedDeclaration": 5416, + "src": "16342:9:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "16342:35: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": 6120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16342:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16330:66:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6122, + "nodeType": "ExpressionStatement", + "src": "16330:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16424:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16416:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16416:10:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6128, + "name": "MINIMUM_LIQUIDITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5632, + "src": "16428:17:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6123, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16410:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16410:36:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6130, + "nodeType": "ExpressionStatement", + "src": "16410:36:21" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6153, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16704:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16716:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16704:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544", + "id": 6156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16719:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6591c9f5bf1fefaad109b76a20e25c857b696080c952191f86220f001a83663e", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED\"" + } + ], + "id": 6152, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "16696:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16696:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "16696:66:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6160, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6044, + "src": "16778:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6161, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6049, + "src": "16782:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6159, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5076, + "src": "16772:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16772:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6163, + "nodeType": "ExpressionStatement", + "src": "16772:20:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6165, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6059, + "src": "16811:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6166, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "16821:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6167, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "16831:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6168, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6054, + "src": "16842:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6164, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "16803:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16803:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6170, + "nodeType": "ExpressionStatement", + "src": "16803:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6171, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6097, + "src": "16866:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6182, + "nodeType": "IfStatement", + "src": "16862:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6172, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "16873:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6178, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "16903:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "16889:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16881:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "16881:21: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": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16881:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6181, + "nodeType": "ExpressionStatement", + "src": "16873:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "16972:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16972:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6186, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6083, + "src": "16984:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6187, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6090, + "src": "16993:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6183, + "name": "Mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "16967:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 6188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16967:34:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6189, + "nodeType": "EmitStatement", + "src": "16962:39:21" + } + ] + }, + "documentation": null, + "functionSelector": "6a627842", + "id": 6191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6047, + "modifierName": { + "argumentTypes": null, + "id": 6046, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "15755:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15755:4:21" + } + ], + "name": "mint", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6044, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15734:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6043, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15734:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15733:12:21" + }, + "returnParameters": { + "id": 6050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6049, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6191, + "src": "15769:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15769:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15768:19:21" + }, + "scope": 6679, + "src": "15720:1288:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6361, + "nodeType": "Block", + "src": "17200:1321:21", + "statements": [ + { + "assignments": [ + 6203, + 6205, + null + ], + "declarations": [ + { + "constant": false, + "id": 6203, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17211:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6202, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17211:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6205, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17230:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6204, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "17230:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6208, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6206, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "17253:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17253:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17210:56:21" + }, + { + "assignments": [ + 6210 + ], + "declarations": [ + { + "constant": false, + "id": 6210, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17291:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17291:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6212, + "initialValue": { + "argumentTypes": null, + "id": 6211, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "17309:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17291:24:21" + }, + { + "assignments": [ + 6214 + ], + "declarations": [ + { + "constant": false, + "id": 6214, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17340:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17340:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6216, + "initialValue": { + "argumentTypes": null, + "id": 6215, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "17358:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17340:24:21" + }, + { + "assignments": [ + 6218 + ], + "declarations": [ + { + "constant": false, + "id": 6218, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17389:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6217, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17389:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6228, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6225, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17442:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6223, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17434:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17434:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6220, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "17415:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6219, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17408:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17408:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17408:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17389:59:21" + }, + { + "assignments": [ + 6230 + ], + "declarations": [ + { + "constant": false, + "id": 6230, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17458:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17458:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6240, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6237, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17511:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17503:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17503:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6232, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "17484:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6231, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "17477:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "17477:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17477:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17458:59:21" + }, + { + "assignments": [ + 6242 + ], + "declarations": [ + { + "constant": false, + "id": 6242, + "mutability": "mutable", + "name": "liquidity", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17527:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17527:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6249, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6243, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5010, + "src": "17547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6248, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6246, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "17565:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6244, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17557:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17557:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17547:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17527:44:21" + }, + { + "assignments": [ + 6251 + ], + "declarations": [ + { + "constant": false, + "id": 6251, + "mutability": "mutable", + "name": "feeOn", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17582:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6250, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17582:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6256, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6253, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "17604:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6254, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "17615:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6252, + "name": "_mintFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6042, + "src": "17595:8:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint112_$_t_uint112_$returns$_t_bool_$", + "typeString": "function (uint112,uint112) returns (bool)" + } + }, + "id": 6255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17595:30:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17582:43:21" + }, + { + "assignments": [ + 6258 + ], + "declarations": [ + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6361, + "src": "17635:20:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17635:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6260, + "initialValue": { + "argumentTypes": null, + "id": 6259, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5006, + "src": "17658:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17635:34:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6261, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17757:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6264, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "17781:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6262, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17767:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17767:13: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": 6265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17767:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6266, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17793:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17767:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17757:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6269, + "nodeType": "ExpressionStatement", + "src": "17757:48:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6270, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17863:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6273, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "17887:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6271, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "17873:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "17873:13: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": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17873:23:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 6275, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "17899:12:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17873:38:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17863:48:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6278, + "nodeType": "ExpressionStatement", + "src": "17863:48:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6280, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "17977:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17987:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17977:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6283, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "17992:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18002:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17992:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17977:26:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544", + "id": 6287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18005:42:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_57ebfb4dd8b5082cdba0f23c17077e3b0ecb9782a51e0e9a15e9bc8c4b30c562", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED\"" + } + ], + "id": 6279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "17969:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17969:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6289, + "nodeType": "ExpressionStatement", + "src": "17969:79:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6293, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18072:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18064:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18064:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6295, + "name": "liquidity", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6242, + "src": "18079:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5111, + "src": "18058:5:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18058:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6297, + "nodeType": "ExpressionStatement", + "src": "18058:31:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6299, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18113:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6300, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18122:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6301, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18126:7: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": 6298, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18099:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18099:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6303, + "nodeType": "ExpressionStatement", + "src": "18099:35:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6305, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18158:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6306, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18167:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6307, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18171:7: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": 6304, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "18144:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18144:35:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6309, + "nodeType": "ExpressionStatement", + "src": "18144:35:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6310, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18189:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6317, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18234:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18226:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18226:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6312, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6210, + "src": "18207:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6311, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18200:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18200:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18200:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18189:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6321, + "nodeType": "ExpressionStatement", + "src": "18189:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6322, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18250:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6329, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "18295:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18287:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18287:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6324, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6214, + "src": "18268:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6323, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "18261:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "18261:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18261:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18250:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6333, + "nodeType": "ExpressionStatement", + "src": "18250:51:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6335, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6218, + "src": "18320:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6336, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6230, + "src": "18330:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6337, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6203, + "src": "18340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6338, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6205, + "src": "18351:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6334, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "18312:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18312:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6340, + "nodeType": "ExpressionStatement", + "src": "18312:49:21" + }, + { + "condition": { + "argumentTypes": null, + "id": 6341, + "name": "feeOn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6251, + "src": "18375:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6352, + "nodeType": "IfStatement", + "src": "18371:50:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 6350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6342, + "name": "kLast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5661, + "src": "18382:5:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6348, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "18412:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6345, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "18398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18390:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:17:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "18390:21: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": 6349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18390:31:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18382:39:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6351, + "nodeType": "ExpressionStatement", + "src": "18382:39:21" + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6354, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "18481:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18481:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6356, + "name": "amount0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6198, + "src": "18493:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6357, + "name": "amount1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "18502:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6358, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6193, + "src": "18511:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6353, + "name": "Burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5766, + "src": "18476:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,address)" + } + }, + "id": 6359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18476:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6360, + "nodeType": "EmitStatement", + "src": "18471:43:21" + } + ] + }, + "documentation": null, + "functionSelector": "89afcb44", + "id": 6362, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6196, + "modifierName": { + "argumentTypes": null, + "id": 6195, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "17152:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17152:4:21" + } + ], + "name": "burn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6193, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17131:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17131:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17130:12:21" + }, + "returnParameters": { + "id": 6201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6198, + "mutability": "mutable", + "name": "amount0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17166:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17166:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "amount1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6362, + "src": "17183:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17183:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17165:34:21" + }, + "scope": 6679, + "src": "17117:1404:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6598, + "nodeType": "Block", + "src": "18769:2020:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6376, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18787:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18800:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18787:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6379, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18805:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18818:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18805:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18787:32:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54", + "id": 6383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18821:39:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_05339493da7e2cbe77e17beadf6b91132eb307939495f5f1797bf88d95539e83", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT\"" + } + ], + "id": 6375, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18779:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18779:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6385, + "nodeType": "ExpressionStatement", + "src": "18779:82:21" + }, + { + "assignments": [ + 6387, + 6389, + null + ], + "declarations": [ + { + "constant": false, + "id": 6387, + "mutability": "mutable", + "name": "_reserve0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18872:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6386, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18872:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6389, + "mutability": "mutable", + "name": "_reserve1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "18891:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 6388, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "18891:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "value": null, + "visibility": "internal" + }, + null + ], + "id": 6392, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6390, + "name": "getReserves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "18914:11:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "function () view returns (uint112,uint112,uint32)" + } + }, + "id": 6391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18914:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$", + "typeString": "tuple(uint112,uint112,uint32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18871:56:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6394, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "18973:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6395, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "18986:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18973:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6397, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "18999:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 6398, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "19012:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "18999:22:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18973:48:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f4c4951554944495459", + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19035:35:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + }, + "value": "UniswapV2: INSUFFICIENT_LIQUIDITY" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3f354ef449b2a9b081220ce21f57691008110b653edc191d8288e60cef58bb5f", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_LIQUIDITY\"" + } + ], + "id": 6393, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "18952:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18952:128:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6403, + "nodeType": "ExpressionStatement", + "src": "18952:128:21" + }, + { + "assignments": [ + 6405 + ], + "declarations": [ + { + "constant": false, + "id": 6405, + "mutability": "mutable", + "name": "balance0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19091:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19091:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6406, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19091:16:21" + }, + { + "assignments": [ + 6408 + ], + "declarations": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "balance1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19117:16:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19117:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6409, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "19117:16:21" + }, + { + "id": 6489, + "nodeType": "Block", + "src": "19143:701:21", + "statements": [ + { + "assignments": [ + 6411 + ], + "declarations": [ + { + "constant": false, + "id": 6411, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19224:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19224:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6413, + "initialValue": { + "argumentTypes": null, + "id": 6412, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "19242:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19224:24:21" + }, + { + "assignments": [ + 6415 + ], + "declarations": [ + { + "constant": false, + "id": 6415, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6489, + "src": "19262:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19262:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6417, + "initialValue": { + "argumentTypes": null, + "id": 6416, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "19280:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19262:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6419, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19308:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6420, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19314:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19308:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6422, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19325:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 6423, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19331:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19325:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19308:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e56414c49445f544f", + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19340:23:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + }, + "value": "UniswapV2: INVALID_TO" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25d395026e6e4dd4e9808c7d6d3dd1f45abaf4874ae71f7161fff58de03154d3", + "typeString": "literal_string \"UniswapV2: INVALID_TO\"" + } + ], + "id": 6418, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "19300:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19300:64:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6428, + "nodeType": "ExpressionStatement", + "src": "19300:64:21" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6429, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19382:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6430, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19395:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19382:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6438, + "nodeType": "IfStatement", + "src": "19378:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6433, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6434, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19421:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6435, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19425:10: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": 6432, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19398:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19398:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6437, + "nodeType": "ExpressionStatement", + "src": "19398:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6439, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19488:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6440, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19501:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19488:14:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6448, + "nodeType": "IfStatement", + "src": "19484:58:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6443, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19518:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6444, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19527:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6445, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19531:10: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": 6442, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "19504:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19504:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6447, + "nodeType": "ExpressionStatement", + "src": "19504:38:21" + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6449, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19594:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "id": 6450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19594:11:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19608:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19594:15:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 6464, + "nodeType": "IfStatement", + "src": "19590:113:21", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6457, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "19662:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19662:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6459, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19674:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6460, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "19686:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6461, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6370, + "src": "19698:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6454, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "19644:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6453, + "name": "IUniswapV2Callee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5618, + "src": "19627:16:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IUniswapV2Callee_$5618_$", + "typeString": "type(contract IUniswapV2Callee)" + } + }, + "id": 6455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:20:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IUniswapV2Callee_$5618", + "typeString": "contract IUniswapV2Callee" + } + }, + "id": 6456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "uniswapV2Call", + "nodeType": "MemberAccess", + "referencedDeclaration": 5617, + "src": "19627:34:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,bytes memory) external" + } + }, + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19627:76:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6463, + "nodeType": "ExpressionStatement", + "src": "19627:76:21" + } + }, + { + "expression": { + "argumentTypes": null, + "id": 6475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6465, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19717:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6472, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19762:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6470, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19754:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19754:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6467, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6411, + "src": "19735:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6466, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19728:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19728:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19717:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6476, + "nodeType": "ExpressionStatement", + "src": "19717:51:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 6487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6477, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "19782:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "19827:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19819:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19819:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6479, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6415, + "src": "19800:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6478, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "19793:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "19793:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19793:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19782:51:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6488, + "nodeType": "ExpressionStatement", + "src": "19782:51:21" + } + ] + }, + { + "assignments": [ + 6491 + ], + "declarations": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "amount0In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19853:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19853:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6505, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6492, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19873:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6493, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19884:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6494, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19896:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19884:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19873:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19971:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19873:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6497, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "19921:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6498, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "19933:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6499, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "19945:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19933:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6501, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19932:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19921:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19853:119:21" + }, + { + "assignments": [ + 6507 + ], + "declarations": [ + { + "constant": false, + "id": 6507, + "mutability": "mutable", + "name": "amount1In", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6598, + "src": "19982:17:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19982:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6521, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6508, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20002:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6509, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20013:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6510, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20025:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20013:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20002:33:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20100:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20002:99:21", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6513, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20050:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6514, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20062:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 6515, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20074:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20062:22:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 6517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "20061:24:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20050:35:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19982:119:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6523, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20119:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20131:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20119:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20136:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20148:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20136:13:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "20119:30:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54", + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20151:38:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + }, + "value": "UniswapV2: INSUFFICIENT_INPUT_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10e2efc32d8a31d3b2c11a545b3ed09c2dbabc58ef6de4033929d0002e425b67", + "typeString": "literal_string \"UniswapV2: INSUFFICIENT_INPUT_AMOUNT\"" + } + ], + "id": 6522, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20111:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20111:79:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6532, + "nodeType": "ExpressionStatement", + "src": "20111:79:21" + }, + { + "id": 6580, + "nodeType": "Block", + "src": "20200:442:21", + "statements": [ + { + "assignments": [ + 6534 + ], + "declarations": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "balance0Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20290:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20290:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6545, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20354:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6540, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20340:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20340:13: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": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20340:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20330:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6535, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20317:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20317:12: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": 6538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20317: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": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20317:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20290:67:21" + }, + { + "assignments": [ + 6547 + ], + "declarations": [ + { + "constant": false, + "id": 6547, + "mutability": "mutable", + "name": "balance1Adjusted", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6580, + "src": "20371:24:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20371:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6558, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "33", + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20435:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + } + ], + "expression": { + "argumentTypes": null, + "id": 6553, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20421:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20421:13: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": 6556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20421:16:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20411:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + } + ], + "expression": { + "argumentTypes": null, + "id": 6548, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20398:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20398:12: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": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "20398: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": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20398:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20371:67:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6562, + "name": "balance1Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6547, + "src": "20498:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6560, + "name": "balance0Adjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "20477:16:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20477:20: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": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20477:38:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + }, + "id": 6574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 6572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20577:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 6573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20583:1:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20577:7:21", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1000000_by_1", + "typeString": "int_const 1000000" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6569, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20562:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6566, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20547:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20539:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:18:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539: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": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:33:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 4990, + "src": "20539:37: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": 6575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20539:46:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20477:108:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "556e697377617056323a204b", + "id": 6577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20603:14:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + }, + "value": "UniswapV2: K" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b159bbb975f5448705db79eafd212ba91c20fe5a110a13759239545d3339af", + "typeString": "literal_string \"UniswapV2: K\"" + } + ], + "id": 6559, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "20452:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20452:179:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6579, + "nodeType": "ExpressionStatement", + "src": "20452:179:21" + } + ] + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6582, + "name": "balance0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6405, + "src": "20660:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6583, + "name": "balance1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6408, + "src": "20670:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6584, + "name": "_reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6387, + "src": "20680:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6585, + "name": "_reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6389, + "src": "20691:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6581, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "20652:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20652:49:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6587, + "nodeType": "ExpressionStatement", + "src": "20652:49:21" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6589, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "20721:3:21", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20721:10:21", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6591, + "name": "amount0In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6491, + "src": "20733:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6592, + "name": "amount1In", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6507, + "src": "20744:9:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6593, + "name": "amount0Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6364, + "src": "20755:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6594, + "name": "amount1Out", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6366, + "src": "20767:10:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6595, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6368, + "src": "20779:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6588, + "name": "Swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5780, + "src": "20716:4:21", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256,address)" + } + }, + "id": 6596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20716:66:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6597, + "nodeType": "EmitStatement", + "src": "20711:71:21" + } + ] + }, + "documentation": null, + "functionSelector": "022c0d9f", + "id": 6599, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6373, + "modifierName": { + "argumentTypes": null, + "id": 6372, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "18764:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "18764:4:21" + } + ], + "name": "swap", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6371, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6364, + "mutability": "mutable", + "name": "amount0Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18653:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6363, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18653:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6366, + "mutability": "mutable", + "name": "amount1Out", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18681:18:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18681:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6368, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18709:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18709:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6370, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6599, + "src": "18729:19:21", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6369, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18729:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18643:111:21" + }, + "returnParameters": { + "id": 6374, + "nodeType": "ParameterList", + "parameters": [], + "src": "18769:0:21" + }, + "scope": 6679, + "src": "18630:2159:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6648, + "nodeType": "Block", + "src": "20875:289:21", + "statements": [ + { + "assignments": [ + 6607 + ], + "declarations": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "_token0", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20885:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6606, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20885:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6609, + "initialValue": { + "argumentTypes": null, + "id": 6608, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "20903:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20885:24:21" + }, + { + "assignments": [ + 6611 + ], + "declarations": [ + { + "constant": false, + "id": 6611, + "mutability": "mutable", + "name": "_token1", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6648, + "src": "20934:15:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20934:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6613, + "initialValue": { + "argumentTypes": null, + "id": 6612, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "20952:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20934:24:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6615, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "20997:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21006:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6627, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21055:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6623, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21044:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21036:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21036:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6618, + "name": "_token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6607, + "src": "21017:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6617, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21010:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21010:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21010:44: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": 6628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21010:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6614, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "20983:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20983:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6630, + "nodeType": "ExpressionStatement", + "src": "20983:82:21" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6632, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21089:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6633, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6601, + "src": "21098:2:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6644, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21147:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6640, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21136:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6638, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21128:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21128:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6635, + "name": "_token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6611, + "src": "21109:7:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6634, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21102:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:15:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21102:25:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:40:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 4962, + "src": "21102:44: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": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21102:54:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6631, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5748, + "src": "21075:13:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21075:82:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "21075:82:21" + } + ] + }, + "documentation": null, + "functionSelector": "bc25cf77", + "id": 6649, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6604, + "modifierName": { + "argumentTypes": null, + "id": 6603, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "20870:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "20870:4:21" + } + ], + "name": "skim", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6601, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 6649, + "src": "20849:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20849:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20848:12:21" + }, + "returnParameters": { + "id": 6605, + "nodeType": "ParameterList", + "parameters": [], + "src": "20875:0:21" + }, + "scope": 6679, + "src": "20835:329:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 6677, + "nodeType": "Block", + "src": "21240:184:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6661, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21304:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6659, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21296:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21296:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6656, + "name": "token0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5647, + "src": "21278:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6655, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21271:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21271:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21271:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6670, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "21357:4:21", + "typeDescriptions": { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_UniswapV2Pair_$6679", + "typeString": "contract UniswapV2Pair" + } + ], + "id": 6669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 6668, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21349:7:21", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 6671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21349:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6665, + "name": "token1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5649, + "src": "21331:6:21", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6664, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5543, + "src": "21324:6:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$5543_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:14:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$5543", + "typeString": "contract IERC20" + } + }, + "id": 6667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 5504, + "src": "21324:24:21", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 6672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21324:39:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6673, + "name": "reserve0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "21377:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + { + "argumentTypes": null, + "id": 6674, + "name": "reserve1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5653, + "src": "21399:8:21", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + ], + "id": 6654, + "name": "_update", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5934, + "src": "21250:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint112_$_t_uint112_$returns$__$", + "typeString": "function (uint256,uint256,uint112,uint112)" + } + }, + "id": 6675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21250:167:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6676, + "nodeType": "ExpressionStatement", + "src": "21250:167:21" + } + ] + }, + "documentation": null, + "functionSelector": "fff6cae9", + "id": 6678, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6652, + "modifierName": { + "argumentTypes": null, + "id": 6651, + "name": "lock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5683, + "src": "21235:4:21", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:4:21" + } + ], + "name": "sync", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 6650, + "nodeType": "ParameterList", + "parameters": [], + "src": "21223:2:21" + }, + "returnParameters": { + "id": 6653, + "nodeType": "ParameterList", + "parameters": [], + "src": "21240:0:21" + }, + "scope": 6679, + "src": "21210:214:21", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 6680, + "src": "11264:10162:21" + } + ], + "src": "118:21309:21" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.658Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/build-v1/contracts/WETH9.json b/build-v1/contracts/WETH9.json new file mode 100644 index 0000000..8cffa62 --- /dev/null +++ b/build-v1/contracts/WETH9.json @@ -0,0 +1,6950 @@ +{ + "contractName": "WETH9", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "guy", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "Deposit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "Withdrawal", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "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": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + }, + { + "inputs": [], + "name": "deposit", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "guy", + "type": "address" + }, + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "src", + "type": "address" + }, + { + "internalType": "address", + "name": "dst", + "type": "address" + }, + { + "internalType": "uint256", + "name": "wad", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.9+commit.3e3065ac\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"guy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"src\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"dst\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"wad\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestWETH.sol\":\"WETH9\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestWETH.sol\":{\"keccak256\":\"0x72eaab74270627103011243f9c2d1e91ab18e234b08426981ad9da129c76797f\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://de33b645dd3cf368de9074ebddbf1a40ce697e6d320a330ca6f7bb5c2bc7d349\",\"dweb:/ipfs/Qmf9QyTZSBExDnqWFHbheZkuc8Uh8efjq5LamhniGqdgtn\"]}},\"version\":1}", + "bytecode": "0x60c0604052600d60808190526c2bb930b83832b21022ba3432b960991b60a090815261002e916000919061007a565b50604080518082019091526004808252630ae8aa8960e31b602090920191825261005a9160019161007a565b506002805460ff1916601217905534801561007457600080fd5b50610115565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100bb57805160ff19168380011785556100e8565b828001600101855582156100e8579182015b828111156100e85782518255916020019190600101906100cd565b506100f49291506100f8565b5090565b61011291905b808211156100f457600081556001016100fe565b90565b6106f5806101246000396000f3fe6080604052600436106100a05760003560e01c8063313ce56711610064578063313ce5671461022257806370a082311461024d57806395d89b4114610280578063a9059cbb14610295578063d0e30db0146100af578063dd62ed3e146102ce576100af565b806306fdde03146100b7578063095ea7b31461014157806318160ddd1461018e57806323b872dd146101b55780632e1a7d4d146101f8576100af565b366100af576100ad610309565b005b6100ad610309565b3480156100c357600080fd5b506100cc610358565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101065781810151838201526020016100ee565b50505050905090810190601f1680156101335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014d57600080fd5b5061017a6004803603604081101561016457600080fd5b506001600160a01b0381351690602001356103e6565b604080519115158252519081900360200190f35b34801561019a57600080fd5b506101a361044c565b60408051918252519081900360200190f35b3480156101c157600080fd5b5061017a600480360360608110156101d857600080fd5b506001600160a01b03813581169160208101359091169060400135610450565b34801561020457600080fd5b506100ad6004803603602081101561021b57600080fd5b5035610584565b34801561022e57600080fd5b50610237610619565b6040805160ff9092168252519081900360200190f35b34801561025957600080fd5b506101a36004803603602081101561027057600080fd5b50356001600160a01b0316610622565b34801561028c57600080fd5b506100cc610634565b3480156102a157600080fd5b5061017a600480360360408110156102b857600080fd5b506001600160a01b03813516906020013561068e565b3480156102da57600080fd5b506101a3600480360360408110156102f157600080fd5b506001600160a01b03813581169160200135166106a2565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103de5780601f106103b3576101008083540402835291602001916103de565b820191906000526020600020905b8154815290600101906020018083116103c157829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561047557600080fd5b6001600160a01b03841633148015906104b357506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b15610513576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104e857600080fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105a057600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105df573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103de5780601f106103b3576101008083540402835291602001916103de565b600061069b338484610450565b9392505050565b60046020908152600092835260408084209091529082529020548156fea2646970667358221220656960ed51ceeb98837f88334f94fa275f8bae235d2c1c5d54e882b8cfc0165964736f6c63430006090033", + "deployedBytecode": "0x6080604052600436106100a05760003560e01c8063313ce56711610064578063313ce5671461022257806370a082311461024d57806395d89b4114610280578063a9059cbb14610295578063d0e30db0146100af578063dd62ed3e146102ce576100af565b806306fdde03146100b7578063095ea7b31461014157806318160ddd1461018e57806323b872dd146101b55780632e1a7d4d146101f8576100af565b366100af576100ad610309565b005b6100ad610309565b3480156100c357600080fd5b506100cc610358565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101065781810151838201526020016100ee565b50505050905090810190601f1680156101335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561014d57600080fd5b5061017a6004803603604081101561016457600080fd5b506001600160a01b0381351690602001356103e6565b604080519115158252519081900360200190f35b34801561019a57600080fd5b506101a361044c565b60408051918252519081900360200190f35b3480156101c157600080fd5b5061017a600480360360608110156101d857600080fd5b506001600160a01b03813581169160208101359091169060400135610450565b34801561020457600080fd5b506100ad6004803603602081101561021b57600080fd5b5035610584565b34801561022e57600080fd5b50610237610619565b6040805160ff9092168252519081900360200190f35b34801561025957600080fd5b506101a36004803603602081101561027057600080fd5b50356001600160a01b0316610622565b34801561028c57600080fd5b506100cc610634565b3480156102a157600080fd5b5061017a600480360360408110156102b857600080fd5b506001600160a01b03813516906020013561068e565b3480156102da57600080fd5b506101a3600480360360408110156102f157600080fd5b506001600160a01b03813581169160200135166106a2565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103de5780601f106103b3576101008083540402835291602001916103de565b820191906000526020600020905b8154815290600101906020018083116103c157829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b6001600160a01b03831660009081526003602052604081205482111561047557600080fd5b6001600160a01b03841633148015906104b357506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b15610513576001600160a01b03841660009081526004602090815260408083203384529091529020548211156104e857600080fd5b6001600160a01b03841660009081526004602090815260408083203384529091529020805483900390555b6001600160a01b03808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b336000908152600360205260409020548111156105a057600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156105df573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156103de5780601f106103b3576101008083540402835291602001916103de565b600061069b338484610450565b9392505050565b60046020908152600092835260408084209091529082529020548156fea2646970667358221220656960ed51ceeb98837f88334f94fa275f8bae235d2c1c5d54e882b8cfc0165964736f6c63430006090033", + "immutableReferences": {}, + "sourceMap": "124:36:19:-:0;103:1872;124:36;;103:1872;124:36;;;-1:-1:-1;;;124:36:19;;;;;;-1:-1:-1;;124:36:19;;:::i;:::-;-1:-1:-1;166:29:19;;;;;;;;;;;;;-1:-1:-1;;;166:29:19;;;;;;;;;;;;:::i;:::-;-1:-1:-1;201:26:19;;;-1:-1:-1;;201:26:19;225:2;201:26;;;103:1872;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;103:1872:19;;;-1:-1:-1;103:1872:19;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "103:1872:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;712:9;:7;:9::i;:::-;103:1872;;653:9;:7;:9::i;124:36::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1186:180;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1186:180:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1082:98;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1502:471;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1502:471:19;;;;;;;;;;;;;;;;;:::i;870:206::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;870:206:19;;:::i;201:26::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;494:44;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;494:44:19;-1:-1:-1;;;;;494:44:19;;:::i;166:29::-;;;;;;;;;;;;;:::i;1372:124::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1372:124:19;;;;;;;;:::i;544:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;544:64:19;;;;;;;;;;:::i;734:130::-;788:10;778:21;;;;:9;:21;;;;;;;;;:34;;803:9;778:34;;;;;;827:30;;;;;;;;;;;;;;;;;734:130::o;124:36::-;;;;;;;;;;;;;;;-1:-1:-1;;124:36:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1186:180::-;1271:10;1245:4;1261:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;1261:26:19;;;;;;;;;;;:32;;;1308:30;;;;;;;1245:4;;1261:26;;1271:10;;1308:30;;;;;;;;-1:-1:-1;1355:4:19;1186:180;;;;:::o;1082:98::-;1152:21;1082:98;:::o;1502:471::-;-1:-1:-1;;;;;1633:14:19;;1609:4;1633:14;;;:9;:14;;;;;;:21;-1:-1:-1;1633:21:19;1625:30;;;;;;-1:-1:-1;;;;;1670:17:19;;1677:10;1670:17;;;;:62;;-1:-1:-1;;;;;;1691:14:19;;;;;;:9;:14;;;;;;;;1706:10;1691:26;;;;;;;;-1:-1:-1;;1691:41:19;;1670:62;1666:182;;;-1:-1:-1;;;;;1756:14:19;;;;;;:9;:14;;;;;;;;1771:10;1756:26;;;;;;;;:33;-1:-1:-1;1756:33:19;1748:42;;;;;;-1:-1:-1;;;;;1804:14:19;;;;;;:9;:14;;;;;;;;1819:10;1804:26;;;;;;;:33;;;;;;;1666:182;-1:-1:-1;;;;;1858:14:19;;;;;;;:9;:14;;;;;;;;:21;;;;;;;1889:14;;;;;;;;;;:21;;;;;;1921:23;;;;;;;1889:14;;1921:23;;;;;;;;;;;-1:-1:-1;1962:4:19;1502:471;;;;;:::o;870:206::-;936:10;926:21;;;;:9;:21;;;;;;:28;-1:-1:-1;926:28:19;918:37;;;;;;975:10;965:21;;;;:9;:21;;;;;;:28;;;;;;;1003:24;;;;;;990:3;;1003:24;;965:21;1003:24;990:3;975:10;1003:24;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1042:27:19;;;;;;;;1053:10;;1042:27;;;;;;;;;;870:206;:::o;201:26::-;;;;;;:::o;494:44::-;;;;;;;;;;;;;:::o;166:29::-;;;;;;;;;;;;;;;-1:-1:-1;;166:29:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1372:124;1432:4;1455:34;1468:10;1480:3;1485;1455:12;:34::i;:::-;1448:41;1372:124;-1:-1:-1;;;1372:124:19:o;544:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "/*\n\n Copyright 2020 DODO ZOO.\n SPDX-License-Identifier: Apache-2.0\n\n*/\n\npragma solidity 0.6.9;\n\n\ncontract WETH9 {\n string public name = \"Wrapped Ether\";\n string public symbol = \"WETH\";\n uint8 public decimals = 18;\n\n event Approval(address indexed src, address indexed guy, uint256 wad);\n event Transfer(address indexed src, address indexed dst, uint256 wad);\n event Deposit(address indexed dst, uint256 wad);\n event Withdrawal(address indexed src, uint256 wad);\n\n mapping(address => uint256) public balanceOf;\n mapping(address => mapping(address => uint256)) public allowance;\n\n fallback() external payable {\n deposit();\n }\n\n receive() external payable {\n deposit();\n }\n\n function deposit() public payable {\n balanceOf[msg.sender] += msg.value;\n emit Deposit(msg.sender, msg.value);\n }\n\n function withdraw(uint256 wad) public {\n require(balanceOf[msg.sender] >= wad);\n balanceOf[msg.sender] -= wad;\n msg.sender.transfer(wad);\n emit Withdrawal(msg.sender, wad);\n }\n\n function totalSupply() public view returns (uint256) {\n return address(this).balance;\n }\n\n function approve(address guy, uint256 wad) public returns (bool) {\n allowance[msg.sender][guy] = wad;\n emit Approval(msg.sender, guy, wad);\n return true;\n }\n\n function transfer(address dst, uint256 wad) public returns (bool) {\n return transferFrom(msg.sender, dst, wad);\n }\n\n function transferFrom(\n address src,\n address dst,\n uint256 wad\n ) public returns (bool) {\n require(balanceOf[src] >= wad);\n\n if (src != msg.sender && allowance[src][msg.sender] != uint256(-1)) {\n require(allowance[src][msg.sender] >= wad);\n allowance[src][msg.sender] -= wad;\n }\n\n balanceOf[src] -= wad;\n balanceOf[dst] += wad;\n\n Transfer(src, dst, wad);\n\n return true;\n }\n}\n", + "sourcePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestWETH.sol", + "ast": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestWETH.sol", + "exportedSymbols": { + "WETH9": [ + 3952 + ] + }, + "id": 3953, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3699, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:19" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3952, + "linearizedBaseContracts": [ + 3952 + ], + "name": "WETH9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "06fdde03", + "id": 3702, + "mutability": "mutable", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3952, + "src": "124:36:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3700, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "124:6:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "57726170706564204574686572", + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "145:15:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_00cd3d46df44f2cbb950cf84eb2e92aa2ddd23195b1a009173ea59a063357ed3", + "typeString": "literal_string \"Wrapped Ether\"" + }, + "value": "Wrapped Ether" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "95d89b41", + "id": 3705, + "mutability": "mutable", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3952, + "src": "166:29:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3703, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "166:6:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "57455448", + "id": 3704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "189:6:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8", + "typeString": "literal_string \"WETH\"" + }, + "value": "WETH" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "313ce567", + "id": 3708, + "mutability": "mutable", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3952, + "src": "201:26:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3706, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "201:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "225:2:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3716, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3710, + "indexed": true, + "mutability": "mutable", + "name": "src", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3716, + "src": "249:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "249:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3712, + "indexed": true, + "mutability": "mutable", + "name": "guy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3716, + "src": "270:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3711, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "270:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3714, + "indexed": false, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3716, + "src": "291:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "291:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "248:55:19" + }, + "src": "234:70:19" + }, + { + "anonymous": false, + "documentation": null, + "id": 3724, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3718, + "indexed": true, + "mutability": "mutable", + "name": "src", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3724, + "src": "324:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3717, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "324:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3720, + "indexed": true, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3724, + "src": "345:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "345:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3722, + "indexed": false, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3724, + "src": "366:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "366:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "323:55:19" + }, + "src": "309:70:19" + }, + { + "anonymous": false, + "documentation": null, + "id": 3730, + "name": "Deposit", + "nodeType": "EventDefinition", + "parameters": { + "id": 3729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3726, + "indexed": true, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3730, + "src": "398:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "398:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3728, + "indexed": false, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3730, + "src": "419:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "419:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "397:34:19" + }, + "src": "384:48:19" + }, + { + "anonymous": false, + "documentation": null, + "id": 3736, + "name": "Withdrawal", + "nodeType": "EventDefinition", + "parameters": { + "id": 3735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3732, + "indexed": true, + "mutability": "mutable", + "name": "src", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3736, + "src": "454:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "454:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3734, + "indexed": false, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3736, + "src": "475:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "475:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "453:34:19" + }, + "src": "437:51:19" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 3740, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3952, + "src": "494:44:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3739, + "keyType": { + "id": 3737, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "502:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "494:27:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3738, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "513:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 3746, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3952, + "src": "544:64:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 3745, + "keyType": { + "id": 3741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "552:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "544:47:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3744, + "keyType": { + "id": 3742, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "571:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "563:27:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3743, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "582:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3752, + "nodeType": "Block", + "src": "643:26:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3749, + "name": "deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3779, + "src": "653:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 3750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "653:9:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3751, + "nodeType": "ExpressionStatement", + "src": "653:9:19" + } + ] + }, + "documentation": null, + "id": 3753, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3747, + "nodeType": "ParameterList", + "parameters": [], + "src": "623:2:19" + }, + "returnParameters": { + "id": 3748, + "nodeType": "ParameterList", + "parameters": [], + "src": "643:0:19" + }, + "scope": 3952, + "src": "615:54:19", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3759, + "nodeType": "Block", + "src": "702:26:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3756, + "name": "deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3779, + "src": "712:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "712:9:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3758, + "nodeType": "ExpressionStatement", + "src": "712:9:19" + } + ] + }, + "documentation": null, + "id": 3760, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3754, + "nodeType": "ParameterList", + "parameters": [], + "src": "682:2:19" + }, + "returnParameters": { + "id": 3755, + "nodeType": "ParameterList", + "parameters": [], + "src": "702:0:19" + }, + "scope": 3952, + "src": "675:53:19", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3778, + "nodeType": "Block", + "src": "768:96:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3763, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "778:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3766, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3764, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "788:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "788:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "778:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3767, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "803:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "803:9:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "778:34:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3770, + "nodeType": "ExpressionStatement", + "src": "778:34:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3772, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "835:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "835:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3774, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "847:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "847:9:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3771, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "827:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "827:30:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3777, + "nodeType": "EmitStatement", + "src": "822:35:19" + } + ] + }, + "documentation": null, + "functionSelector": "d0e30db0", + "id": 3779, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3761, + "nodeType": "ParameterList", + "parameters": [], + "src": "750:2:19" + }, + "returnParameters": { + "id": 3762, + "nodeType": "ParameterList", + "parameters": [], + "src": "768:0:19" + }, + "scope": 3952, + "src": "734:130:19", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3814, + "nodeType": "Block", + "src": "908:168:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3785, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "926:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3788, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3786, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "936:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "936:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "926:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3789, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3781, + "src": "951:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "926:28:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3784, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "918:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "918:37:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3792, + "nodeType": "ExpressionStatement", + "src": "918:37:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 3798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3793, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "965:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3796, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3794, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "975:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "975:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "965:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 3797, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3781, + "src": "990:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "965:28:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3799, + "nodeType": "ExpressionStatement", + "src": "965:28:19" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3805, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3781, + "src": "1023:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3800, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1003:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1003:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1003:19:19", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1003:24:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3807, + "nodeType": "ExpressionStatement", + "src": "1003:24:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3809, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1053:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1053:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3811, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3781, + "src": "1065:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3808, + "name": "Withdrawal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3736, + "src": "1042:10:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1042:27:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3813, + "nodeType": "EmitStatement", + "src": "1037:32:19" + } + ] + }, + "documentation": null, + "functionSelector": "2e1a7d4d", + "id": 3815, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3781, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3815, + "src": "888:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3780, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "888:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "887:13:19" + }, + "returnParameters": { + "id": 3783, + "nodeType": "ParameterList", + "parameters": [], + "src": "908:0:19" + }, + "scope": 3952, + "src": "870:206:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3826, + "nodeType": "Block", + "src": "1135:45:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3822, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1160:4:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_WETH9_$3952", + "typeString": "contract WETH9" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_WETH9_$3952", + "typeString": "contract WETH9" + } + ], + "id": 3821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1152:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3820, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1152:7:19", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1152:13:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1152:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3819, + "id": 3825, + "nodeType": "Return", + "src": "1145:28:19" + } + ] + }, + "documentation": null, + "functionSelector": "18160ddd", + "id": 3827, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3816, + "nodeType": "ParameterList", + "parameters": [], + "src": "1102:2:19" + }, + "returnParameters": { + "id": 3819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3818, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3827, + "src": "1126:7:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3817, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1126:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1125:9:19" + }, + "scope": 3952, + "src": "1082:98:19", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3854, + "nodeType": "Block", + "src": "1251:115:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3836, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "1261:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3840, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3837, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1271:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1271:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1261:21:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3841, + "indexExpression": { + "argumentTypes": null, + "id": 3839, + "name": "guy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3829, + "src": "1283:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1261:26:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3842, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "1290:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1261:32:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3844, + "nodeType": "ExpressionStatement", + "src": "1261:32:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3846, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1317:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1317:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3848, + "name": "guy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3829, + "src": "1329:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3849, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "1334:3:19", + "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": 3845, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3716, + "src": "1308:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1308:30:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3851, + "nodeType": "EmitStatement", + "src": "1303:35:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1355:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3835, + "id": 3853, + "nodeType": "Return", + "src": "1348:11:19" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 3855, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3829, + "mutability": "mutable", + "name": "guy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3855, + "src": "1203:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1203:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3831, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3855, + "src": "1216:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1216:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1202:26:19" + }, + "returnParameters": { + "id": 3835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3855, + "src": "1245:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1245:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1244:6:19" + }, + "scope": 3952, + "src": "1186:180:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3871, + "nodeType": "Block", + "src": "1438:58:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3865, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1468:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1468:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3867, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3857, + "src": "1480:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3868, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "1485:3:19", + "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": 3864, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "1455:12:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 3869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1455:34:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3863, + "id": 3870, + "nodeType": "Return", + "src": "1448:41:19" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 3872, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3857, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3872, + "src": "1390:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1390:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3859, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3872, + "src": "1403:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1403:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1389:26:19" + }, + "returnParameters": { + "id": 3863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3862, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3872, + "src": "1432:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3861, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1432:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1431:6:19" + }, + "scope": 3952, + "src": "1372:124:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3950, + "nodeType": "Block", + "src": "1615:358:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3884, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "1633:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3886, + "indexExpression": { + "argumentTypes": null, + "id": 3885, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1643:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1633:14:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3887, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1651:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1633:21:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3883, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1625:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1625:30:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3890, + "nodeType": "ExpressionStatement", + "src": "1625:30:19" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3891, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1670:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3892, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1677:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1677:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1670:17:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3895, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "1691:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3897, + "indexExpression": { + "argumentTypes": null, + "id": 3896, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1701:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1691:14:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3900, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3898, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1706:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1706:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1691:26:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1729:2:19", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1730:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 3902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1721:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3901, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1721:7:19", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1721:11:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1691:41:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1670:62:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3929, + "nodeType": "IfStatement", + "src": "1666:182:19", + "trueBody": { + "id": 3928, + "nodeType": "Block", + "src": "1734:114:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3909, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "1756:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3911, + "indexExpression": { + "argumentTypes": null, + "id": 3910, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1766:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1756:14:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3914, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3912, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1771:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1771:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1756:26:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3915, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1786:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1756:33:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3908, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1748:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1748:42:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3918, + "nodeType": "ExpressionStatement", + "src": "1748:42:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 3926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3919, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "1804:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3923, + "indexExpression": { + "argumentTypes": null, + "id": 3920, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1814:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1804:14:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3924, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3921, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1819:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1819:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1804:26:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 3925, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1834:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1804:33:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3927, + "nodeType": "ExpressionStatement", + "src": "1804:33:19" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 3934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3930, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "1858:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3932, + "indexExpression": { + "argumentTypes": null, + "id": 3931, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1868:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1858:14:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 3933, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1876:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1858:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3935, + "nodeType": "ExpressionStatement", + "src": "1858:21:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 3940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3936, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "1889:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3938, + "indexExpression": { + "argumentTypes": null, + "id": 3937, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3876, + "src": "1899:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1889:14:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 3939, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1907:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1889:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3941, + "nodeType": "ExpressionStatement", + "src": "1889:21:19" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3943, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1930:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3944, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3876, + "src": "1935:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3945, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1940:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3942, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3724, + "src": "1921:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1921:23:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3947, + "nodeType": "ExpressionStatement", + "src": "1921:23:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3948, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1962:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3882, + "id": 3949, + "nodeType": "Return", + "src": "1955:11:19" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 3951, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3874, + "mutability": "mutable", + "name": "src", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3951, + "src": "1533:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3873, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1533:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3876, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3951, + "src": "1554:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1554:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3878, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3951, + "src": "1575:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3877, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1575:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1523:69:19" + }, + "returnParameters": { + "id": 3882, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3881, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3951, + "src": "1609:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3880, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1609:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1608:6:19" + }, + "scope": 3952, + "src": "1502:471:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 3953, + "src": "103:1872:19" + } + ], + "src": "78:1898:19" + }, + "legacyAST": { + "absolutePath": "/Users/owen/Desktop/dodo/dodo-smart-contract/contracts/helper/TestWETH.sol", + "exportedSymbols": { + "WETH9": [ + 3952 + ] + }, + "id": 3953, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3699, + "literals": [ + "solidity", + "0.6", + ".9" + ], + "nodeType": "PragmaDirective", + "src": "78:22:19" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3952, + "linearizedBaseContracts": [ + 3952 + ], + "name": "WETH9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "06fdde03", + "id": 3702, + "mutability": "mutable", + "name": "name", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3952, + "src": "124:36:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3700, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "124:6:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "57726170706564204574686572", + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "145:15:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_00cd3d46df44f2cbb950cf84eb2e92aa2ddd23195b1a009173ea59a063357ed3", + "typeString": "literal_string \"Wrapped Ether\"" + }, + "value": "Wrapped Ether" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "95d89b41", + "id": 3705, + "mutability": "mutable", + "name": "symbol", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3952, + "src": "166:29:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 3703, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "166:6:19", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "57455448", + "id": 3704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "189:6:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0f8a193ff464434486c0daf7db2a895884365d2bc84ba47a68fcf89c1b14b5b8", + "typeString": "literal_string \"WETH\"" + }, + "value": "WETH" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "313ce567", + "id": 3708, + "mutability": "mutable", + "name": "decimals", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3952, + "src": "201:26:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 3706, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "201:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3138", + "id": 3707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "225:2:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 3716, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 3715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3710, + "indexed": true, + "mutability": "mutable", + "name": "src", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3716, + "src": "249:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "249:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3712, + "indexed": true, + "mutability": "mutable", + "name": "guy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3716, + "src": "270:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3711, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "270:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3714, + "indexed": false, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3716, + "src": "291:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "291:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "248:55:19" + }, + "src": "234:70:19" + }, + { + "anonymous": false, + "documentation": null, + "id": 3724, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 3723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3718, + "indexed": true, + "mutability": "mutable", + "name": "src", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3724, + "src": "324:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3717, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "324:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3720, + "indexed": true, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3724, + "src": "345:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3719, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "345:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3722, + "indexed": false, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3724, + "src": "366:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "366:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "323:55:19" + }, + "src": "309:70:19" + }, + { + "anonymous": false, + "documentation": null, + "id": 3730, + "name": "Deposit", + "nodeType": "EventDefinition", + "parameters": { + "id": 3729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3726, + "indexed": true, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3730, + "src": "398:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "398:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3728, + "indexed": false, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3730, + "src": "419:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "419:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "397:34:19" + }, + "src": "384:48:19" + }, + { + "anonymous": false, + "documentation": null, + "id": 3736, + "name": "Withdrawal", + "nodeType": "EventDefinition", + "parameters": { + "id": 3735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3732, + "indexed": true, + "mutability": "mutable", + "name": "src", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3736, + "src": "454:19:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "454:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3734, + "indexed": false, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3736, + "src": "475:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "475:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "453:34:19" + }, + "src": "437:51:19" + }, + { + "constant": false, + "functionSelector": "70a08231", + "id": 3740, + "mutability": "mutable", + "name": "balanceOf", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3952, + "src": "494:44:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 3739, + "keyType": { + "id": 3737, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "502:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "494:27:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3738, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "513:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "dd62ed3e", + "id": 3746, + "mutability": "mutable", + "name": "allowance", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3952, + "src": "544:64:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 3745, + "keyType": { + "id": 3741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "552:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "544:47:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 3744, + "keyType": { + "id": 3742, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "571:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "563:27:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 3743, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "582:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 3752, + "nodeType": "Block", + "src": "643:26:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3749, + "name": "deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3779, + "src": "653:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 3750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "653:9:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3751, + "nodeType": "ExpressionStatement", + "src": "653:9:19" + } + ] + }, + "documentation": null, + "id": 3753, + "implemented": true, + "kind": "fallback", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3747, + "nodeType": "ParameterList", + "parameters": [], + "src": "623:2:19" + }, + "returnParameters": { + "id": 3748, + "nodeType": "ParameterList", + "parameters": [], + "src": "643:0:19" + }, + "scope": 3952, + "src": "615:54:19", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3759, + "nodeType": "Block", + "src": "702:26:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3756, + "name": "deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3779, + "src": "712:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "712:9:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3758, + "nodeType": "ExpressionStatement", + "src": "712:9:19" + } + ] + }, + "documentation": null, + "id": 3760, + "implemented": true, + "kind": "receive", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3754, + "nodeType": "ParameterList", + "parameters": [], + "src": "682:2:19" + }, + "returnParameters": { + "id": 3755, + "nodeType": "ParameterList", + "parameters": [], + "src": "702:0:19" + }, + "scope": 3952, + "src": "675:53:19", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3778, + "nodeType": "Block", + "src": "768:96:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3763, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "778:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3766, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3764, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "788:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "788:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "778:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3767, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "803:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "803:9:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "778:34:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3770, + "nodeType": "ExpressionStatement", + "src": "778:34:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3772, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "835:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "835:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3774, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "847:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "847:9:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3771, + "name": "Deposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3730, + "src": "827:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "827:30:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3777, + "nodeType": "EmitStatement", + "src": "822:35:19" + } + ] + }, + "documentation": null, + "functionSelector": "d0e30db0", + "id": 3779, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3761, + "nodeType": "ParameterList", + "parameters": [], + "src": "750:2:19" + }, + "returnParameters": { + "id": 3762, + "nodeType": "ParameterList", + "parameters": [], + "src": "768:0:19" + }, + "scope": 3952, + "src": "734:130:19", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3814, + "nodeType": "Block", + "src": "908:168:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3785, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "926:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3788, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3786, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "936:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "936:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "926:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3789, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3781, + "src": "951:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "926:28:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3784, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "918:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "918:37:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3792, + "nodeType": "ExpressionStatement", + "src": "918:37:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 3798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3793, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "965:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3796, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3794, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "975:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "975:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "965:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 3797, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3781, + "src": "990:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "965:28:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3799, + "nodeType": "ExpressionStatement", + "src": "965:28:19" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3805, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3781, + "src": "1023:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3800, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1003:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1003:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1003:19:19", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1003:24:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3807, + "nodeType": "ExpressionStatement", + "src": "1003:24:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3809, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1053:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1053:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3811, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3781, + "src": "1065:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3808, + "name": "Withdrawal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3736, + "src": "1042:10:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1042:27:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3813, + "nodeType": "EmitStatement", + "src": "1037:32:19" + } + ] + }, + "documentation": null, + "functionSelector": "2e1a7d4d", + "id": 3815, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3781, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3815, + "src": "888:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3780, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "888:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "887:13:19" + }, + "returnParameters": { + "id": 3783, + "nodeType": "ParameterList", + "parameters": [], + "src": "908:0:19" + }, + "scope": 3952, + "src": "870:206:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3826, + "nodeType": "Block", + "src": "1135:45:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3822, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1160:4:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_WETH9_$3952", + "typeString": "contract WETH9" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_WETH9_$3952", + "typeString": "contract WETH9" + } + ], + "id": 3821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1152:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3820, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1152:7:19", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1152:13:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1152:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3819, + "id": 3825, + "nodeType": "Return", + "src": "1145:28:19" + } + ] + }, + "documentation": null, + "functionSelector": "18160ddd", + "id": 3827, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3816, + "nodeType": "ParameterList", + "parameters": [], + "src": "1102:2:19" + }, + "returnParameters": { + "id": 3819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3818, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3827, + "src": "1126:7:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3817, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1126:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1125:9:19" + }, + "scope": 3952, + "src": "1082:98:19", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3854, + "nodeType": "Block", + "src": "1251:115:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3836, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "1261:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3840, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3837, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1271:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1271:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1261:21:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3841, + "indexExpression": { + "argumentTypes": null, + "id": 3839, + "name": "guy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3829, + "src": "1283:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1261:26:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3842, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "1290:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1261:32:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3844, + "nodeType": "ExpressionStatement", + "src": "1261:32:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3846, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1317:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1317:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3848, + "name": "guy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3829, + "src": "1329:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3849, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3831, + "src": "1334:3:19", + "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": 3845, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3716, + "src": "1308:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1308:30:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3851, + "nodeType": "EmitStatement", + "src": "1303:35:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1355:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3835, + "id": 3853, + "nodeType": "Return", + "src": "1348:11:19" + } + ] + }, + "documentation": null, + "functionSelector": "095ea7b3", + "id": 3855, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3829, + "mutability": "mutable", + "name": "guy", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3855, + "src": "1203:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1203:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3831, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3855, + "src": "1216:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1216:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1202:26:19" + }, + "returnParameters": { + "id": 3835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3855, + "src": "1245:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1245:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1244:6:19" + }, + "scope": 3952, + "src": "1186:180:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3871, + "nodeType": "Block", + "src": "1438:58:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3865, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1468:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1468:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3867, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3857, + "src": "1480:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3868, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3859, + "src": "1485:3:19", + "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": 3864, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3951, + "src": "1455:12:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 3869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1455:34:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3863, + "id": 3870, + "nodeType": "Return", + "src": "1448:41:19" + } + ] + }, + "documentation": null, + "functionSelector": "a9059cbb", + "id": 3872, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3857, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3872, + "src": "1390:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1390:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3859, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3872, + "src": "1403:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1403:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1389:26:19" + }, + "returnParameters": { + "id": 3863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3862, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3872, + "src": "1432:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3861, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1432:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1431:6:19" + }, + "scope": 3952, + "src": "1372:124:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3950, + "nodeType": "Block", + "src": "1615:358:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3884, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "1633:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3886, + "indexExpression": { + "argumentTypes": null, + "id": 3885, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1643:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1633:14:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3887, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1651:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1633:21:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3883, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1625:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1625:30:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3890, + "nodeType": "ExpressionStatement", + "src": "1625:30:19" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3891, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1670:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3892, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1677:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1677:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1670:17:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3895, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "1691:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3897, + "indexExpression": { + "argumentTypes": null, + "id": 3896, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1701:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1691:14:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3900, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3898, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1706:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1706:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1691:26:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "1729:2:19", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1730:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_minus_1_by_1", + "typeString": "int_const -1" + } + ], + "id": 3902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1721:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 3901, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1721:7:19", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1721:11:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1691:41:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1670:62:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3929, + "nodeType": "IfStatement", + "src": "1666:182:19", + "trueBody": { + "id": 3928, + "nodeType": "Block", + "src": "1734:114:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3909, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "1756:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3911, + "indexExpression": { + "argumentTypes": null, + "id": 3910, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1766:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1756:14:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3914, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3912, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1771:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1771:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1756:26:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3915, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1786:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1756:33:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3908, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1748:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1748:42:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3918, + "nodeType": "ExpressionStatement", + "src": "1748:42:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 3926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3919, + "name": "allowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "1804:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 3923, + "indexExpression": { + "argumentTypes": null, + "id": 3920, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1814:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1804:14:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3924, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3921, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1819:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1819:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1804:26:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 3925, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1834:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1804:33:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3927, + "nodeType": "ExpressionStatement", + "src": "1804:33:19" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 3934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3930, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "1858:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3932, + "indexExpression": { + "argumentTypes": null, + "id": 3931, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1868:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1858:14:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 3933, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1876:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1858:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3935, + "nodeType": "ExpressionStatement", + "src": "1858:21:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 3940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3936, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3740, + "src": "1889:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 3938, + "indexExpression": { + "argumentTypes": null, + "id": 3937, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3876, + "src": "1899:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1889:14:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 3939, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1907:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1889:21:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3941, + "nodeType": "ExpressionStatement", + "src": "1889:21:19" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3943, + "name": "src", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3874, + "src": "1930:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3944, + "name": "dst", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3876, + "src": "1935:3:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3945, + "name": "wad", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3878, + "src": "1940:3:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3942, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3724, + "src": "1921:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1921:23:19", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3947, + "nodeType": "ExpressionStatement", + "src": "1921:23:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3948, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1962:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3882, + "id": 3949, + "nodeType": "Return", + "src": "1955:11:19" + } + ] + }, + "documentation": null, + "functionSelector": "23b872dd", + "id": 3951, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3879, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3874, + "mutability": "mutable", + "name": "src", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3951, + "src": "1533:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3873, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1533:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3876, + "mutability": "mutable", + "name": "dst", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3951, + "src": "1554:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3875, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1554:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3878, + "mutability": "mutable", + "name": "wad", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3951, + "src": "1575:11:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3877, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1575:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1523:69:19" + }, + "returnParameters": { + "id": 3882, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3881, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3951, + "src": "1609:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3880, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1609:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1608:6:19" + }, + "scope": 3952, + "src": "1502:471:19", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 3953, + "src": "103:1872:19" + } + ], + "src": "78:1898:19" + }, + "compiler": { + "name": "solc", + "version": "0.6.9+commit.3e3065ac.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.2.3", + "updatedAt": "2020-11-06T08:03:35.525Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/contracts/SmartRoute/SmartApprove.sol b/contracts/SmartRoute/SmartApprove.sol new file mode 100644 index 0000000..3b6ccd3 --- /dev/null +++ b/contracts/SmartRoute/SmartApprove.sol @@ -0,0 +1,36 @@ +/* + + Copyright 2020 DODO ZOO. + SPDX-License-Identifier: Apache-2.0 + +*/ + +pragma solidity 0.6.9; + +import {IERC20} from "../intf/IERC20.sol"; +import {SafeERC20} from "../lib/SafeERC20.sol"; +import {Ownable} from "../lib/Ownable.sol"; + + +contract SmartApprove is Ownable { + using SafeERC20 for IERC20; + address public smartSwap; + + function setSmartSwap(address _smartSwap) external onlyOwner { + smartSwap = _smartSwap; + } + + + event Test1(uint256 amount); + + function claimTokens( + IERC20 token, + address who, + address dest, + uint256 amount + ) external { + require(msg.sender == smartSwap, "Not SmartSwap Address, Access restricted"); + emit Test1(amount); + // token.safeTransferFrom(who, dest, amount); + } +} diff --git a/contracts/SmartRoute/SmartSwap.sol b/contracts/SmartRoute/SmartSwap.sol new file mode 100644 index 0000000..0856450 --- /dev/null +++ b/contracts/SmartRoute/SmartSwap.sol @@ -0,0 +1,118 @@ +/* + + Copyright 2020 DODO ZOO. + SPDX-License-Identifier: Apache-2.0 + +*/ + +pragma solidity 0.6.9; + +import {Ownable} from "../lib/Ownable.sol"; +import {ExternalCall} from "../lib/ExternalCall.sol"; +import {IERC20} from "../intf/IERC20.sol"; +import {UniversalERC20} from "../lib/UniversalERC20.sol"; +import {SafeMath} from "../lib/SafeMath.sol"; +import {DecimalMath} from "../lib/DecimalMath.sol"; +import {ISmartApprove} from "../intf/ISmartApprove.sol"; + + +contract SmartSwap is Ownable { + using SafeMath for uint256; + using UniversalERC20 for IERC20; + using ExternalCall for address; + + ISmartApprove public smartApprove; + + IERC20 constant ETH_ADDRESS = IERC20(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE); + + event Swapped( + IERC20 indexed fromToken, + IERC20 indexed toToken, + address indexed sender, + uint256 fromAmount, + uint256 toAmount + ); + + event ExternalRecord(address indexed to, address indexed sender); + + constructor(address _smartApprove) public { + smartApprove = ISmartApprove(_smartApprove); + } + + + function dodoSwap( + IERC20 fromToken, + IERC20 toToken, + uint256 fromTokenAmount, + uint256 minReturnAmount, + address[] memory callPairs, + bytes memory callDataConcat, + uint256[] memory starts, + uint256[] memory gasLimitsAndValues + ) public payable returns (uint256 returnAmount) { + require(minReturnAmount > 0, "haha hihi Min return should be bigger then 0."); + require(callPairs.length > 0, "pairs should exists."); + + // if (fromToken != ETH_ADDRESS) { + // // smartApprove.claimTokens(fromToken, msg.sender, address(this), fromTokenAmount); + // } + + // for (uint256 i = 0; i < callPairs.length; i++) { + // require(callPairs[i] != address(smartApprove), "Access denied"); + // require( + // callPairs[i].externalCall( + // gasLimitsAndValues[i] & ((1 << 128) - 1), + // callDataConcat, + // starts[i], + // starts[i + 1] - starts[i], + // gasLimitsAndValues[i] >> 128 + // ) + // ); + // } + + // // Return back all unswapped + // fromToken.universalTransfer(msg.sender, fromToken.universalBalanceOf(address(this))); + + // returnAmount = toToken.universalBalanceOf(address(this)); + + // require(returnAmount >= minReturnAmount, "Return amount is not enough"); + // toToken.universalTransfer(msg.sender, returnAmount); + emit Swapped(fromToken, toToken, msg.sender, fromTokenAmount, fromTokenAmount); + // emit Swapped(fromToken, toToken, msg.sender, fromTokenAmount, returnAmount); + } + + function externalSwap( + IERC20 fromToken, + IERC20 toToken, + address approveTarget, + address to, + uint256 gasSwap, + uint256 fromTokenAmount, + uint256 minReturnAmount, + bytes memory callDataConcat + ) public payable returns (uint256 returnAmount) { + + require(minReturnAmount > 0, "Min return should be bigger then 0."); + + if (fromToken != ETH_ADDRESS) { + smartApprove.claimTokens(fromToken, msg.sender, address(this), fromTokenAmount); + fromToken.approve(approveTarget, fromTokenAmount); + } + + (bool success, ) = to.call{value: msg.value, gas: gasSwap}(callDataConcat); + + require(success, "Contract Swap execution Failed"); + + // Return back all unswapped + fromToken.universalTransfer(msg.sender, fromToken.universalBalanceOf(address(this))); + + returnAmount = toToken.universalBalanceOf(address(this)); + + require(returnAmount >= minReturnAmount, "Return amount is not enough"); + toToken.universalTransfer(msg.sender, returnAmount); + + emit Swapped(fromToken, toToken, msg.sender, fromTokenAmount, returnAmount); + + emit ExternalRecord(to, msg.sender); + } +} diff --git a/contracts/intf/ISmartApprove.sol b/contracts/intf/ISmartApprove.sol new file mode 100644 index 0000000..6ee509f --- /dev/null +++ b/contracts/intf/ISmartApprove.sol @@ -0,0 +1,15 @@ +/* + + Copyright 2020 DODO ZOO. + SPDX-License-Identifier: Apache-2.0 + +*/ + +pragma solidity 0.6.9; +pragma experimental ABIEncoderV2; + +import {IERC20} from "./IERC20.sol"; + +interface ISmartApprove { + function claimTokens(IERC20 token,address who,address dest,uint256 amount) external; +} \ No newline at end of file diff --git a/contracts/lib/ExternalCall.sol b/contracts/lib/ExternalCall.sol new file mode 100644 index 0000000..ce8d0b9 --- /dev/null +++ b/contracts/lib/ExternalCall.sol @@ -0,0 +1,34 @@ +/* + + Copyright 2020 DODO ZOO. + SPDX-License-Identifier: Apache-2.0 + +*/ + +pragma solidity 0.6.9; +pragma experimental ABIEncoderV2; + +library ExternalCall { + // Source: https://github.com/gnosis/MultiSigWallet/blob/master/contracts/MultiSigWallet.sol + // call has been separated into its own function in order to take advantage + // of the Solidity's code generator to produce a loop that copies tx.data into memory. + function externalCall(address destination, uint value, bytes memory data, uint dataOffset, uint dataLength, uint gasLimit) internal returns(bool result) { + // solium-disable-next-line security/no-inline-assembly + if (gasLimit == 0) { + gasLimit = gasleft() - 40000; + } + assembly { + let x := mload(0x40) // "Allocate" memory for output (0x40 is where "free memory" pointer is stored by convention) + let d := add(data, 32) // First 32 bytes are the padded length of data, so exclude that + result := call( + gasLimit, + destination, + value, + add(d, dataOffset), + dataLength, // Size of the input (in bytes) - this is what fixes the padding problem + x, + 0 // Output is ignored, therefore the output size is zero + ) + } + } +} diff --git a/contracts/lib/UniversalERC20.sol b/contracts/lib/UniversalERC20.sol new file mode 100644 index 0000000..7005a5b --- /dev/null +++ b/contracts/lib/UniversalERC20.sol @@ -0,0 +1,75 @@ +/* + + Copyright 2020 DODO ZOO. + SPDX-License-Identifier: Apache-2.0 + +*/ + +pragma solidity 0.6.9; + +import {SafeMath} from "./SafeMath.sol"; +import {IERC20} from "../intf/IERC20.sol"; +import {SafeERC20} from "./SafeERC20.sol"; + +library UniversalERC20 { + + using SafeMath for uint256; + using SafeERC20 for IERC20; + + IERC20 private constant ZERO_ADDRESS = IERC20(0x0000000000000000000000000000000000000000); + IERC20 private constant ETH_ADDRESS = IERC20(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE); + + function universalTransfer(IERC20 token, address to, uint256 amount) internal { + universalTransfer(token, to, amount, false); + } + + function universalTransfer(IERC20 token, address to, uint256 amount, bool mayFail) internal returns(bool) { + if (amount == 0) { + return true; + } + + if (token == ZERO_ADDRESS || token == ETH_ADDRESS) { + if (mayFail) { + return address(uint160(to)).send(amount); + } else { + address(uint160(to)).transfer(amount); + return true; + } + } else { + token.safeTransfer(to, amount); + return true; + } + } + + function universalApprove(IERC20 token, address to, uint256 amount) internal { + if (token != ZERO_ADDRESS && token != ETH_ADDRESS) { + token.safeApprove(to, amount); + } + } + + function universalTransferFrom(IERC20 token, address from, address to, uint256 amount) internal { + if (amount == 0) { + return; + } + + if (token == ZERO_ADDRESS || token == ETH_ADDRESS) { + require(from == msg.sender && msg.value >= amount, "msg.value is zero"); + if (to != address(this)) { + address(uint160(to)).transfer(amount); + } + if (msg.value > amount) { + msg.sender.transfer(msg.value.sub(amount)); + } + } else { + token.safeTransferFrom(from, to, amount); + } + } + + function universalBalanceOf(IERC20 token, address who) internal view returns (uint256) { + if (token == ZERO_ADDRESS || token == ETH_ADDRESS) { + return who.balance; + } else { + return token.balanceOf(who); + } + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index bc64a18..e1bfe80 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,21 +5,20 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", - "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "requires": { - "@babel/highlight": "^7.10.1" + "@babel/highlight": "^7.10.4" } }, "@babel/generator": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", - "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", + "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", "requires": { - "@babel/types": "^7.10.2", + "@babel/types": "^7.12.5", "jsesc": "^2.5.1", - "lodash": "^4.17.13", "source-map": "^0.5.0" }, "dependencies": { @@ -27,70 +26,34 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, "@babel/helper-function-name": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz", - "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", + "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "requires": { - "@babel/helper-get-function-arity": "^7.10.1", - "@babel/template": "^7.10.1", - "@babel/types": "^7.10.1" + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz", - "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", + "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "requires": { - "@babel/types": "^7.10.1" + "@babel/types": "^7.10.4" } }, "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", "dev": true, "requires": { - "@babel/types": "^7.10.4" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "@babel/types": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", - "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - } + "@babel/types": "^7.12.5" } }, "@babel/helper-plugin-utils": { @@ -100,73 +63,82 @@ "dev": true }, "@babel/helper-split-export-declaration": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz", - "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==", + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", + "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "requires": { - "@babel/types": "^7.10.1" + "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz", - "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==" + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" }, "@babel/highlight": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz", - "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "requires": { - "@babel/helper-validator-identifier": "^7.10.1", + "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } } } }, "@babel/parser": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", - "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==" + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz", + "integrity": "sha512-FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==" }, "@babel/plugin-transform-runtime": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz", - "integrity": "sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-module-imports": "^7.12.1", "@babel/helper-plugin-utils": "^7.10.4", "resolve": "^1.8.1", "semver": "^5.5.1" - }, - "dependencies": { - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } } }, "@babel/runtime": { - "version": "7.11.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz", - "integrity": "sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" @@ -181,29 +153,29 @@ } }, "@babel/template": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz", - "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==", + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "requires": { - "@babel/code-frame": "^7.10.1", - "@babel/parser": "^7.10.1", - "@babel/types": "^7.10.1" + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" } }, "@babel/traverse": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz", - "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz", + "integrity": "sha512-xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==", "requires": { - "@babel/code-frame": "^7.10.1", - "@babel/generator": "^7.10.1", - "@babel/helper-function-name": "^7.10.1", - "@babel/helper-split-export-declaration": "^7.10.1", - "@babel/parser": "^7.10.1", - "@babel/types": "^7.10.1", + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/parser": "^7.12.5", + "@babel/types": "^7.12.5", "debug": "^4.1.0", "globals": "^11.1.0", - "lodash": "^4.17.13" + "lodash": "^4.17.19" }, "dependencies": { "globals": { @@ -214,12 +186,12 @@ } }, "@babel/types": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", - "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", + "version": "7.12.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz", + "integrity": "sha512-hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==", "requires": { - "@babel/helper-validator-identifier": "^7.10.1", - "lodash": "^4.17.13", + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" }, "dependencies": { @@ -246,16 +218,42 @@ "@ethersproject/strings": ">=5.0.0-beta.130" } }, - "@ethersproject/address": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.1.tgz", - "integrity": "sha512-kfQtXpBP2pI2TfoRRAYv8grHGiYw8U0c1KbMsC58/W33TIBy7gFSf/oAzOd94lNzdIUenKU0OuSzrHQfVcDDDA==", + "@ethersproject/abstract-provider": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.0.5.tgz", + "integrity": "sha512-i/CjElAkzV7vQBAeoz+IpjGfcFYEP9eD7j3fzZ0fzTq03DO7PPnR+xkEZ1IoDXGwDS+55aLM1xvLDwB/Lx6IOQ==", "requires": { - "@ethersproject/bignumber": "^5.0.0", - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/keccak256": "^5.0.0", - "@ethersproject/logger": "^5.0.0", - "@ethersproject/rlp": "^5.0.0", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/networks": "^5.0.3", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/transactions": "^5.0.5", + "@ethersproject/web": "^5.0.6" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.0.7.tgz", + "integrity": "sha512-8W8gy/QutEL60EoMEpvxZ8MFAEWs/JvH5nmZ6xeLXoZvmBCasGmxqHdYjo2cxg0nevkPkq9SeenSsBBZSCx+SQ==", + "requires": { + "@ethersproject/abstract-provider": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3" + } + }, + "@ethersproject/address": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.0.5.tgz", + "integrity": "sha512-DpkQ6rwk9jTefrRsJzEm6nhRiJd9pvhn1xN0rw5N/jswXG5r7BLk/GVA0mMAVWAsYfvi2xSc5L41FMox43RYEA==", + "requires": { + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/rlp": "^5.0.3", "bn.js": "^4.4.0" }, "dependencies": { @@ -266,14 +264,21 @@ } } }, - "@ethersproject/bignumber": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.1.tgz", - "integrity": "sha512-srGDO7ksT0avdDw5pBtj6F81psv5xiJMInwSSatfIKplitubFb6yVwoHGObGRd0Pp3TvrkIDfJkuskoSMj4OHQ==", + "@ethersproject/base64": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.0.4.tgz", + "integrity": "sha512-4KRykQ7BQMeOXfvio1YITwHjxwBzh92UoXIdzxDE1p53CK28bbHPdsPNYo0wl0El7lJAMpT2SOdL0hhbWRnyIA==", "requires": { - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/logger": "^5.0.0", - "@ethersproject/properties": "^5.0.0", + "@ethersproject/bytes": "^5.0.4" + } + }, + "@ethersproject/bignumber": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.0.8.tgz", + "integrity": "sha512-KXFVAFKS1jdTXYN8BE5Oj+ZfPMh28iRdFeNGBVT6cUFdtiPVqeXqc0ggvBqA3A1VoFFGgM7oAeaagA393aORHA==", + "requires": { + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/logger": "^5.0.5", "bn.js": "^4.4.0" }, "dependencies": { @@ -285,98 +290,129 @@ } }, "@ethersproject/bytes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.1.tgz", - "integrity": "sha512-Y198536UW9Jb9RBXuqmCsCa9mYJUsxJn+5aGr2XjNMpLBc6vEn/44GHnbQXYgRCzh4rnWtJ9bTgSwDjme9Hgnw==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.0.5.tgz", + "integrity": "sha512-IEj9HpZB+ACS6cZ+QQMTqmu/cnUK2fYNE6ms/PVxjoBjoxc6HCraLpam1KuRvreMy0i523PLmjN8OYeikRdcUQ==", "requires": { - "@ethersproject/logger": "^5.0.0" + "@ethersproject/logger": "^5.0.5" } }, "@ethersproject/constants": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.1.tgz", - "integrity": "sha512-Xec07hFCPN4wfC3WDiRay7KipkApl2msiKTrBHCuAwNMOM8M92+mlQp8tgfEL51DPwCZkmdk1f02kArc6caVSw==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.0.5.tgz", + "integrity": "sha512-foaQVmxp2+ik9FrLUCtVrLZCj4M3Ibgkqvh+Xw/vFRSerkjVSYePApaVE5essxhoSlF1U9oXfWY09QI2AXtgKA==", "requires": { - "@ethersproject/bignumber": "^5.0.0" + "@ethersproject/bignumber": "^5.0.7" } }, "@ethersproject/hash": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.1.tgz", - "integrity": "sha512-1ByUXYvkszrSSks07xctBtZfpFnIVmftxWlAAnguxh6Q65vKECd/EPi5uI5xVOvnrYMH9Vb8MK1SofPX/6fArQ==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.0.6.tgz", + "integrity": "sha512-Gvh57v6BWhwnud6l7tMfQm32PRQ2DYx2WaAAQmAxAfYvmzUkpQCBstnGeNMXIL8/2wdkvcB2u+WZRWaZtsFuUQ==", "requires": { - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/keccak256": "^5.0.0", - "@ethersproject/logger": "^5.0.0", - "@ethersproject/strings": "^5.0.0" + "@ethersproject/abstract-signer": "^5.0.6", + "@ethersproject/address": "^5.0.5", + "@ethersproject/bignumber": "^5.0.8", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.4", + "@ethersproject/strings": "^5.0.4" } }, "@ethersproject/keccak256": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.1.tgz", - "integrity": "sha512-AtFm/4qHRQUvZcG3WYmaT7zV79dz72+N01w0XphcIBaD/7UZXyW85Uf08sirVlckHmh9fvc4UDWyHiroKsBT6Q==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.0.4.tgz", + "integrity": "sha512-GNpiOUm9PGUxFNqOxYKDQBM0u68bG9XC9iOulEQ8I0tOx/4qUpgVzvgXL6ugxr0RY554Gz/NQsVqknqPzUcxpQ==", "requires": { - "@ethersproject/bytes": "^5.0.0", + "@ethersproject/bytes": "^5.0.4", "js-sha3": "0.5.7" + }, + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + } } }, "@ethersproject/logger": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.2.tgz", - "integrity": "sha512-NQe3O1/Nwkcp6bto6hsTvrcCeR/cOGK+RhOMn0Zi2FND6gdWsf1g+5ie8gQ1REqDX4MTGP/Y131dZas985ls/g==" + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.0.6.tgz", + "integrity": "sha512-FrX0Vnb3JZ1md/7GIZfmJ06XOAA8r3q9Uqt9O5orr4ZiksnbpXKlyDzQtlZ5Yv18RS8CAUbiKH9vwidJg1BPmQ==" + }, + "@ethersproject/networks": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.0.4.tgz", + "integrity": "sha512-/wHDTRms5mpJ09BoDrbNdFWINzONe05wZRgohCXvEv39rrH/Gd/yAnct8wC0RsW3tmFOgjgQxuBvypIxuUynTw==", + "requires": { + "@ethersproject/logger": "^5.0.5" + } }, "@ethersproject/properties": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.1.tgz", - "integrity": "sha512-b3VZ/NpYIf64/hFXeWNxVCbY1xoMPIYM3n6Qnu6Ayr3bLt1olFPQfAaaRB0aOsLz7tMtmkT3DrA1KG/IrOgBRw==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.0.4.tgz", + "integrity": "sha512-UdyX3GqBxFt15B0uSESdDNmhvEbK3ACdDXl2soshoPcneXuTswHDeA0LoPlnaZzhbgk4p6jqb4GMms5C26Qu6A==", "requires": { - "@ethersproject/logger": "^5.0.0" + "@ethersproject/logger": "^5.0.5" } }, "@ethersproject/rlp": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.1.tgz", - "integrity": "sha512-3F8XE1zS4w8w4xiK1hMtFuVs6UnhQlmrEHLT85GanqK8vG5wGi81IQmkukL9tQIu2a5jykoO46ibja+6N1fpFg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.4.tgz", + "integrity": "sha512-5qrrZad7VTjofxSsm7Zg/7Dr4ZOln4S2CqiDdOuTv6MBKnXj0CiBojXyuDy52M8O3wxH0CyE924hXWTDV1PQWQ==", "requires": { - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/logger": "^5.0.0" + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/logger": "^5.0.5" } }, "@ethersproject/signing-key": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.3.tgz", - "integrity": "sha512-5QPZaBRGCLzfVMbFb3LcVjNR0UbTXnwDHASnQYfbzwUOnFYHKxHsrcbl/5ONGoppgi8yXgOocKqlPCFycJJVWQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.0.5.tgz", + "integrity": "sha512-Z1wY7JC1HVO4CvQWY2TyTTuAr8xK3bJijZw1a9G92JEmKdv1j255R/0YLBBcFTl2J65LUjtXynNJ2GbArPGi5g==", "requires": { - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/logger": "^5.0.0", - "@ethersproject/properties": "^5.0.0", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", "elliptic": "6.5.3" } }, "@ethersproject/strings": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.1.tgz", - "integrity": "sha512-N8LxdHGBT7GZdogkEOV5xKXYTz5PNHuNzcxLNPYfH3kpvWSyXshZBgAz8YE1a8sMZagGj+Ic6d3mHijdCTSkGA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.0.5.tgz", + "integrity": "sha512-JED6WaIV00xM/gvj8vSnd+0VWtDYdidTmavFRCTQakqfz+4tDo6Jz5LHgG+dd45h7ah7ykCHW0C7ZXWEDROCXQ==", "requires": { - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/constants": "^5.0.0", - "@ethersproject/logger": "^5.0.0" + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/logger": "^5.0.5" } }, "@ethersproject/transactions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.1.tgz", - "integrity": "sha512-IGc6/5hri3PrqR/ZCj89osDiq3Lt0CSrycn6vlRl8SjpBKYDdcT+Ru5xkeC7YcsnqcdBmTL+jyR3SLudU+x2Kw==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.0.6.tgz", + "integrity": "sha512-htsFhOD+NMBxx676A8ehSuwVV49iqpSB+CkjPZ02tpNew0K6p8g0CZ46Z1ZP946gIHAU80xQ0NACHYrjIUaCFA==", "requires": { - "@ethersproject/address": "^5.0.0", - "@ethersproject/bignumber": "^5.0.0", - "@ethersproject/bytes": "^5.0.0", - "@ethersproject/constants": "^5.0.0", - "@ethersproject/keccak256": "^5.0.0", - "@ethersproject/logger": "^5.0.0", - "@ethersproject/properties": "^5.0.0", - "@ethersproject/rlp": "^5.0.0", - "@ethersproject/signing-key": "^5.0.0" + "@ethersproject/address": "^5.0.4", + "@ethersproject/bignumber": "^5.0.7", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/constants": "^5.0.4", + "@ethersproject/keccak256": "^5.0.3", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/rlp": "^5.0.3", + "@ethersproject/signing-key": "^5.0.4" + } + }, + "@ethersproject/web": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.0.9.tgz", + "integrity": "sha512-//QNlv1MSkOII1hv3+HQwWoiVFS+BMVGI0KYeUww4cyrEktnx1QIez5bTSab9s9fWTFaWKNmQNBwMbxAqPuYDw==", + "requires": { + "@ethersproject/base64": "^5.0.3", + "@ethersproject/bytes": "^5.0.4", + "@ethersproject/logger": "^5.0.5", + "@ethersproject/properties": "^5.0.3", + "@ethersproject/strings": "^5.0.4" } }, "@nodelib/fs.scandir": { @@ -411,9 +447,9 @@ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, "@solidity-parser/parser": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.6.1.tgz", - "integrity": "sha512-MUA5kP9LdeTILeOsaz/k/qA4MdTNUxrn6q6HMYsMzQN5crU9bWKND2DaoWZhzofQM0VaTOaD8GFkCw1BYbNj5w==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.8.2.tgz", + "integrity": "sha512-8LySx3qrNXPgB5JiULfG10O3V7QTxI/TLzSw5hFQhXWSkVxZBAv4rZQ0sYgLEbc8g3L2lmnujj1hKul38Eu5NQ==", "dev": true }, "@szmarczak/http-timer": { @@ -431,9 +467,9 @@ "dev": true }, "@truffle/hdwallet-provider": { - "version": "1.0.42", - "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.0.42.tgz", - "integrity": "sha512-Q6+Pn6x9oLE0lTk72xC4V7il/UoI2i6dy8kSfh4xjYkE585SO9sc7ndXqX5K+epPolr7UAndEe7Lv6mHjiPmsQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.2.0.tgz", + "integrity": "sha512-EPatDbyRuGbB/MLt9ZBokmtjyLjaNpuHfUIWuv4mQMrH1Nu82H5AAZYLh4Z1BZliDZpqB03a0yUMmK/4R0BN9g==", "dev": true, "requires": { "@trufflesuite/web3-provider-engine": "15.0.13-1", @@ -533,9 +569,9 @@ }, "dependencies": { "@types/node": { - "version": "12.12.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz", - "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==", + "version": "12.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.3.tgz", + "integrity": "sha512-8Jduo8wvvwDzEVJCOvS/G6sgilOLvvhn1eMmK3TW8/T217O7u1jdrK6ImKLv80tVryaPSVeKu6sjDEiFjd4/eg==", "dev": true }, "bn.js": { @@ -544,6 +580,77 @@ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", "dev": true }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "ethers": { + "version": "4.0.48", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.48.tgz", + "integrity": "sha512-sZD5K8H28dOrcidzx9f8KYh8083n5BexIO3+SbE4jK83L85FxtpXZBCQdXb8gkg+7sBqomcLhhkU7UHL+F7I2g==", + "dev": true, + "requires": { + "aes-js": "3.0.0", + "bn.js": "^4.4.0", + "elliptic": "6.5.3", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=", + "dev": true + }, + "scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", + "dev": true + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=", + "dev": true + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=", + "dev": true + }, "web3": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.2.tgz", @@ -559,6 +666,358 @@ "web3-shh": "1.2.2", "web3-utils": "1.2.2" } + }, + "web3-bzz": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.2.tgz", + "integrity": "sha512-b1O2ObsqUN1lJxmFSjvnEC4TsaCbmh7Owj3IAIWTKqL9qhVgx7Qsu5O9cD13pBiSPNZJ68uJPaKq380QB4NWeA==", + "dev": true, + "requires": { + "@types/node": "^10.12.18", + "got": "9.6.0", + "swarm-js": "0.1.39", + "underscore": "1.9.1" + }, + "dependencies": { + "@types/node": { + "version": "10.17.44", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.44.tgz", + "integrity": "sha512-vHPAyBX1ffLcy4fQHmDyIUMUb42gHZjPHU66nhvbMzAWJqHnySGZ6STwN3rwrnSd1FHB0DI/RWgGELgKSYRDmw==", + "dev": true + } + } + }, + "web3-core": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.2.tgz", + "integrity": "sha512-miHAX3qUgxV+KYfaOY93Hlc3kLW2j5fH8FJy6kSxAv+d4d5aH0wwrU2IIoJylQdT+FeenQ38sgsCnFu9iZ1hCQ==", + "dev": true, + "requires": { + "@types/bn.js": "^4.11.4", + "@types/node": "^12.6.1", + "web3-core-helpers": "1.2.2", + "web3-core-method": "1.2.2", + "web3-core-requestmanager": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-core-helpers": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", + "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-core-method": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.2.tgz", + "integrity": "sha512-szR4fDSBxNHaF1DFqE+j6sFR/afv9Aa36OW93saHZnrh+iXSrYeUUDfugeNcRlugEKeUCkd4CZylfgbK2SKYJA==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.2", + "web3-core-promievent": "1.2.2", + "web3-core-subscriptions": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-core-promievent": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.2.tgz", + "integrity": "sha512-tKvYeT8bkUfKABcQswK6/X79blKTKYGk949urZKcLvLDEaWrM3uuzDwdQT3BNKzQ3vIvTggFPX9BwYh0F1WwqQ==", + "dev": true, + "requires": { + "any-promise": "1.3.0", + "eventemitter3": "3.1.2" + } + }, + "web3-core-requestmanager": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.2.tgz", + "integrity": "sha512-a+gSbiBRHtHvkp78U2bsntMGYGF2eCb6219aMufuZWeAZGXJ63Wc2321PCbA8hF9cQrZI4EoZ4kVLRI4OF15Hw==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.2", + "web3-providers-http": "1.2.2", + "web3-providers-ipc": "1.2.2", + "web3-providers-ws": "1.2.2" + } + }, + "web3-core-subscriptions": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.2.tgz", + "integrity": "sha512-QbTgigNuT4eicAWWr7ahVpJyM8GbICsR1Ys9mJqzBEwpqS+RXTRVSkwZ2IsxO+iqv6liMNwGregbJLq4urMFcQ==", + "dev": true, + "requires": { + "eventemitter3": "3.1.2", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.2" + } + }, + "web3-eth": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.2.tgz", + "integrity": "sha512-UXpC74mBQvZzd4b+baD4Ocp7g+BlwxhBHumy9seyE/LMIcMlePXwCKzxve9yReNpjaU16Mmyya6ZYlyiKKV8UA==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.2", + "web3-core-helpers": "1.2.2", + "web3-core-method": "1.2.2", + "web3-core-subscriptions": "1.2.2", + "web3-eth-abi": "1.2.2", + "web3-eth-accounts": "1.2.2", + "web3-eth-contract": "1.2.2", + "web3-eth-ens": "1.2.2", + "web3-eth-iban": "1.2.2", + "web3-eth-personal": "1.2.2", + "web3-net": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-eth-abi": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.2.tgz", + "integrity": "sha512-Yn/ZMgoOLxhTVxIYtPJ0eS6pnAnkTAaJgUJh1JhZS4ekzgswMfEYXOwpMaD5eiqPJLpuxmZFnXnBZlnQ1JMXsw==", + "dev": true, + "requires": { + "ethers": "4.0.0-beta.3", + "underscore": "1.9.1", + "web3-utils": "1.2.2" + }, + "dependencies": { + "@types/node": { + "version": "10.17.44", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.44.tgz", + "integrity": "sha512-vHPAyBX1ffLcy4fQHmDyIUMUb42gHZjPHU66nhvbMzAWJqHnySGZ6STwN3rwrnSd1FHB0DI/RWgGELgKSYRDmw==", + "dev": true + }, + "elliptic": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", + "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "ethers": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", + "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", + "dev": true, + "requires": { + "@types/node": "^10.3.2", + "aes-js": "3.0.0", + "bn.js": "^4.4.0", + "elliptic": "6.3.3", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.3", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "scrypt-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", + "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", + "dev": true + } + } + }, + "web3-eth-accounts": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.2.tgz", + "integrity": "sha512-KzHOEyXOEZ13ZOkWN3skZKqSo5f4Z1ogPFNn9uZbKCz+kSp+gCAEKxyfbOsB/JMAp5h7o7pb6eYsPCUBJmFFiA==", + "dev": true, + "requires": { + "any-promise": "1.3.0", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.7", + "ethereumjs-common": "^1.3.2", + "ethereumjs-tx": "^2.1.1", + "scrypt-shim": "github:web3-js/scrypt-shim", + "underscore": "1.9.1", + "uuid": "3.3.2", + "web3-core": "1.2.2", + "web3-core-helpers": "1.2.2", + "web3-core-method": "1.2.2", + "web3-utils": "1.2.2" + }, + "dependencies": { + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + } + } + }, + "web3-eth-contract": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz", + "integrity": "sha512-EKT2yVFws3FEdotDQoNsXTYL798+ogJqR2//CaGwx3p0/RvQIgfzEwp8nbgA6dMxCsn9KOQi7OtklzpnJMkjtA==", + "dev": true, + "requires": { + "@types/bn.js": "^4.11.4", + "underscore": "1.9.1", + "web3-core": "1.2.2", + "web3-core-helpers": "1.2.2", + "web3-core-method": "1.2.2", + "web3-core-promievent": "1.2.2", + "web3-core-subscriptions": "1.2.2", + "web3-eth-abi": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-eth-ens": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.2.tgz", + "integrity": "sha512-CFjkr2HnuyMoMFBoNUWojyguD4Ef+NkyovcnUc/iAb9GP4LHohKrODG4pl76R5u61TkJGobC2ij6TyibtsyVYg==", + "dev": true, + "requires": { + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.2", + "web3-core-helpers": "1.2.2", + "web3-core-promievent": "1.2.2", + "web3-eth-abi": "1.2.2", + "web3-eth-contract": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-eth-iban": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.2.tgz", + "integrity": "sha512-gxKXBoUhaTFHr0vJB/5sd4i8ejF/7gIsbM/VvemHT3tF5smnmY6hcwSMmn7sl5Gs+83XVb/BngnnGkf+I/rsrQ==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + } + } + }, + "web3-eth-personal": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.2.tgz", + "integrity": "sha512-4w+GLvTlFqW3+q4xDUXvCEMU7kRZ+xm/iJC8gm1Li1nXxwwFbs+Y+KBK6ZYtoN1qqAnHR+plYpIoVo27ixI5Rg==", + "dev": true, + "requires": { + "@types/node": "^12.6.1", + "web3-core": "1.2.2", + "web3-core-helpers": "1.2.2", + "web3-core-method": "1.2.2", + "web3-net": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-net": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.2.tgz", + "integrity": "sha512-K07j2DXq0x4UOJgae65rWZKraOznhk8v5EGSTdFqASTx7vWE/m+NqBijBYGEsQY1lSMlVaAY9UEQlcXK5HzXTw==", + "dev": true, + "requires": { + "web3-core": "1.2.2", + "web3-core-method": "1.2.2", + "web3-utils": "1.2.2" + } + }, + "web3-providers-http": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.2.tgz", + "integrity": "sha512-BNZ7Hguy3eBszsarH5gqr9SIZNvqk9eKwqwmGH1LQS1FL3NdoOn7tgPPdddrXec4fL94CwgNk4rCU+OjjZRNDg==", + "dev": true, + "requires": { + "web3-core-helpers": "1.2.2", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.2.tgz", + "integrity": "sha512-t97w3zi5Kn/LEWGA6D9qxoO0LBOG+lK2FjlEdCwDQatffB/+vYrzZ/CLYVQSoyFZAlsDoBasVoYSWZK1n39aHA==", + "dev": true, + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.2" + } + }, + "web3-providers-ws": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.2.tgz", + "integrity": "sha512-Wb1mrWTGMTXOpJkL0yGvL/WYLt8fUIXx8k/l52QB2IiKzvyd42dTWn4+j8IKXGSYYzOm7NMqv6nhA5VDk12VfA==", + "dev": true, + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.2", + "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + } + }, + "web3-shh": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.2.tgz", + "integrity": "sha512-og258NPhlBn8yYrDWjoWBBb6zo1OlBgoWGT+LL5/LPqRbjPe09hlOYHgscAAr9zZGtohTOty7RrxYw6Z6oDWCg==", + "dev": true, + "requires": { + "web3-core": "1.2.2", + "web3-core-method": "1.2.2", + "web3-core-subscriptions": "1.2.2", + "web3-net": "1.2.2" + } + }, + "web3-utils": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.2.tgz", + "integrity": "sha512-joF+s3243TY5cL7Z7y4h1JsJpUCf/kmFmj+eJar7Y2yNIGVcW961VyrAms75tjUysSuHaUQ3eQXjBEUJueT52A==", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "eth-lib": "0.2.7", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + } + } + }, + "websocket": { + "version": "github:web3-js/WebSocket-Node#ef5ea2f41daf4a2113b80c9223df884b4d56c400", + "from": "github:web3-js/WebSocket-Node#polyfill/globalThis", + "dev": true, + "requires": { + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "nan": "^2.14.0", + "typedarray-to-buffer": "^3.1.5", + "yaeti": "^0.0.6" + } } } }, @@ -573,83 +1032,6 @@ "web3": "1.2.1" }, "dependencies": { - "@types/node": { - "version": "10.17.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", - "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", - "dev": true - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - }, - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - } - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true - }, "web3": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", @@ -664,271 +1046,6 @@ "web3-shh": "1.2.1", "web3-utils": "1.2.1" } - }, - "web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", - "dev": true, - "requires": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - } - }, - "web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", - "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-promievent": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", - "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - } - }, - "web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" - } - }, - "web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", - "dev": true, - "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } - }, - "web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-abi": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", - "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", - "dev": true, - "requires": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } - } - }, - "web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", - "dev": true, - "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-iban": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", - "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.1" - } - }, - "web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", - "dev": true, - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } - }, - "web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - } - }, - "web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", - "dev": true, - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" - } - }, - "web3-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", - "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.9.1", - "utf8": "3.0.0" - } } } }, @@ -1108,15 +1225,6 @@ "xtend": "^4.0.1" }, "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", @@ -1154,46 +1262,6 @@ "safe-buffer": "^5.1.1" } }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, "ws": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", @@ -1214,9 +1282,9 @@ } }, "@types/chai": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.11.tgz", - "integrity": "sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw==" + "version": "4.2.14", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.14.tgz", + "integrity": "sha512-G+ITQPXkwTrslfG5L/BksmbLUA0M1iybEsmCWPqzSxsRRhJZimBKJkoMi8fr/CPygPTj4zO5pJH7I2/cm9M7SQ==" }, "@types/es6-promisify": { "version": "6.0.0", @@ -1224,9 +1292,9 @@ "integrity": "sha512-w3eB2FfE60gHeUTWT65G/FsTlqOAl8qZeyDGxAniF4oS7T6acQ7uvtGKQlCIQNOGh6r21A/3mBASNzy8Tbx+hg==" }, "@types/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", "dev": true, "requires": { "@types/minimatch": "*", @@ -1245,15 +1313,14 @@ "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==" }, "@types/node": { - "version": "14.0.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.10.tgz", - "integrity": "sha512-Bz23oN/5bi0rniKT24ExLf4cK0JdvN3dH/3k0whYkdN4eI4vS2ZW/2ENNn2uxHCzWcbdHIa/GRuWQytfzCjRYw==" + "version": "14.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.6.tgz", + "integrity": "sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw==" }, "@types/pbkdf2": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dev": true, "requires": { "@types/node": "*" } @@ -1262,7 +1329,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", - "dev": true, "requires": { "@types/node": "*" } @@ -1276,54 +1342,6 @@ "web3": "*" } }, - "@web3-js/scrypt-shim": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@web3-js/scrypt-shim/-/scrypt-shim-0.1.0.tgz", - "integrity": "sha512-ZtZeWCc/s0nMcdx/+rZwY1EcuRdemOK9ag21ty9UsHkFxsNb/AaoucUz0iPuyGe0Ku+PFuRmWZG7Z7462p9xPw==", - "dev": true, - "requires": { - "scryptsy": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@web3-js/websocket": { - "version": "1.0.30", - "resolved": "https://registry.npmjs.org/@web3-js/websocket/-/websocket-1.0.30.tgz", - "integrity": "sha512-fDwrD47MiDrzcJdSeTLF75aCcxVVt8B1N74rA+vh2XCAvFy4tEWJjtnUtj2QG7/zlQ6g9cQ88bZFBxwd9/FmtA==", - "dev": true, - "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, "abbrev": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", @@ -1360,9 +1378,9 @@ "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" }, "ajv": { - "version": "6.12.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", - "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1383,18 +1401,14 @@ "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==" }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "any-promise": { "version": "1.3.0", @@ -1409,64 +1423,6 @@ "requires": { "micromatch": "^2.1.5", "normalize-path": "^2.0.0" - }, - "dependencies": { - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "optional": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "optional": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "optional": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - } } }, "arg": { @@ -1534,13 +1490,14 @@ } }, "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" }, "dependencies": { "bn.js": { @@ -1578,10 +1535,13 @@ "optional": true }, "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } }, "async-each": { "version": "1.0.3", @@ -1596,17 +1556,6 @@ "dev": true, "requires": { "async": "^2.4.0" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - } } }, "async-limiter": { @@ -1645,9 +1594,9 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "axios": { "version": "0.20.0", @@ -1677,23 +1626,6 @@ "slash": "^1.0.0", "source-map": "^0.5.6", "v8flags": "^2.1.1" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } } }, "babel-code-frame": { @@ -1704,48 +1636,6 @@ "chalk": "^1.1.3", "esutils": "^2.0.2", "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } } }, "babel-core": { @@ -1781,21 +1671,6 @@ "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" } } }, @@ -1810,16 +1685,6 @@ "@babel/types": "^7.7.0", "eslint-visitor-keys": "^1.0.0", "resolve": "^1.12.0" - }, - "dependencies": { - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "requires": { - "path-parse": "^1.0.6" - } - } } }, "babel-generator": { @@ -1835,13 +1700,6 @@ "lodash": "^4.17.4", "source-map": "^0.5.7", "trim-right": "^1.0.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } } }, "babel-helpers": { @@ -1890,16 +1748,6 @@ "lodash": "^4.17.4", "mkdirp": "^0.5.1", "source-map-support": "^0.4.15" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - } } }, "babel-runtime": { @@ -1946,11 +1794,6 @@ "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -2042,6 +1885,12 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "optional": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "optional": true } } }, @@ -2067,9 +1916,9 @@ } }, "bignumber.js": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", - "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" }, "binary-extensions": { "version": "1.13.1", @@ -2085,66 +1934,19 @@ "file-uri-to-path": "1.0.0" } }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", "requires": { "readable-stream": "^2.3.5", "safe-buffer": "^5.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - } } }, "blakejs": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", - "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=", - "dev": true + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" }, "bluebird": { "version": "3.7.2", @@ -2152,9 +1954,9 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==" + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==" }, "body-parser": { "version": "1.19.0", @@ -2180,11 +1982,6 @@ "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -2198,11 +1995,14 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "optional": true, "requires": { - "fill-range": "^7.0.1" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -2266,26 +2066,37 @@ } }, "browserify-sign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", - "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", "requires": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", "create-hash": "^1.2.0", "create-hmac": "^1.1.7", - "elliptic": "^6.5.2", + "elliptic": "^6.5.3", "inherits": "^2.0.4", "parse-asn1": "^5.1.5", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "bs58": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dev": true, "requires": { "base-x": "^3.0.2" } @@ -2294,7 +2105,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dev": true, "requires": { "bs58": "^4.0.0", "create-hash": "^1.1.0", @@ -2308,12 +2118,12 @@ "dev": true }, "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, "buffer-alloc": { @@ -2355,6 +2165,14 @@ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, + "bufferutil": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.2.tgz", + "integrity": "sha512-AtnG3W6M8B2n4xDQ5R+70EXvOpnXsFYg/AK2yTZd+HQ/oxAdz+GI+DvjmhBw3L0ole+LJ0ngqY4JMbDzkfNzhA==", + "requires": { + "node-gyp-build": "^4.2.0" + } + }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -2400,9 +2218,9 @@ }, "dependencies": { "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "requires": { "pump": "^3.0.0" } @@ -2414,6 +2232,15 @@ } } }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", @@ -2443,20 +2270,15 @@ "integrity": "sha512-SubOtaSI2AILWTWe2j0c6i2yFT/f9J6UBjeVGDuwDiPLkF/U5+/eTWUE3sbCZ1KgcPF6UJsDVYbIxaYA097MQA==" }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "check-error": { @@ -2488,32 +2310,6 @@ "is-glob": "^2.0.0", "path-is-absolute": "^1.0.0", "readdirp": "^2.0.0" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "optional": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "optional": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - } } }, "chownr": { @@ -2534,11 +2330,11 @@ }, "dependencies": { "multicodec": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.1.tgz", - "integrity": "sha512-yrrU/K8zHyAH2B0slNVeq3AiwluflHpgQ3TAzwNJcuO2AoPyXgBT2EDkdbP1D8B/yFOY+S2hDYmFlI1vhVFkQw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", "requires": { - "buffer": "^5.5.0", + "buffer": "^5.6.0", "varint": "^5.0.0" } } @@ -2602,16 +2398,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -2683,12 +2469,9 @@ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==" }, "commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "requires": { - "graceful-readlink": ">= 1.0.0" - } + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, "component-emitter": { "version": "1.3.0", @@ -2787,12 +2570,12 @@ } }, "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "requires": { "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "elliptic": "^6.5.3" }, "dependencies": { "bn.js": { @@ -2887,11 +2670,18 @@ "dev": true }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, "decamelize": { @@ -2917,13 +2707,6 @@ "make-dir": "^1.0.0", "pify": "^2.3.0", "strip-dirs": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } } }, "decompress-response": { @@ -2997,11 +2780,6 @@ "object-assign": "^4.0.1", "pinkie-promise": "^2.0.0" } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, @@ -3085,6 +2863,12 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "optional": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "optional": true } } }, @@ -3138,12 +2922,6 @@ "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, @@ -3195,23 +2973,13 @@ "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" }, "dotenv-flow": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/dotenv-flow/-/dotenv-flow-3.1.0.tgz", - "integrity": "sha512-BMA8vfu2DbAx5x5G3C+tgb1hCbONggZTSpBE7B4yCPG5vziKX/lA3CzsjdGKlPvLxZgTbP1qb+KlWux8pYqsmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/dotenv-flow/-/dotenv-flow-3.2.0.tgz", + "integrity": "sha512-GEB6RrR4AbqDJvNSFrYHqZ33IKKbzkvLYiD5eo4+9aFXr4Y4G+QaFrB/fNp0y6McWBmvaPn3ZNjIufnj8irCtg==", "requires": { "dotenv": "^8.0.0" } }, - "drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", - "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - } - }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -3253,10 +3021,9 @@ } }, "emoji-regex": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.0.0.tgz", - "integrity": "sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w==", - "dev": true + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" }, "encodeurl": { "version": "1.0.2", @@ -3301,19 +3068,20 @@ } }, "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.0", + "object.assign": "^4.1.1", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" } @@ -3373,10 +3141,9 @@ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { "version": "1.8.1", @@ -3396,13 +3163,23 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", "dev": true + }, + "source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", + "dev": true, + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } } } }, "eslint-visitor-keys": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz", - "integrity": "sha512-WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" }, "esprima": { "version": "4.0.1", @@ -3463,6 +3240,13 @@ "requires": { "idna-uts46-hx": "^2.3.1", "js-sha3": "^0.5.7" + }, + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + } } }, "eth-json-rpc-errors": { @@ -3519,13 +3303,6 @@ "integrity": "sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ==", "requires": { "js-sha3": "^0.8.0" - }, - "dependencies": { - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - } } }, "ethereum-common": { @@ -3538,7 +3315,6 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dev": true, "requires": { "@types/pbkdf2": "^3.0.0", "@types/secp256k1": "^4.0.1", @@ -3555,20 +3331,6 @@ "scrypt-js": "^3.0.0", "secp256k1": "^4.0.1", "setimmediate": "^1.0.5" - }, - "dependencies": { - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", - "dev": true - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - } } }, "ethereum-protocol": { @@ -3657,15 +3419,6 @@ "merkle-patricia-tree": "^2.1.2" }, "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", @@ -3708,9 +3461,9 @@ } }, "ethereumjs-common": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.1.tgz", - "integrity": "sha512-aVUPRLgmXORGXXEVkFYgPhr9TGtpBY2tGhZ9Uh0A3lIUzUDr1x6kQx33SbjPUkLkX3eniPQnIL/2psjkjrOfcQ==" + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz", + "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==" }, "ethereumjs-tx": { "version": "2.1.2", @@ -3727,59 +3480,32 @@ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, "ethereumjs-util": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz", - "integrity": "sha512-vb0XN9J2QGdZGIEKG2vXM+kUdEivUfU6Wmi5y0cg+LRhDYKnXIZ/Lz7XjFbHRR9VIKq2lVGLzGBkA++y2nOdOQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", "create-hash": "^1.1.2", - "ethjs-util": "0.1.6", - "keccak": "^2.0.0", - "rlp": "^2.2.3", - "secp256k1": "^3.0.1" - } - }, - "keccak": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-2.1.0.tgz", - "integrity": "sha512-m1wbJRTo+gWbctZWay9i26v5fFnYkOn7D5PCxJ3fZUGUEb49dE1Pm4BREUYCt/aoO6di7jeoGmhvqN9Nzylm3Q==", - "requires": { - "bindings": "^1.5.0", - "inherits": "^2.0.4", - "nan": "^2.14.0", - "safe-buffer": "^5.2.0" - } - }, - "secp256k1": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.8.0.tgz", - "integrity": "sha512-k5ke5avRZbtl9Tqx/SA7CbY3NF6Ro+Sj9cZxezFzuBlLDmyqPiL8hJJ+EmzD8Ig4LUDByHJ3/iPOVoRixs/hmw==", - "requires": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", "elliptic": "^6.5.2", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" } } } }, "ethereumjs-util": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.2.tgz", - "integrity": "sha512-ATAP02eJLpAlWGfiKQddNrRfZpwXiTFhRN2EM/yLXMCdBW/xjKYblNKcx8GLzzrjXg0ymotck+lam1nuV90arQ==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.0.7.tgz", + "integrity": "sha512-vU5rtZBlZsgkTw3o6PDKyB8li2EgLavnAbsKcfsH2YhHH1Le+PP8vEiMnAnvgc1B6uMoaM5GDCrVztBw0Q5K9g==", "requires": { "@types/bn.js": "^4.11.3", "bn.js": "^5.1.2", "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", "ethjs-util": "0.1.6", - "keccak": "^3.0.0", - "rlp": "^2.2.4", - "secp256k1": "^4.0.1" + "rlp": "^2.2.4" } }, "ethereumjs-vm": { @@ -3801,15 +3527,6 @@ "safe-buffer": "^5.1.1" }, "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", @@ -3915,62 +3632,75 @@ "requires": { "pbkdf2": "^3.0.3" } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true } } }, "ethers": { - "version": "4.0.47", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.47.tgz", - "integrity": "sha512-hssRYhngV4hiDNeZmVU/k5/E8xmLG8UpcNUzg6mb7lqhgpFPH/t7nuv20RjRrEf0gblzvi2XwR5Te+V3ZFc9pQ==", - "dev": true, + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", + "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", "requires": { + "@types/node": "^10.3.2", "aes-js": "3.0.0", "bn.js": "^4.4.0", - "elliptic": "6.5.2", + "elliptic": "6.3.3", "hash.js": "1.1.3", "js-sha3": "0.5.7", - "scrypt-js": "2.0.4", + "scrypt-js": "2.0.3", "setimmediate": "1.0.4", "uuid": "2.0.1", "xmlhttprequest": "1.8.0" }, "dependencies": { + "@types/node": { + "version": "10.17.44", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.44.tgz", + "integrity": "sha512-vHPAyBX1ffLcy4fQHmDyIUMUb42gHZjPHU66nhvbMzAWJqHnySGZ6STwN3rwrnSd1FHB0DI/RWgGELgKSYRDmw==" + }, "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, "elliptic": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", - "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", - "dev": true, + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", + "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", "requires": { "bn.js": "^4.4.0", "brorand": "^1.0.1", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "inherits": "^2.0.1" } }, "hash.js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.0" } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + }, + "scrypt-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", + "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=" + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" } } }, @@ -4035,39 +3765,6 @@ "optional": true, "requires": { "fill-range": "^2.1.0" - }, - "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "optional": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "express": { @@ -4115,11 +3812,6 @@ "ms": "2.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -4136,9 +3828,9 @@ }, "dependencies": { "type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", - "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==" } } }, @@ -4175,14 +3867,6 @@ "optional": true, "requires": { "is-extglob": "^1.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "optional": true - } } }, "extract-comments": { @@ -4210,14 +3894,14 @@ } }, "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.3.tgz", - "integrity": "sha512-fWSEEcoqcYqlFJrpSH5dJTwv6o0r+2bLAmnlne8OQMbFhpSTQXA8Ngp6q1DGA4B+eewHeuH5ndZeiV2qyXXNsA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -4226,6 +3910,75 @@ "merge2": "^1.3.0", "micromatch": "^4.0.2", "picomatch": "^2.2.1" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } } }, "fast-json-stable-stringify": { @@ -4246,9 +3999,9 @@ "dev": true }, "fastq": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", - "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", + "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -4288,11 +4041,16 @@ "optional": true }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "optional": true, "requires": { - "to-regex-range": "^5.0.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -4316,11 +4074,6 @@ "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -4333,17 +4086,17 @@ } }, "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", "requires": { "is-buffer": "~2.0.3" }, "dependencies": { "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" } } }, @@ -4412,14 +4165,15 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" } }, "fs-minipass": { @@ -4462,16 +4216,45 @@ "dev": true }, "ganache-cli": { - "version": "6.9.1", - "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.9.1.tgz", - "integrity": "sha512-VPBumkNUZzXDRQwVOby5YyQpd5t1clkr06xMgB28lZdEIn5ht1GMwUskOTFOAxdkQ4J12IWP0gdeacVRGowqbA==", + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.1.tgz", + "integrity": "sha512-zoefZLQpQyEJH9jgtVYgM+ENFLAC9iwys07IDCsju2Ieq9KSTLH89RxSP4bhizXKV/h/+qaWpfyCBGWnBfqgIQ==", "dev": true, "requires": { - "ethereumjs-util": "6.1.0", + "ethereumjs-util": "6.2.1", "source-map-support": "0.5.12", "yargs": "13.2.4" }, "dependencies": { + "@types/bn.js": { + "version": "4.11.6", + "bundled": true, + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "14.11.2", + "bundled": true, + "dev": true + }, + "@types/pbkdf2": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/secp256k1": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "@types/node": "*" + } + }, "ansi-regex": { "version": "4.1.0", "bundled": true, @@ -4485,24 +4268,21 @@ "color-convert": "^1.9.0" } }, - "bindings": { - "version": "1.5.0", - "bundled": true, - "dev": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bip66": { - "version": "1.1.5", + "base-x": { + "version": "3.0.8", "bundled": true, "dev": true, "requires": { "safe-buffer": "^5.0.1" } }, + "blakejs": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, "bn.js": { - "version": "4.11.8", + "version": "4.11.9", "bundled": true, "dev": true }, @@ -4524,6 +4304,24 @@ "safe-buffer": "^5.0.1" } }, + "bs58": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, "buffer-from": { "version": "1.1.1", "bundled": true, @@ -4613,18 +4411,8 @@ "bundled": true, "dev": true }, - "drbg.js": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - } - }, "elliptic": { - "version": "6.5.0", + "version": "6.5.3", "bundled": true, "dev": true, "requires": { @@ -4643,25 +4431,47 @@ "dev": true }, "end-of-stream": { - "version": "1.4.1", + "version": "1.4.4", "bundled": true, "dev": true, "requires": { "once": "^1.4.0" } }, - "ethereumjs-util": { - "version": "6.1.0", + "ethereum-cryptography": { + "version": "0.1.3", "bundled": true, "dev": true, "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "ethereumjs-util": { + "version": "6.2.1", + "bundled": true, + "dev": true, + "requires": { + "@types/bn.js": "^4.11.3", "bn.js": "^4.11.0", "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", "ethjs-util": "0.1.6", - "keccak": "^1.0.2", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1", - "secp256k1": "^3.0.1" + "rlp": "^2.2.3" } }, "ethjs-util": { @@ -4696,11 +4506,6 @@ "strip-eof": "^1.0.0" } }, - "file-uri-to-path": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, "find-up": { "version": "3.0.0", "bundled": true, @@ -4723,12 +4528,13 @@ } }, "hash-base": { - "version": "3.0.4", + "version": "3.1.0", "bundled": true, "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" } }, "hash.js": { @@ -4781,14 +4587,12 @@ "dev": true }, "keccak": { - "version": "1.4.0", + "version": "3.0.1", "bundled": true, "dev": true, "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" } }, "lcid": { @@ -4851,13 +4655,18 @@ "bundled": true, "dev": true }, - "nan": { - "version": "2.14.0", + "nice-try": { + "version": "1.0.5", "bundled": true, "dev": true }, - "nice-try": { - "version": "1.0.5", + "node-addon-api": { + "version": "2.0.2", + "bundled": true, + "dev": true + }, + "node-gyp-build": { + "version": "4.2.3", "bundled": true, "dev": true }, @@ -4903,7 +4712,7 @@ "dev": true }, "p-limit": { - "version": "2.2.0", + "version": "2.3.0", "bundled": true, "dev": true, "requires": { @@ -4933,6 +4742,18 @@ "bundled": true, "dev": true }, + "pbkdf2": { + "version": "3.1.1", + "bundled": true, + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "pump": { "version": "3.0.0", "bundled": true, @@ -4942,6 +4763,24 @@ "once": "^1.3.1" } }, + "randombytes": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "bundled": true, + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, "require-directory": { "version": "2.1.1", "bundled": true, @@ -4962,36 +4801,35 @@ } }, "rlp": { - "version": "2.2.3", + "version": "2.2.6", "bundled": true, "dev": true, "requires": { - "bn.js": "^4.11.1", - "safe-buffer": "^5.1.1" + "bn.js": "^4.11.1" } }, "safe-buffer": { - "version": "5.2.0", + "version": "5.2.1", + "bundled": true, + "dev": true + }, + "scrypt-js": { + "version": "3.0.1", "bundled": true, "dev": true }, "secp256k1": { - "version": "3.7.1", + "version": "4.0.2", "bundled": true, "dev": true, "requires": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.4.1", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" } }, "semver": { - "version": "5.7.0", + "version": "5.7.1", "bundled": true, "dev": true }, @@ -5000,6 +4838,11 @@ "bundled": true, "dev": true }, + "setimmediate": { + "version": "1.0.5", + "bundled": true, + "dev": true + }, "sha.js": { "version": "2.4.11", "bundled": true, @@ -5023,7 +4866,7 @@ "dev": true }, "signal-exit": { - "version": "3.0.2", + "version": "3.0.3", "bundled": true, "dev": true }, @@ -5051,6 +4894,14 @@ "strip-ansi": "^5.1.0" } }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, "strip-ansi": { "version": "5.2.0", "bundled": true, @@ -5072,6 +4923,11 @@ "is-hex-prefixed": "1.0.0" } }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, "which": { "version": "1.3.1", "bundled": true, @@ -5124,7 +4980,7 @@ } }, "yargs-parser": { - "version": "13.1.1", + "version": "13.1.2", "bundled": true, "dev": true, "requires": { @@ -5144,6 +5000,16 @@ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" }, + "get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -5174,6 +5040,37 @@ "requires": { "chalk": "^2.4.2", "node-emoji": "^1.10.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, "glob": { @@ -5197,40 +5094,15 @@ "requires": { "glob-parent": "^2.0.0", "is-glob": "^2.0.0" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "optional": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "optional": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - } } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "optional": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^2.0.0" } }, "global": { @@ -5260,6 +5132,14 @@ "ini": "^1.3.5", "kind-of": "^6.0.2", "which": "^1.3.1" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } } }, "globals": { @@ -5281,6 +5161,14 @@ "ignore": "^5.1.1", "merge2": "^1.2.3", "slash": "^3.0.0" + }, + "dependencies": { + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + } } }, "got": { @@ -5306,11 +5194,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -5343,11 +5226,11 @@ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "requires": { - "ajv": "^6.5.5", + "ajv": "^6.12.3", "har-schema": "^2.0.0" } }, @@ -5365,13 +5248,6 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } } }, "has-flag": { @@ -5465,6 +5341,18 @@ "inherits": "^2.0.4", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "hash.js": { @@ -5563,9 +5451,9 @@ } }, "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { "version": "5.1.8", @@ -5625,17 +5513,6 @@ "optional": true, "requires": { "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "is-arguments": { @@ -5659,9 +5536,17 @@ "optional": true }, "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" + }, + "is-core-module": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz", + "integrity": "sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==", + "requires": { + "has": "^1.0.3" + } }, "is-data-descriptor": { "version": "0.1.4", @@ -5670,17 +5555,6 @@ "optional": true, "requires": { "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "is-date-object": { @@ -5729,9 +5603,10 @@ "optional": true }, "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "optional": true }, "is-finite": { "version": "1.1.0", @@ -5745,10 +5620,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-function": { "version": "1.0.2", @@ -5761,11 +5635,12 @@ "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==" }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "optional": true, "requires": { - "is-extglob": "^2.1.1" + "is-extglob": "^1.0.0" } }, "is-hex-prefixed": { @@ -5786,10 +5661,19 @@ "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" }, + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" + }, "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } }, "is-object": { "version": "1.0.1", @@ -5831,9 +5715,9 @@ "optional": true }, "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "requires": { "has-symbols": "^1.0.1" } @@ -5865,6 +5749,26 @@ "es-abstract": "^1.17.4", "foreach": "^2.0.5", "has-symbols": "^1.0.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "is-typedarray": { @@ -5912,9 +5816,9 @@ } }, "js-sha3": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", - "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" }, "js-tokens": { "version": "3.0.2", @@ -5922,10 +5826,9 @@ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -5947,9 +5850,9 @@ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "json-rpc-engine": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.3.0.tgz", - "integrity": "sha512-+diJ9s8rxB+fbJhT7ZEf8r8spaLRignLd8jTgQ/h5JSGppAHGtNMZtCoabipCaleR1B3GTGxbXBOqhaJSGmPGQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz", + "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==", "dev": true, "requires": { "eth-rpc-errors": "^3.0.0", @@ -5992,9 +5895,9 @@ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" }, "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "requires": { "graceful-fs": "^4.1.6" } @@ -6006,9 +5909,9 @@ "dev": true }, "jsonschema": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.2.6.tgz", - "integrity": "sha512-SqhURKZG07JyKKeo/ir24QnS4/BV7a6gQy93bUSe4lUdNp0QNpIz2c9elWJQ9dpc5cQYY6cvCzgRwy0MQCLyqA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", + "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==", "dev": true }, "jsprim": { @@ -6023,9 +5926,9 @@ } }, "keccak": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.0.tgz", - "integrity": "sha512-/4h4FIfFEpTEuySXi/nVFM5rqSKPnnhI7cL4K3MFSwoI3VyM7AhPSq3SsysARtnEBEeIKMBUWD8cTh9nHE8AkA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", + "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", "requires": { "node-addon-api": "^2.0.0", "node-gyp-build": "^4.2.0" @@ -6040,9 +5943,13 @@ } }, "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } }, "klaw": { "version": "1.3.1", @@ -6221,6 +6128,34 @@ "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "requires": { "chalk": "^2.4.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, "loose-envify": { @@ -6361,6 +6296,12 @@ "semaphore": ">=1.0.1" }, "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", @@ -6381,46 +6322,6 @@ "rlp": "^2.0.0", "safe-buffer": "^5.1.1" } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } } } }, @@ -6430,13 +6331,24 @@ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "optional": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "miller-rabin": { @@ -6548,9 +6460,12 @@ } }, "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } }, "mkdirp-promise": { "version": "5.0.1", @@ -6601,9 +6516,17 @@ } }, "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==" + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } }, "chokidar": { "version": "3.3.0", @@ -6628,10 +6551,13 @@ "ms": "^2.1.1" } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } }, "fsevents": { "version": "2.1.3", @@ -6652,6 +6578,14 @@ "path-is-absolute": "^1.0.0" } }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "requires": { + "is-glob": "^4.0.1" + } + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -6660,22 +6594,23 @@ "binary-extensions": "^2.0.0" } }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "is-extglob": "^2.1.1" } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "ms": { "version": "2.1.1", @@ -6687,6 +6622,17 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, "readdirp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", @@ -6702,18 +6648,26 @@ "requires": { "has-flag": "^3.0.0" } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } } } }, "mock-fs": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.12.0.tgz", - "integrity": "sha512-/P/HtrlvBxY4o/PzXY9cCNBrdylDNxg7gnrv2sMNxj+UJ2m8jSpl0/A6fuJeNAWr99ZvGWH8XCbE0vmnM5KupQ==" + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.13.0.tgz", + "integrity": "sha512-DD0vOdofJdoaRNtnWcrXe6RQbpHkPPmtqGq14uRX0F8ZKJ5nv89CVTYl/BZdppDxBDaV0hl75htg3abpEWlPZA==" }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multibase": { "version": "0.6.1", @@ -6733,9 +6687,9 @@ } }, "multihashes": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.19.tgz", - "integrity": "sha512-ej74GAfA20imjj00RO5h34aY3pGUFyzn9FJZFWwdeUHlHTkKmv90FrNpvYT4jYf1XXCy5O/5EjVnxTaESgOM6A==", + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", "requires": { "buffer": "^5.5.0", "multibase": "^0.7.0", @@ -6754,9 +6708,9 @@ } }, "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" }, "nano-json-stream-parser": { "version": "0.1.2", @@ -6793,6 +6747,12 @@ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "optional": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "optional": true } } }, @@ -6802,9 +6762,9 @@ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, "next-tick": { @@ -6813,9 +6773,9 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" }, "node-addon-api": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.1.tgz", - "integrity": "sha512-2WVfwRfIr1AVn3dRq4yRc2Hn35ND+mPJH6inC6bjpYCZVrpXPB4j3T6i//OGVfqVsR1t/X/axRulDsheq4F0LQ==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" }, "node-emoji": { "version": "1.10.0", @@ -6833,13 +6793,6 @@ "requires": { "object.getownpropertydescriptors": "^2.0.3", "semver": "^5.7.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } } }, "node-fetch": { @@ -6853,9 +6806,9 @@ } }, "node-gyp-build": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.2.tgz", - "integrity": "sha512-Lqh7mrByWCM8Cf9UPqpeoVBBo5Ugx+RKu885GAzmLBVYjeywScxHXPGLa4JfYNZmcNGwzR0Glu5/9GaQZMFqyA==" + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" }, "nopt": { "version": "3.0.6", @@ -6925,30 +6878,21 @@ "requires": { "is-descriptor": "^0.1.0" } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } } } }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" }, "object-is": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", - "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz", + "integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==", "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "es-abstract": "^1.18.0-next.1" } }, "object-keys": { @@ -6974,14 +6918,14 @@ } }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "object.getownpropertydescriptors": { @@ -6991,6 +6935,26 @@ "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "object.omit": { @@ -7076,16 +7040,6 @@ "graceful-fs": "^4.1.4", "mkdirp": "^0.5.1", "object-assign": "^4.1.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - } } }, "p-cancelable": { @@ -7128,13 +7082,12 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", "requires": { - "asn1.js": "^4.0.0", + "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" @@ -7156,23 +7109,6 @@ "is-dotfile": "^1.0.0", "is-extglob": "^1.0.0", "is-glob": "^2.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "optional": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "optional": true, - "requires": { - "is-extglob": "^1.0.0" - } - } } }, "parse-headers": { @@ -7223,9 +7159,9 @@ "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=" }, "pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-wHMFZ6HTLGlB9f/WsQBs5OwMQJoLXYuJUzbA+j+hRBf7+Y8KcXpatzIviIcTy1OAyhWQp08nyiPO8Dnv0z4Sww==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -7250,10 +7186,9 @@ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" }, "pinkie": { "version": "2.0.4", @@ -7298,18 +7233,18 @@ "optional": true }, "prettier": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz", - "integrity": "sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", "dev": true }, "prettier-plugin-solidity": { - "version": "1.0.0-alpha.52", - "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-alpha.52.tgz", - "integrity": "sha512-3Ep3GP+OHbDltvXX60GauvsFLS4TliGLohkWZ5CLGjKeUIikYsB7jlkiRMgVS2K+/eisu4O09hRNYdBaFqcX+g==", + "version": "1.0.0-alpha.59", + "resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-alpha.59.tgz", + "integrity": "sha512-6cE0SWaiYCBoJY4clCfsbWlEEOU4K42Ny6Tg4Jwprgts/q+AVfYnPQ5coRs7zIjYzc4RVspifYPeh+oAg8RpLw==", "dev": true, "requires": { - "@solidity-parser/parser": "^0.6.1", + "@solidity-parser/parser": "^0.8.1", "dir-to-object": "^2.0.0", "emoji-regex": "^9.0.0", "escape-string-regexp": "^4.0.0", @@ -7317,6 +7252,66 @@ "prettier": "^2.0.5", "semver": "^7.3.2", "string-width": "^4.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "emoji-regex": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.0.tgz", + "integrity": "sha512-DNc3KFPK18bPdElMJnf/Pkv5TXhxFU3YFDEuGLDRtPmV4rkmCjBkCSEp22u6rBHdSN9Vlp/GK7k98prmE1Jgug==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + } + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "private": { @@ -7429,6 +7424,12 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "optional": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "optional": true } } }, @@ -7471,13 +7472,24 @@ } }, "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } } }, "readdirp": { @@ -7747,6 +7759,12 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "optional": true }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "optional": true + }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -7767,52 +7785,6 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } } } }, @@ -7915,11 +7887,6 @@ "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" } } }, @@ -7939,10 +7906,13 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" }, "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "requires": { + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" + } }, "resolve-url": { "version": "0.2.1", @@ -7988,9 +7958,9 @@ } }, "rlp": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.5.tgz", - "integrity": "sha512-y1QxTQOp0OZnjn19FxBmped4p+BSKPHwGndaqrESseyd2xXZtcgR3yuTIosh8CaMaOii9SKIYerBXnV/CpJ3qw==", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", "requires": { "bn.js": "^4.11.1" }, @@ -8003,9 +7973,9 @@ } }, "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", "dev": true }, "rustbn.js": { @@ -8064,6 +8034,12 @@ "wordwrap": "^1.0.0" }, "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, "esprima": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", @@ -8089,14 +8065,11 @@ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", "dev": true }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true }, "supports-color": { "version": "3.2.3", @@ -8110,10 +8083,9 @@ } }, "scrypt-js": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", - "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" }, "scrypt-shim": { "version": "github:web3-js/scrypt-shim#aafdadda13e660e25e1c525d1f5b2443f5eb1ebb", @@ -8138,9 +8110,9 @@ "integrity": "sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w==" }, "secp256k1": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.1.tgz", - "integrity": "sha512-iGRjbGAKfXMqhtdkkuNxsgJQfJO8Oo78Rm7DAvsG3XKngq+nJIOGqrCSXcQqIVsmCj0wFanE5uTKFxV3T9j2wg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", "requires": { "elliptic": "^6.5.2", "node-addon-api": "^2.0.0", @@ -8148,11 +8120,11 @@ } }, "seek-bzip": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", - "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", "requires": { - "commander": "~2.8.1" + "commander": "^2.8.1" } }, "semaphore": { @@ -8162,10 +8134,9 @@ "dev": true }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "send": { "version": "0.17.1", @@ -8267,9 +8238,9 @@ } }, "setimmediate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", - "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "setprototypeof": { "version": "1.1.1", @@ -8297,9 +8268,9 @@ } }, "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" }, "simple-get": { "version": "2.8.1", @@ -8312,10 +8283,9 @@ } }, "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" }, "snapdragon": { "version": "0.8.2", @@ -8359,18 +8329,6 @@ "requires": { "is-extendable": "^0.1.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "optional": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "optional": true } } }, @@ -8428,6 +8386,12 @@ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "optional": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "optional": true } } }, @@ -8438,17 +8402,6 @@ "optional": true, "requires": { "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "solc": { @@ -8470,52 +8423,22 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==" - }, - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, "solidity-coverage": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.7.7.tgz", - "integrity": "sha512-hD043l+Hy8cNMqrI6k5wZNEc7ceVJIWaWztE8D7u8QqbaObZldpknDJPRXHnRGniI5t6HeOQ+8F4ifiNCn2BeA==", + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.7.11.tgz", + "integrity": "sha512-HtBhXNTK2pO6hj82lf3txZ8afoyIGSmduJHJSoeZ71RjiuNzjGFj4duEZY/kfqxYSq1yARERC6jOTZGfIAeRyA==", "dev": true, "requires": { - "@solidity-parser/parser": "^0.6.0", + "@solidity-parser/parser": "^0.7.0", "@truffle/provider": "^0.1.17", "chalk": "^2.4.2", "death": "^1.1.0", "detect-port": "^1.3.0", "fs-extra": "^8.1.0", - "ganache-cli": "6.9.0", + "ganache-cli": "^6.11.0", "ghost-testrpc": "^0.0.2", "global-modules": "^2.0.0", "globby": "^10.0.1", @@ -8526,1077 +8449,76 @@ "recursive-readdir": "^2.2.2", "sc-istanbul": "^0.4.5", "shelljs": "^0.8.3", - "web3": "1.2.6" + "web3": "^1.3.0" }, "dependencies": { - "@types/node": { - "version": "12.12.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz", - "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==", + "@solidity-parser/parser": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.7.1.tgz", + "integrity": "sha512-5ma2uuwPAEX1TPl2rAPAAuGlBkKnn2oUKQvnhTFlDIB8U/KDWX77FpHtL6Rcz+OwqSCWx9IClxACgyIEJ/GhIw==", "dev": true }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "@types/node": { - "version": "10.17.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", - "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", - "dev": true - }, - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - } - } - }, - "ganache-cli": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.9.0.tgz", - "integrity": "sha512-ZdL6kPrApXF/O+f6uU431OJcwxMk69H3KPDSHHrMP82ZvZRNpDHbR+rVv7XX/YUeoQ5q6nZ2AFiGiFAVn9pfzA==", - "dev": true, - "requires": { - "ethereumjs-util": "6.1.0", - "source-map-support": "0.5.12", - "yargs": "13.2.4" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "bundled": true, - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "bundled": true, - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "bindings": { - "version": "1.5.0", - "bundled": true, - "dev": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bip66": { - "version": "1.1.5", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bn.js": { - "version": "4.11.8", - "bundled": true, - "dev": true - }, - "brorand": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "buffer-from": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "bundled": true, - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "bundled": true, - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cliui": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "color-convert": { - "version": "1.9.3", - "bundled": true, - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "bundled": true, - "dev": true - }, - "create-hash": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "6.0.5", - "bundled": true, - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "decamelize": { - "version": "1.2.0", - "bundled": true, - "dev": true - }, - "drbg.js": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - } - }, - "elliptic": { - "version": "6.5.0", - "bundled": true, - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "bundled": true, - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "ethereumjs-util": { - "version": "6.1.0", - "bundled": true, - "dev": true, - "requires": { - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "ethjs-util": "0.1.6", - "keccak": "^1.0.2", - "rlp": "^2.0.0", - "safe-buffer": "^5.1.1", - "secp256k1": "^3.0.1" - } - }, - "ethjs-util": { - "version": "0.1.6", - "bundled": true, - "dev": true, - "requires": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "find-up": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "bundled": true, - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "hash-base": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "inherits": { - "version": "2.0.4", - "bundled": true, - "dev": true - }, - "invert-kv": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "is-hex-prefixed": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "keccak": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "bindings": "^1.2.1", - "inherits": "^2.0.3", - "nan": "^2.2.1", - "safe-buffer": "^5.1.0" - } - }, - "lcid": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "bundled": true, - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "md5.js": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mem": { - "version": "4.3.0", - "bundled": true, - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "nan": { - "version": "2.14.0", - "bundled": true, - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-locale": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "p-defer": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "p-is-promise": { - "version": "2.1.0", - "bundled": true, - "dev": true - }, - "p-limit": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "bundled": true, - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "bundled": true, - "dev": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, - "pump": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "require-directory": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "ripemd160": { - "version": "2.0.2", - "bundled": true, - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rlp": { - "version": "2.2.3", - "bundled": true, - "dev": true, - "requires": { - "bn.js": "^4.11.1", - "safe-buffer": "^5.1.1" - } - }, - "safe-buffer": { - "version": "5.2.0", - "bundled": true, - "dev": true - }, - "secp256k1": { - "version": "3.7.1", - "bundled": true, - "dev": true, - "requires": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.4.1", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" - } - }, - "semver": { - "version": "5.7.0", - "bundled": true, - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "source-map": { - "version": "0.6.1", - "bundled": true, - "dev": true - }, - "source-map-support": { - "version": "0.5.12", - "bundled": true, - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "string-width": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "strip-eof": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "strip-hex-prefix": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-hex-prefixed": "1.0.0" - } - }, - "which": { - "version": "1.3.1", - "bundled": true, - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "bundled": true, - "dev": true - }, - "wrap-ansi": { - "version": "5.1.0", - "bundled": true, - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "y18n": { - "version": "4.0.0", - "bundled": true, - "dev": true - }, - "yargs": { - "version": "13.2.4", - "bundled": true, - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.0" - } - }, - "yargs-parser": { - "version": "13.1.1", - "bundled": true, - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - }, - "web3": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.6.tgz", - "integrity": "sha512-tpu9fLIComgxGrFsD8LUtA4s4aCZk7px8UfcdEy6kS2uDi/ZfR07KJqpXZMij7Jvlq+cQrTAhsPSiBVvoMaivA==", - "dev": true, - "requires": { - "@types/node": "^12.6.1", - "web3-bzz": "1.2.6", - "web3-core": "1.2.6", - "web3-eth": "1.2.6", - "web3-eth-personal": "1.2.6", - "web3-net": "1.2.6", - "web3-shh": "1.2.6", - "web3-utils": "1.2.6" - } - }, - "web3-bzz": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.6.tgz", - "integrity": "sha512-9NiHLlxdI1XeFtbPJAmi2jnnIHVF+GNy517wvOS72P7ZfuJTPwZaSNXfT01vWgPPE9R96/uAHDWHOg+T4WaDQQ==", - "dev": true, - "requires": { - "@types/node": "^10.12.18", - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - }, - "dependencies": { - "@types/node": { - "version": "10.17.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", - "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", - "dev": true - } - } - }, - "web3-core": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.6.tgz", - "integrity": "sha512-y/QNBFtr5cIR8vxebnotbjWJpOnO8LDYEAzZjeRRUJh2ijmhjoYk7dSNx9ExgC0UCfNFRoNCa9dGRu/GAxwRlw==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.4", - "@types/node": "^12.6.1", - "web3-core-helpers": "1.2.6", - "web3-core-method": "1.2.6", - "web3-core-requestmanager": "1.2.6", - "web3-utils": "1.2.6" - } - }, - "web3-core-helpers": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.6.tgz", - "integrity": "sha512-gYKWmC2HmO7RcDzpo4L1K8EIoy5L8iubNDuTC6q69UxczwqKF/Io0kbK/1Z10Av++NlzOSiuyGp2gc4t4UOsDw==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.6", - "web3-utils": "1.2.6" - } - }, - "web3-core-method": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.6.tgz", - "integrity": "sha512-r2dzyPEonqkBg7Mugq5dknhV5PGaZTHBZlS/C+aMxNyQs3T3eaAsCTqlQDitwNUh/sUcYPEGF0Vo7ahYK4k91g==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.6", - "web3-core-promievent": "1.2.6", - "web3-core-subscriptions": "1.2.6", - "web3-utils": "1.2.6" - } - }, - "web3-core-promievent": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.6.tgz", - "integrity": "sha512-km72kJef/qtQNiSjDJJVHIZvoVOm6ytW3FCYnOcCs7RIkviAb5JYlPiye0o4pJOLzCXYID7DK7Q9bhY8qWb1lw==", - "dev": true, - "requires": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - } - }, - "web3-core-requestmanager": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.6.tgz", - "integrity": "sha512-QU2cbsj9Dm0r6om40oSwk8Oqbp3wTa08tXuMpSmeOTkGZ3EMHJ1/4LiJ8shwg1AvPMrKVU0Nri6+uBNCdReZ+g==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.6", - "web3-providers-http": "1.2.6", - "web3-providers-ipc": "1.2.6", - "web3-providers-ws": "1.2.6" - } - }, - "web3-core-subscriptions": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.6.tgz", - "integrity": "sha512-M0PzRrP2Ct13x3wPulFtc5kENH4UtnPxO9YxkfQlX2WRKENWjt4Rfq+BCVGYEk3rTutDfWrjfzjmqMRvXqEY5Q==", - "dev": true, - "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.6" - } - }, - "web3-eth": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.6.tgz", - "integrity": "sha512-ROWlDPzh4QX6tlGGGlAK6X4kA2n0/cNj/4kb0nNVWkRouGmYO0R8k6s47YxYHvGiXt0s0++FUUv5vAbWovtUQw==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.6", - "web3-core-helpers": "1.2.6", - "web3-core-method": "1.2.6", - "web3-core-subscriptions": "1.2.6", - "web3-eth-abi": "1.2.6", - "web3-eth-accounts": "1.2.6", - "web3-eth-contract": "1.2.6", - "web3-eth-ens": "1.2.6", - "web3-eth-iban": "1.2.6", - "web3-eth-personal": "1.2.6", - "web3-net": "1.2.6", - "web3-utils": "1.2.6" - } - }, - "web3-eth-abi": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.6.tgz", - "integrity": "sha512-w9GAyyikn8nSifSDZxAvU9fxtQSX+W2xQWMmrtTXmBGCaE4/ywKOSPAO78gq8AoU4Wq5yqVGKZLLbfpt7/sHlA==", - "dev": true, - "requires": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.6" - } - }, - "web3-eth-accounts": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.6.tgz", - "integrity": "sha512-cDVtonHRgzqi/ZHOOf8kfCQWFEipcfQNAMzXIaKZwc0UUD9mgSI5oJrN45a89Ze+E6Lz9m77cDG5Ax9zscSkcw==", - "dev": true, - "requires": { - "@web3-js/scrypt-shim": "^0.1.0", - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "^0.2.8", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.6", - "web3-core-helpers": "1.2.6", - "web3-core-method": "1.2.6", - "web3-utils": "1.2.6" - }, - "dependencies": { - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true - } - } - }, - "web3-eth-contract": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.6.tgz", - "integrity": "sha512-ak4xbHIhWgsbdPCkSN+HnQc1SH4c856y7Ly+S57J/DQVzhFZemK5HvWdpwadJrQTcHET3ZeId1vq3kmW7UYodw==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.4", - "underscore": "1.9.1", - "web3-core": "1.2.6", - "web3-core-helpers": "1.2.6", - "web3-core-method": "1.2.6", - "web3-core-promievent": "1.2.6", - "web3-core-subscriptions": "1.2.6", - "web3-eth-abi": "1.2.6", - "web3-utils": "1.2.6" - } - }, - "web3-eth-ens": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.6.tgz", - "integrity": "sha512-8UEqt6fqR/dji/jBGPFAyBs16OJjwi0t2dPWXPyGXmty/fH+osnXwWXE4HRUyj4xuafiM5P1YkXMsPhKEadjiw==", - "dev": true, - "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.6", - "web3-core-helpers": "1.2.6", - "web3-core-promievent": "1.2.6", - "web3-eth-abi": "1.2.6", - "web3-eth-contract": "1.2.6", - "web3-utils": "1.2.6" - } - }, - "web3-eth-iban": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.6.tgz", - "integrity": "sha512-TPMc3BW9Iso7H+9w+ytbqHK9wgOmtocyCD3PaAe5Eie50KQ/j7ThA60dGJnxItVo6yyRv5pZAYxPVob9x/fJlg==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.6" - } - }, - "web3-eth-personal": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.6.tgz", - "integrity": "sha512-T2NUkh1plY8d7wePXSoHnaiKOd8dLNFaQfgBl9JHU6S7IJrG9jnYD9bVxLEgRUfHs9gKf9tQpDf7AcPFdq/A8g==", - "dev": true, - "requires": { - "@types/node": "^12.6.1", - "web3-core": "1.2.6", - "web3-core-helpers": "1.2.6", - "web3-core-method": "1.2.6", - "web3-net": "1.2.6", - "web3-utils": "1.2.6" - } - }, - "web3-net": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.6.tgz", - "integrity": "sha512-hsNHAPddrhgjWLmbESW0KxJi2GnthPcow0Sqpnf4oB6+/+ZnQHU9OsIyHb83bnC1OmunrK2vf9Ye2mLPdFIu3A==", - "dev": true, - "requires": { - "web3-core": "1.2.6", - "web3-core-method": "1.2.6", - "web3-utils": "1.2.6" - } - }, - "web3-providers-http": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.6.tgz", - "integrity": "sha512-2+SaFCspb5f82QKuHB3nEPQOF9iSWxRf7c18fHtmnLNVkfG9SwLN1zh67bYn3tZGUdOI3gj8aX4Uhfpwx9Ezpw==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.6", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.6.tgz", - "integrity": "sha512-b0Es+/GTZyk5FG3SgUDW+2/mBwJAXWt5LuppODptiOas8bB2khLjG6+Gm1K4uwOb+1NJGPt5mZZ8Wi7vibtQ+A==", - "dev": true, - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.6" - } - }, - "web3-providers-ws": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.6.tgz", - "integrity": "sha512-20waSYX+gb5M5yKhug5FIwxBBvkKzlJH7sK6XEgdOx6BZ9YYamLmvg9wcRVtnSZO8hV/3cWenO/tRtTrHVvIgQ==", - "dev": true, - "requires": { - "@web3-js/websocket": "^1.0.29", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.6" - } - }, - "web3-shh": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.6.tgz", - "integrity": "sha512-rouWyOOM6YMbLQd65grpj8BBezQfgNeRRX+cGyW4xsn6Xgu+B73Zvr6OtA/ftJwwa9bqHGpnLrrLMeWyy4YLUw==", - "dev": true, - "requires": { - "web3-core": "1.2.6", - "web3-core-method": "1.2.6", - "web3-core-subscriptions": "1.2.6", - "web3-net": "1.2.6" - } - }, - "web3-utils": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.6.tgz", - "integrity": "sha512-8/HnqG/l7dGmKMgEL9JeKPTtjScxOePTzopv5aaKFExPfaBrYRkgoMqhoowCiAl/s16QaTn4DoIF1QC4YsT7Mg==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" + "has-flag": "^3.0.0" } } } }, "source-map": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", - "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", - "dev": true, - "optional": true, - "requires": { - "amdefine": ">=0.0.4" - } + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { "version": "0.5.3", @@ -9617,13 +8539,6 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "requires": { "source-map": "^0.5.6" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } } }, "source-map-url": { @@ -9694,57 +8609,68 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } } } }, "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "es-abstract": "^1.18.0-next.1" } }, "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", "requires": { "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" + "es-abstract": "^1.18.0-next.1" } }, "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.2.0" + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^2.0.0" } }, "strip-dirs": { @@ -9769,12 +8695,9 @@ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" }, "swarm-js": { "version": "0.1.39", @@ -9831,6 +8754,14 @@ "url-to-options": "^1.0.1" } }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, "p-cancelable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", @@ -9841,11 +8772,6 @@ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", @@ -9868,16 +8794,6 @@ "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", "yallist": "^3.0.3" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - } } }, "tar-stream": { @@ -9892,35 +8808,6 @@ "readable-stream": "^2.3.0", "to-buffer": "^1.1.1", "xtend": "^4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "through": { @@ -9958,17 +8845,6 @@ "optional": true, "requires": { "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } } }, "to-readable-stream": { @@ -9989,11 +8865,24 @@ } }, "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "optional": true, "requires": { - "is-number": "^7.0.0" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + } + } } }, "toidentifier": { @@ -10026,88 +8915,6 @@ "websocket": "^1.0.28" }, "dependencies": { - "@types/node": { - "version": "10.17.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.24.tgz", - "integrity": "sha512-5SCfvCxV74kzR3uWgTYiGxrd69TbT1I6+cMx1A5kEly/IVveJBimtAMlXiEyVFn5DvUFewQWxOOiJhlxeQwxgA==" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - } - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=" - }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==" - }, "web3": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.1.tgz", @@ -10121,275 +8928,6 @@ "web3-shh": "1.2.1", "web3-utils": "1.2.1" } - }, - "web3-bzz": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", - "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", - "requires": { - "got": "9.6.0", - "swarm-js": "0.1.39", - "underscore": "1.9.1" - } - }, - "web3-core": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", - "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", - "requires": { - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-requestmanager": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", - "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-method": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", - "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-core-promievent": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", - "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", - "requires": { - "any-promise": "1.3.0", - "eventemitter3": "3.1.2" - } - }, - "web3-core-requestmanager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", - "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "web3-providers-http": "1.2.1", - "web3-providers-ipc": "1.2.1", - "web3-providers-ws": "1.2.1" - } - }, - "web3-core-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", - "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", - "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } - }, - "web3-eth": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", - "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-accounts": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-eth-ens": "1.2.1", - "web3-eth-iban": "1.2.1", - "web3-eth-personal": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-abi": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", - "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", - "requires": { - "ethers": "4.0.0-beta.3", - "underscore": "1.9.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-accounts": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", - "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", - "requires": { - "any-promise": "1.3.0", - "crypto-browserify": "3.12.0", - "eth-lib": "0.2.7", - "scryptsy": "2.1.0", - "semver": "6.2.0", - "underscore": "1.9.1", - "uuid": "3.3.2", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - }, - "dependencies": { - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - } - } - }, - "web3-eth-contract": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", - "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", - "requires": { - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-ens": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", - "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", - "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-promievent": "1.2.1", - "web3-eth-abi": "1.2.1", - "web3-eth-contract": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-eth-iban": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", - "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", - "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.1" - } - }, - "web3-eth-personal": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", - "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", - "requires": { - "web3-core": "1.2.1", - "web3-core-helpers": "1.2.1", - "web3-core-method": "1.2.1", - "web3-net": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-net": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", - "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-utils": "1.2.1" - } - }, - "web3-providers-http": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", - "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", - "requires": { - "web3-core-helpers": "1.2.1", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", - "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1" - } - }, - "web3-providers-ws": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", - "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.1", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - }, - "dependencies": { - "websocket": { - "version": "github:web3-js/WebSocket-Node#ef5ea2f41daf4a2113b80c9223df884b4d56c400", - "from": "github:web3-js/WebSocket-Node#polyfill/globalThis", - "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - } - } - } - }, - "web3-shh": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", - "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", - "requires": { - "web3-core": "1.2.1", - "web3-core-method": "1.2.1", - "web3-core-subscriptions": "1.2.1", - "web3-net": "1.2.1" - } - }, - "web3-utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", - "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", - "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randomhex": "0.1.5", - "underscore": "1.9.1", - "utf8": "3.0.0" - } - }, - "websocket": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", - "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", - "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - } } } }, @@ -10476,28 +9014,16 @@ } }, "typescript": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz", - "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==" + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==" }, "uglify-js": { - "version": "3.9.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.4.tgz", - "integrity": "sha512-8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA==", + "version": "3.11.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.5.tgz", + "integrity": "sha512-btvv/baMqe7HxP7zJSF7Uc16h1mSfuuSplT0/qdjxseesDU+yYzH33eHBH+eMdeRXwujXspaCTooWHQVVBh09w==", "dev": true, - "optional": true, - "requires": { - "commander": "~2.20.3" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "optional": true - } - } + "optional": true }, "ultron": { "version": "1.1.1", @@ -10587,9 +9113,9 @@ } }, "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "requires": { "punycode": "^2.1.0" } @@ -10629,6 +9155,14 @@ "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=" }, + "utf-8-validate": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.3.tgz", + "integrity": "sha512-jtJM6fpGv8C1SoH4PtG22pGto6x+Y8uPprW0tw3//gGFhDDTiuksgradgFN6yRayDP4SyZZa6ZMGHLIa17+M8A==", + "requires": { + "node-gyp-build": "^4.2.0" + } + }, "utf8": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", @@ -10658,9 +9192,9 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", - "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, "v8flags": { "version": "2.1.1", @@ -10671,9 +9205,9 @@ } }, "varint": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz", - "integrity": "sha1-2Ca4n3SQcy+rwMDtaT7Uddyynr8=" + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" }, "vary": { "version": "1.1.2", @@ -10691,36 +9225,33 @@ } }, "web3": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.2.9.tgz", - "integrity": "sha512-Mo5aBRm0JrcNpN/g4VOrDzudymfOnHRC3s2VarhYxRA8aWgF5rnhQ0ziySaugpic1gksbXPe105pUWyRqw8HUA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.3.0.tgz", + "integrity": "sha512-4q9dna0RecnrlgD/bD1C5S+81Untbd6Z/TBD7rb+D5Bvvc0Wxjr4OP70x+LlnwuRDjDtzBwJbNUblh2grlVArw==", "requires": { - "web3-bzz": "1.2.9", - "web3-core": "1.2.9", - "web3-eth": "1.2.9", - "web3-eth-personal": "1.2.9", - "web3-net": "1.2.9", - "web3-shh": "1.2.9", - "web3-utils": "1.2.9" + "web3-bzz": "1.3.0", + "web3-core": "1.3.0", + "web3-eth": "1.3.0", + "web3-eth-personal": "1.3.0", + "web3-net": "1.3.0", + "web3-shh": "1.3.0", + "web3-utils": "1.3.0" }, "dependencies": { "@types/node": { - "version": "10.17.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", - "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==" + "version": "12.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.3.tgz", + "integrity": "sha512-8Jduo8wvvwDzEVJCOvS/G6sgilOLvvhn1eMmK3TW8/T217O7u1jdrK6ImKLv80tVryaPSVeKu6sjDEiFjd4/eg==" }, "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" }, "fs-extra": { "version": "4.0.3", @@ -10737,10 +9268,21 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", + "requires": { + "http-https": "^1.0.0" + } }, "p-cancelable": { "version": "0.3.0", @@ -10752,16 +9294,6 @@ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, "swarm-js": { "version": "0.1.40", "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz", @@ -10817,126 +9349,119 @@ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "web3-bzz": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.9.tgz", - "integrity": "sha512-ogVQr9jHodu9HobARtvUSmWG22cv2EUQzlPeejGWZ7j5h20HX40EDuWyomGY5VclIj5DdLY76Tmq88RTf/6nxA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.3.0.tgz", + "integrity": "sha512-ibYAnKab+sgTo/UdfbrvYfWblXjjgSMgyy9/FHa6WXS14n/HVB+HfWqGz2EM3fok8Wy5XoKGMvdqvERQ/mzq1w==", "requires": { - "@types/node": "^10.12.18", + "@types/node": "^12.12.6", "got": "9.6.0", "swarm-js": "^0.1.40", "underscore": "1.9.1" } }, "web3-core": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.9.tgz", - "integrity": "sha512-fSYv21IP658Ty2wAuU9iqmW7V+75DOYMVZsDH/c14jcF/1VXnedOcxzxSj3vArsCvXZNe6XC5/wAuGZyQwR9RA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.3.0.tgz", + "integrity": "sha512-BwWvAaKJf4KFG9QsKRi3MNoNgzjI6szyUlgme1qNPxUdCkaS3Rdpa0VKYNHP7M/YTk82/59kNE66mH5vmoaXjA==", "requires": { - "@types/bn.js": "^4.11.4", - "@types/node": "^12.6.1", + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.2.9", - "web3-core-method": "1.2.9", - "web3-core-requestmanager": "1.2.9", - "web3-utils": "1.2.9" - }, - "dependencies": { - "@types/node": { - "version": "12.12.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz", - "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==" - } + "web3-core-helpers": "1.3.0", + "web3-core-method": "1.3.0", + "web3-core-requestmanager": "1.3.0", + "web3-utils": "1.3.0" } }, "web3-core-method": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.9.tgz", - "integrity": "sha512-bjsIoqP3gs7A/gP8+QeLUCyOKJ8bopteCSNbCX36Pxk6TYfYWNuC6hP+2GzUuqdP3xaZNe+XEElQFUNpR3oyAg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.3.0.tgz", + "integrity": "sha512-h0yFDrYVzy5WkLxC/C3q+hiMnzxdWm9p1T1rslnuHgOp6nYfqzu/6mUIXrsS4h/OWiGJt+BZ0xVZmtC31HDWtg==", "requires": { "@ethersproject/transactions": "^5.0.0-beta.135", "underscore": "1.9.1", - "web3-core-helpers": "1.2.9", - "web3-core-promievent": "1.2.9", - "web3-core-subscriptions": "1.2.9", - "web3-utils": "1.2.9" + "web3-core-helpers": "1.3.0", + "web3-core-promievent": "1.3.0", + "web3-core-subscriptions": "1.3.0", + "web3-utils": "1.3.0" } }, "web3-core-promievent": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.9.tgz", - "integrity": "sha512-0eAUA2zjgXTleSrnc1wdoKQPPIHU6KHf4fAscu4W9kKrR+mqP1KsjYrxY9wUyjNnXxfQ+5M29ipvbiaK8OqdOw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.3.0.tgz", + "integrity": "sha512-blv69wrXw447TP3iPvYJpllkhW6B18nfuEbrfcr3n2Y0v1Jx8VJacNZFDFsFIcgXcgUIVCtOpimU7w9v4+rtaw==", "requires": { - "eventemitter3": "3.1.2" + "eventemitter3": "4.0.4" } }, "web3-core-requestmanager": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.9.tgz", - "integrity": "sha512-1PwKV2m46ALUnIN5VPPgjOj8yMLJhhqZYvYJE34hTN5SErOkwhzx5zScvo5MN7v7KyQGFnpVCZKKGCiEnDmtFA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.3.0.tgz", + "integrity": "sha512-3yMbuGcomtzlmvTVqNRydxsx7oPlw3ioRL6ReF9PeNYDkUsZaUib+6Dp5eBt7UXh5X+SIn/xa1smhDHz5/HpAw==", "requires": { "underscore": "1.9.1", - "web3-core-helpers": "1.2.9", - "web3-providers-http": "1.2.9", - "web3-providers-ipc": "1.2.9", - "web3-providers-ws": "1.2.9" + "web3-core-helpers": "1.3.0", + "web3-providers-http": "1.3.0", + "web3-providers-ipc": "1.3.0", + "web3-providers-ws": "1.3.0" } }, "web3-core-subscriptions": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.9.tgz", - "integrity": "sha512-Y48TvXPSPxEM33OmXjGVDMzTd0j8X0t2+sDw66haeBS8eYnrEzasWuBZZXDq0zNUsqyxItgBGDn+cszkgEnFqg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.3.0.tgz", + "integrity": "sha512-MUUQUAhJDb+Nz3S97ExVWveH4utoUnsbPWP+q1HJH437hEGb4vunIb9KvN3hFHLB+aHJfPeStM/4yYTz5PeuyQ==", "requires": { - "eventemitter3": "3.1.2", + "eventemitter3": "4.0.4", "underscore": "1.9.1", - "web3-core-helpers": "1.2.9" + "web3-core-helpers": "1.3.0" } }, "web3-eth": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.9.tgz", - "integrity": "sha512-sIKO4iE9FEBa/CYUd6GdPd7GXt/wISqxUd8PlIld6+hvMJj02lgO7Z7p5T9mZIJcIZJGvZX81ogx8oJ9yif+Ag==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.3.0.tgz", + "integrity": "sha512-/bzJcxXPM9EM18JM5kO2JjZ3nEqVo3HxqU93aWAEgJNqaP/Lltmufl2GpvIB2Hvj+FXAjAXquxUdQ2/xP7BzHQ==", "requires": { "underscore": "1.9.1", - "web3-core": "1.2.9", - "web3-core-helpers": "1.2.9", - "web3-core-method": "1.2.9", - "web3-core-subscriptions": "1.2.9", - "web3-eth-abi": "1.2.9", - "web3-eth-accounts": "1.2.9", - "web3-eth-contract": "1.2.9", - "web3-eth-ens": "1.2.9", - "web3-eth-iban": "1.2.9", - "web3-eth-personal": "1.2.9", - "web3-net": "1.2.9", - "web3-utils": "1.2.9" + "web3-core": "1.3.0", + "web3-core-helpers": "1.3.0", + "web3-core-method": "1.3.0", + "web3-core-subscriptions": "1.3.0", + "web3-eth-abi": "1.3.0", + "web3-eth-accounts": "1.3.0", + "web3-eth-contract": "1.3.0", + "web3-eth-ens": "1.3.0", + "web3-eth-iban": "1.3.0", + "web3-eth-personal": "1.3.0", + "web3-net": "1.3.0", + "web3-utils": "1.3.0" } }, "web3-eth-abi": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.9.tgz", - "integrity": "sha512-3YwUYbh/DMfDbhMWEebAdjSd5bj3ZQieOjLzWFHU23CaLEqT34sUix1lba+hgUH/EN6A7bKAuKOhR3p0OvTn7Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.3.0.tgz", + "integrity": "sha512-1OrZ9+KGrBeBRd3lO8upkpNua9+7cBsQAgor9wbA25UrcUYSyL8teV66JNRu9gFxaTbkpdrGqM7J/LXpraXWrg==", "requires": { "@ethersproject/abi": "5.0.0-beta.153", "underscore": "1.9.1", - "web3-utils": "1.2.9" + "web3-utils": "1.3.0" } }, "web3-eth-accounts": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.9.tgz", - "integrity": "sha512-jkbDCZoA1qv53mFcRHCinoCsgg8WH+M0YUO1awxmqWXRmCRws1wW0TsuSQ14UThih5Dxolgl+e+aGWxG58LMwg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.3.0.tgz", + "integrity": "sha512-/Q7EVW4L2wWUbNRtOTwAIrYvJid/5UnKMw67x/JpvRMwYC+e+744P536Ja6SG4X3MnzFvd3E/jruV4qa6k+zIw==", "requires": { "crypto-browserify": "3.12.0", - "eth-lib": "^0.2.8", + "eth-lib": "0.2.8", "ethereumjs-common": "^1.3.2", "ethereumjs-tx": "^2.1.1", "scrypt-js": "^3.0.1", "underscore": "1.9.1", "uuid": "3.3.2", - "web3-core": "1.2.9", - "web3-core-helpers": "1.2.9", - "web3-core-method": "1.2.9", - "web3-utils": "1.2.9" + "web3-core": "1.3.0", + "web3-core-helpers": "1.3.0", + "web3-core-method": "1.3.0", + "web3-utils": "1.3.0" }, "dependencies": { "eth-lib": { @@ -10952,115 +9477,101 @@ } }, "web3-eth-ens": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.9.tgz", - "integrity": "sha512-kG4+ZRgZ8I1WYyOBGI8QVRHfUSbbJjvJAGA1AF/NOW7JXQ+x7gBGeJw6taDWJhSshMoEKWcsgvsiuoG4870YxQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.3.0.tgz", + "integrity": "sha512-WnOru+EcuM5dteiVYJcHXo/I7Wq+ei8RrlS2nir49M0QpYvUPGbCGgTbifcjJQTWamgORtWdljSA1s2Asdb74w==", "requires": { "content-hash": "^2.5.2", "eth-ens-namehash": "2.0.8", "underscore": "1.9.1", - "web3-core": "1.2.9", - "web3-core-helpers": "1.2.9", - "web3-core-promievent": "1.2.9", - "web3-eth-abi": "1.2.9", - "web3-eth-contract": "1.2.9", - "web3-utils": "1.2.9" + "web3-core": "1.3.0", + "web3-core-helpers": "1.3.0", + "web3-core-promievent": "1.3.0", + "web3-eth-abi": "1.3.0", + "web3-eth-contract": "1.3.0", + "web3-utils": "1.3.0" } }, "web3-eth-iban": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.9.tgz", - "integrity": "sha512-RtdVvJE0pyg9dHLy0GzDiqgnLnssSzfz/JYguhC1wsj9+Gnq1M6Diy3NixACWUAp6ty/zafyOaZnNQ+JuH9TjQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.3.0.tgz", + "integrity": "sha512-v9mZWhR4fPF17/KhHLiWir4YHWLe09O3B/NTdhWqw3fdAMJNztzMHGzgHxA/4fU+rhrs/FhDzc4yt32zMEXBZw==", "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.9" + "bn.js": "^4.11.9", + "web3-utils": "1.3.0" } }, "web3-eth-personal": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.9.tgz", - "integrity": "sha512-cFiNrktxZ1C/rIdJFzQTvFn3/0zcsR3a+Jf8Y3KxeQDHszQtosjLWptP7bsUmDwEh4hzh0Cy3KpOxlYBWB8bJQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.3.0.tgz", + "integrity": "sha512-2czUhElsJdLpuNfun9GeLiClo5O6Xw+bLSjl3f4bNG5X2V4wcIjX2ygep/nfstLLtkz8jSkgl/bV7esANJyeRA==", "requires": { - "@types/node": "^12.6.1", - "web3-core": "1.2.9", - "web3-core-helpers": "1.2.9", - "web3-core-method": "1.2.9", - "web3-net": "1.2.9", - "web3-utils": "1.2.9" - }, - "dependencies": { - "@types/node": { - "version": "12.12.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz", - "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==" - } + "@types/node": "^12.12.6", + "web3-core": "1.3.0", + "web3-core-helpers": "1.3.0", + "web3-core-method": "1.3.0", + "web3-net": "1.3.0", + "web3-utils": "1.3.0" } }, "web3-net": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.9.tgz", - "integrity": "sha512-d2mTn8jPlg+SI2hTj2b32Qan6DmtU9ap/IUlJTeQbZQSkTLf0u9suW8Vjwyr4poJYXTurdSshE7OZsPNn30/ZA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.3.0.tgz", + "integrity": "sha512-Xz02KylOyrB2YZzCkysEDrY7RbKxb7LADzx3Zlovfvuby7HBwtXVexXKtoGqksa+ns1lvjQLLQGb+OeLi7Sr7w==", "requires": { - "web3-core": "1.2.9", - "web3-core-method": "1.2.9", - "web3-utils": "1.2.9" + "web3-core": "1.3.0", + "web3-core-method": "1.3.0", + "web3-utils": "1.3.0" } }, "web3-providers-http": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.9.tgz", - "integrity": "sha512-F956tCIj60Ttr0UvEHWFIhx+be3He8msoPzyA44/kfzzYoMAsCFRn5cf0zQG6al0znE75g6HlWVSN6s3yAh51A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.3.0.tgz", + "integrity": "sha512-cMKhUI6PqlY/EC+ZDacAxajySBu8AzW8jOjt1Pe/mbRQgS0rcZyvLePGTTuoyaA8C21F8UW+EE5jj7YsNgOuqA==", "requires": { - "web3-core-helpers": "1.2.9", + "web3-core-helpers": "1.3.0", "xhr2-cookies": "1.1.0" } }, "web3-providers-ipc": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.9.tgz", - "integrity": "sha512-NQ8QnBleoHA2qTJlqoWu7EJAD/FR5uimf7Ielzk4Z2z+m+6UAuJdJMSuQNj+Umhz9L/Ys6vpS1vHx9NizFl+aQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.3.0.tgz", + "integrity": "sha512-0CrLuRofR+1J38nEj4WsId/oolwQEM6Yl1sOt41S/6bNI7htdkwgVhSloFIMJMDFHtRw229QIJ6wIaKQz0X1Og==", "requires": { - "oboe": "2.1.4", + "oboe": "2.1.5", "underscore": "1.9.1", - "web3-core-helpers": "1.2.9" + "web3-core-helpers": "1.3.0" } }, "web3-providers-ws": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.9.tgz", - "integrity": "sha512-6+UpvINeI//dglZoAKStUXqxDOXJy6Iitv2z3dbgInG4zb8tkYl/VBDL80UjUg3ZvzWG0g7EKY2nRPEpON2TFA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.3.0.tgz", + "integrity": "sha512-Im5MthhJnJst8nSoq0TgbyOdaiFQFa5r6sHPOVllhgIgViDqzbnlAFW9sNzQ0Q8VXPNfPIQKi9cOrHlSRNPjRw==", "requires": { - "eventemitter3": "^4.0.0", + "eventemitter3": "4.0.4", "underscore": "1.9.1", - "web3-core-helpers": "1.2.9", - "websocket": "^1.0.31" - }, - "dependencies": { - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - } + "web3-core-helpers": "1.3.0", + "websocket": "^1.0.32" } }, "web3-shh": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.9.tgz", - "integrity": "sha512-PWa8b/EaxaMinFaxy6cV0i0EOi2M7a/ST+9k9nhyhCjVa2vzXuNoBNo2IUOmeZ0WP2UQB8ByJ2+p4htlJaDOjA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.3.0.tgz", + "integrity": "sha512-IZTojA4VCwVq+7eEIHuL1tJXtU+LJDhO8Y2QmuwetEWW1iBgWCGPHZasipWP+7kDpSm/5lo5GRxL72FF/Os/tA==", "requires": { - "web3-core": "1.2.9", - "web3-core-method": "1.2.9", - "web3-core-subscriptions": "1.2.9", - "web3-net": "1.2.9" + "web3-core": "1.3.0", + "web3-core-method": "1.3.0", + "web3-core-subscriptions": "1.3.0", + "web3-net": "1.3.0" } }, "web3-utils": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.9.tgz", - "integrity": "sha512-9hcpuis3n/LxFzEVjwnVgvJzTirS2S9/MiNAa7l4WOEoywY+BSNwnRX4MuHnjkh9NY25B6QOjuNG6FNnSjTw1w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.0.tgz", + "integrity": "sha512-2mS5axFCbkhicmoDRuJeuo0TVGQDgC2sPi/5dblfVC+PMtX0efrb8Xlttv/eGkq7X4E83Pds34FH98TP2WOUZA==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", @@ -11070,9 +9581,9 @@ }, "dependencies": { "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -11080,93 +9591,61 @@ } } } - }, - "websocket": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", - "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", - "requires": { - "debug": "^2.2.0", - "es5-ext": "^0.10.50", - "nan": "^2.14.0", - "typedarray-to-buffer": "^3.1.5", - "yaeti": "^0.0.6" - } } } }, "web3-bzz": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.2.tgz", - "integrity": "sha512-b1O2ObsqUN1lJxmFSjvnEC4TsaCbmh7Owj3IAIWTKqL9qhVgx7Qsu5O9cD13pBiSPNZJ68uJPaKq380QB4NWeA==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.1.tgz", + "integrity": "sha512-LdOO44TuYbGIPfL4ilkuS89GQovxUpmLz6C1UC7VYVVRILeZS740FVB3j9V4P4FHUk1RenaDfKhcntqgVCHtjw==", "requires": { - "@types/node": "^10.12.18", "got": "9.6.0", "swarm-js": "0.1.39", "underscore": "1.9.1" - }, - "dependencies": { - "@types/node": { - "version": "10.17.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", - "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", - "dev": true - } } }, "web3-core": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.2.tgz", - "integrity": "sha512-miHAX3qUgxV+KYfaOY93Hlc3kLW2j5fH8FJy6kSxAv+d4d5aH0wwrU2IIoJylQdT+FeenQ38sgsCnFu9iZ1hCQ==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.1.tgz", + "integrity": "sha512-5ODwIqgl8oIg/0+Ai4jsLxkKFWJYE0uLuE1yUKHNVCL4zL6n3rFjRMpKPokd6id6nJCNgeA64KdWQ4XfpnjdMg==", "requires": { - "@types/bn.js": "^4.11.4", - "@types/node": "^12.6.1", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-requestmanager": "1.2.2", - "web3-utils": "1.2.2" + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-requestmanager": "1.2.1", + "web3-utils": "1.2.1" }, "dependencies": { - "@types/node": { - "version": "12.12.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz", - "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==", - "dev": true - }, "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", "requires": { "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" } } } }, "web3-core-helpers": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.9.tgz", - "integrity": "sha512-t0WAG3orLCE3lqi77ZoSRNFok3VQWZXTniZigDQjyOJYMAX7BU3F3js8HKbjVnAxlX3tiKoDxI0KBk9F3AxYuw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.3.0.tgz", + "integrity": "sha512-+MFb1kZCrRctf7UYE7NCG4rGhSXaQJ/KF07di9GVK1pxy1K0+rFi61ZobuV1ky9uQp+uhhSPts4Zp55kRDB5sw==", "requires": { "underscore": "1.9.1", - "web3-eth-iban": "1.2.9", - "web3-utils": "1.2.9" + "web3-eth-iban": "1.3.0", + "web3-utils": "1.3.0" }, "dependencies": { "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -11174,21 +9653,21 @@ } }, "web3-eth-iban": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.9.tgz", - "integrity": "sha512-RtdVvJE0pyg9dHLy0GzDiqgnLnssSzfz/JYguhC1wsj9+Gnq1M6Diy3NixACWUAp6ty/zafyOaZnNQ+JuH9TjQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.3.0.tgz", + "integrity": "sha512-v9mZWhR4fPF17/KhHLiWir4YHWLe09O3B/NTdhWqw3fdAMJNztzMHGzgHxA/4fU+rhrs/FhDzc4yt32zMEXBZw==", "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.9" + "bn.js": "^4.11.9", + "web3-utils": "1.3.0" } }, "web3-utils": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.9.tgz", - "integrity": "sha512-9hcpuis3n/LxFzEVjwnVgvJzTirS2S9/MiNAa7l4WOEoywY+BSNwnRX4MuHnjkh9NY25B6QOjuNG6FNnSjTw1w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.0.tgz", + "integrity": "sha512-2mS5axFCbkhicmoDRuJeuo0TVGQDgC2sPi/5dblfVC+PMtX0efrb8Xlttv/eGkq7X4E83Pds34FH98TP2WOUZA==", "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", @@ -11200,295 +9679,504 @@ } }, "web3-core-method": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.2.tgz", - "integrity": "sha512-szR4fDSBxNHaF1DFqE+j6sFR/afv9Aa36OW93saHZnrh+iXSrYeUUDfugeNcRlugEKeUCkd4CZylfgbK2SKYJA==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.1.tgz", + "integrity": "sha512-Ghg2WS23qi6Xj8Od3VCzaImLHseEA7/usvnOItluiIc5cKs00WYWsNy2YRStzU9a2+z8lwQywPYp0nTzR/QXdQ==", "requires": { "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-utils": "1.2.2" + "web3-core-helpers": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-utils": "1.2.1" }, "dependencies": { "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", "requires": { "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" } } } }, "web3-core-promievent": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.2.tgz", - "integrity": "sha512-tKvYeT8bkUfKABcQswK6/X79blKTKYGk949urZKcLvLDEaWrM3uuzDwdQT3BNKzQ3vIvTggFPX9BwYh0F1WwqQ==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz", + "integrity": "sha512-IVUqgpIKoeOYblwpex4Hye6npM0aMR+kU49VP06secPeN0rHMyhGF0ZGveWBrGvf8WDPI7jhqPBFIC6Jf3Q3zw==", "requires": { "any-promise": "1.3.0", "eventemitter3": "3.1.2" } }, "web3-core-requestmanager": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.2.tgz", - "integrity": "sha512-a+gSbiBRHtHvkp78U2bsntMGYGF2eCb6219aMufuZWeAZGXJ63Wc2321PCbA8hF9cQrZI4EoZ4kVLRI4OF15Hw==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz", + "integrity": "sha512-xfknTC69RfYmLKC+83Jz73IC3/sS2ZLhGtX33D4Q5nQ8yc39ElyAolxr9sJQS8kihOcM6u4J+8gyGMqsLcpIBg==", "requires": { "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "web3-providers-http": "1.2.2", - "web3-providers-ipc": "1.2.2", - "web3-providers-ws": "1.2.2" + "web3-core-helpers": "1.2.1", + "web3-providers-http": "1.2.1", + "web3-providers-ipc": "1.2.1", + "web3-providers-ws": "1.2.1" }, "dependencies": { "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", "requires": { "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" } } } }, "web3-core-subscriptions": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.2.tgz", - "integrity": "sha512-QbTgigNuT4eicAWWr7ahVpJyM8GbICsR1Ys9mJqzBEwpqS+RXTRVSkwZ2IsxO+iqv6liMNwGregbJLq4urMFcQ==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz", + "integrity": "sha512-nmOwe3NsB8V8UFsY1r+sW6KjdOS68h8nuh7NzlWxBQT/19QSUGiERRTaZXWu5BYvo1EoZRMxCKyCQpSSXLc08g==", "requires": { "eventemitter3": "3.1.2", "underscore": "1.9.1", - "web3-core-helpers": "1.2.2" + "web3-core-helpers": "1.2.1" }, "dependencies": { "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", "requires": { "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" } } } }, "web3-eth": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.2.tgz", - "integrity": "sha512-UXpC74mBQvZzd4b+baD4Ocp7g+BlwxhBHumy9seyE/LMIcMlePXwCKzxve9yReNpjaU16Mmyya6ZYlyiKKV8UA==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.1.tgz", + "integrity": "sha512-/2xly4Yry5FW1i+uygPjhfvgUP/MS/Dk+PDqmzp5M88tS86A+j8BzKc23GrlA8sgGs0645cpZK/999LpEF5UdA==", "requires": { "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-eth-accounts": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-eth-ens": "1.2.2", - "web3-eth-iban": "1.2.2", - "web3-eth-personal": "1.2.2", - "web3-net": "1.2.2", - "web3-utils": "1.2.2" + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-eth-accounts": "1.2.1", + "web3-eth-contract": "1.2.1", + "web3-eth-ens": "1.2.1", + "web3-eth-iban": "1.2.1", + "web3-eth-personal": "1.2.1", + "web3-net": "1.2.1", + "web3-utils": "1.2.1" }, "dependencies": { "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", "requires": { "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" } }, "web3-eth-contract": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz", - "integrity": "sha512-EKT2yVFws3FEdotDQoNsXTYL798+ogJqR2//CaGwx3p0/RvQIgfzEwp8nbgA6dMxCsn9KOQi7OtklzpnJMkjtA==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", + "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", "requires": { - "@types/bn.js": "^4.11.4", "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-utils": "1.2.2" + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-utils": "1.2.1" } } } }, "web3-eth-abi": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.2.tgz", - "integrity": "sha512-Yn/ZMgoOLxhTVxIYtPJ0eS6pnAnkTAaJgUJh1JhZS4ekzgswMfEYXOwpMaD5eiqPJLpuxmZFnXnBZlnQ1JMXsw==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz", + "integrity": "sha512-jI/KhU2a/DQPZXHjo2GW0myEljzfiKOn+h1qxK1+Y9OQfTcBMxrQJyH5AP89O6l6NZ1QvNdq99ThAxBFoy5L+g==", "requires": { "ethers": "4.0.0-beta.3", "underscore": "1.9.1", - "web3-utils": "1.2.2" - }, - "dependencies": { - "@types/node": { - "version": "10.17.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz", - "integrity": "sha512-myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==", - "dev": true - }, - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "elliptic": { - "version": "6.3.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", - "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "inherits": "^2.0.1" - } - }, - "ethers": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.3.tgz", - "integrity": "sha512-YYPogooSknTwvHg3+Mv71gM/3Wcrx+ZpCzarBj3mqs9njjRkrOo2/eufzhHloOCo3JSoNI4TQJJ6yU5ABm3Uog==", - "dev": true, - "requires": { - "@types/node": "^10.3.2", - "aes-js": "3.0.0", - "bn.js": "^4.4.0", - "elliptic": "6.3.3", - "hash.js": "1.1.3", - "js-sha3": "0.5.7", - "scrypt-js": "2.0.3", - "setimmediate": "1.0.4", - "uuid": "2.0.1", - "xmlhttprequest": "1.8.0" - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" - } - }, - "scrypt-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", - "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=", - "dev": true - } + "web3-utils": "1.2.1" } }, "web3-eth-accounts": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.2.tgz", - "integrity": "sha512-KzHOEyXOEZ13ZOkWN3skZKqSo5f4Z1ogPFNn9uZbKCz+kSp+gCAEKxyfbOsB/JMAp5h7o7pb6eYsPCUBJmFFiA==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz", + "integrity": "sha512-26I4qq42STQ8IeKUyur3MdQ1NzrzCqPsmzqpux0j6X/XBD7EjZ+Cs0lhGNkSKH5dI3V8CJasnQ5T1mNKeWB7nQ==", "requires": { "any-promise": "1.3.0", "crypto-browserify": "3.12.0", "eth-lib": "0.2.7", - "ethereumjs-common": "^1.3.2", - "ethereumjs-tx": "^2.1.1", - "scrypt-shim": "github:web3-js/scrypt-shim", + "scryptsy": "2.1.0", + "semver": "6.2.0", "underscore": "1.9.1", "uuid": "3.3.2", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-utils": "1.2.2" + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-utils": "1.2.1" }, "dependencies": { "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" }, "eth-lib": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", "xhr-request-promise": "^0.1.2" } }, + "semver": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", + "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==" + }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", "requires": { "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" } } } }, "web3-eth-contract": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.9.tgz", - "integrity": "sha512-PYMvJf7EG/HyssUZa+pXrc8IB06K/YFfWYyW4R7ed3sab+9wWUys1TlWxBCBuiBXOokSAyM6H6P6/cKEx8FT8Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.3.0.tgz", + "integrity": "sha512-3SCge4SRNCnzLxf0R+sXk6vyTOl05g80Z5+9/B5pERwtPpPWaQGw8w01vqYqsYBKC7zH+dxhMaUgVzU2Dgf7bQ==", "requires": { - "@types/bn.js": "^4.11.4", + "@types/bn.js": "^4.11.5", "underscore": "1.9.1", - "web3-core": "1.2.9", - "web3-core-helpers": "1.2.9", - "web3-core-method": "1.2.9", - "web3-core-promievent": "1.2.9", - "web3-core-subscriptions": "1.2.9", - "web3-eth-abi": "1.2.9", - "web3-utils": "1.2.9" + "web3-core": "1.3.0", + "web3-core-helpers": "1.3.0", + "web3-core-method": "1.3.0", + "web3-core-promievent": "1.3.0", + "web3-core-subscriptions": "1.3.0", + "web3-eth-abi": "1.3.0", + "web3-utils": "1.3.0" }, "dependencies": { "@types/node": { - "version": "12.12.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz", - "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==" + "version": "12.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.3.tgz", + "integrity": "sha512-8Jduo8wvvwDzEVJCOvS/G6sgilOLvvhn1eMmK3TW8/T217O7u1jdrK6ImKLv80tVryaPSVeKu6sjDEiFjd4/eg==" }, + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + }, + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", + "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" + }, + "oboe": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz", + "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=", + "requires": { + "http-https": "^1.0.0" + } + }, + "web3-core": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.3.0.tgz", + "integrity": "sha512-BwWvAaKJf4KFG9QsKRi3MNoNgzjI6szyUlgme1qNPxUdCkaS3Rdpa0VKYNHP7M/YTk82/59kNE66mH5vmoaXjA==", + "requires": { + "@types/bn.js": "^4.11.5", + "@types/node": "^12.12.6", + "bignumber.js": "^9.0.0", + "web3-core-helpers": "1.3.0", + "web3-core-method": "1.3.0", + "web3-core-requestmanager": "1.3.0", + "web3-utils": "1.3.0" + } + }, + "web3-core-method": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.3.0.tgz", + "integrity": "sha512-h0yFDrYVzy5WkLxC/C3q+hiMnzxdWm9p1T1rslnuHgOp6nYfqzu/6mUIXrsS4h/OWiGJt+BZ0xVZmtC31HDWtg==", + "requires": { + "@ethersproject/transactions": "^5.0.0-beta.135", + "underscore": "1.9.1", + "web3-core-helpers": "1.3.0", + "web3-core-promievent": "1.3.0", + "web3-core-subscriptions": "1.3.0", + "web3-utils": "1.3.0" + } + }, + "web3-core-promievent": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.3.0.tgz", + "integrity": "sha512-blv69wrXw447TP3iPvYJpllkhW6B18nfuEbrfcr3n2Y0v1Jx8VJacNZFDFsFIcgXcgUIVCtOpimU7w9v4+rtaw==", + "requires": { + "eventemitter3": "4.0.4" + } + }, + "web3-core-requestmanager": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.3.0.tgz", + "integrity": "sha512-3yMbuGcomtzlmvTVqNRydxsx7oPlw3ioRL6ReF9PeNYDkUsZaUib+6Dp5eBt7UXh5X+SIn/xa1smhDHz5/HpAw==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.3.0", + "web3-providers-http": "1.3.0", + "web3-providers-ipc": "1.3.0", + "web3-providers-ws": "1.3.0" + } + }, + "web3-core-subscriptions": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.3.0.tgz", + "integrity": "sha512-MUUQUAhJDb+Nz3S97ExVWveH4utoUnsbPWP+q1HJH437hEGb4vunIb9KvN3hFHLB+aHJfPeStM/4yYTz5PeuyQ==", + "requires": { + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.3.0" + } + }, + "web3-eth-abi": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.3.0.tgz", + "integrity": "sha512-1OrZ9+KGrBeBRd3lO8upkpNua9+7cBsQAgor9wbA25UrcUYSyL8teV66JNRu9gFxaTbkpdrGqM7J/LXpraXWrg==", + "requires": { + "@ethersproject/abi": "5.0.0-beta.153", + "underscore": "1.9.1", + "web3-utils": "1.3.0" + } + }, + "web3-providers-http": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.3.0.tgz", + "integrity": "sha512-cMKhUI6PqlY/EC+ZDacAxajySBu8AzW8jOjt1Pe/mbRQgS0rcZyvLePGTTuoyaA8C21F8UW+EE5jj7YsNgOuqA==", + "requires": { + "web3-core-helpers": "1.3.0", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.3.0.tgz", + "integrity": "sha512-0CrLuRofR+1J38nEj4WsId/oolwQEM6Yl1sOt41S/6bNI7htdkwgVhSloFIMJMDFHtRw229QIJ6wIaKQz0X1Og==", + "requires": { + "oboe": "2.1.5", + "underscore": "1.9.1", + "web3-core-helpers": "1.3.0" + } + }, + "web3-providers-ws": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.3.0.tgz", + "integrity": "sha512-Im5MthhJnJst8nSoq0TgbyOdaiFQFa5r6sHPOVllhgIgViDqzbnlAFW9sNzQ0Q8VXPNfPIQKi9cOrHlSRNPjRw==", + "requires": { + "eventemitter3": "4.0.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.3.0", + "websocket": "^1.0.32" + } + }, + "web3-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.0.tgz", + "integrity": "sha512-2mS5axFCbkhicmoDRuJeuo0TVGQDgC2sPi/5dblfVC+PMtX0efrb8Xlttv/eGkq7X4E83Pds34FH98TP2WOUZA==", + "requires": { + "bn.js": "^4.11.9", + "eth-lib": "0.2.8", + "ethereum-bloom-filters": "^1.0.6", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "underscore": "1.9.1", + "utf8": "3.0.0" + } + } + } + }, + "web3-eth-ens": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz", + "integrity": "sha512-lhP1kFhqZr2nnbu3CGIFFrAnNxk2veXpOXBY48Tub37RtobDyHijHgrj+xTh+mFiPokyrapVjpFsbGa+Xzye4Q==", + "requires": { + "eth-ens-namehash": "2.0.8", + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-eth-contract": "1.2.1", + "web3-utils": "1.2.1" + }, + "dependencies": { + "web3-core-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-eth-contract": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz", + "integrity": "sha512-kYFESbQ3boC9bl2rYVghj7O8UKMiuKaiMkxvRH5cEDHil8V7MGEGZNH0slSdoyeftZVlaWSMqkRP/chfnKND0g==", + "requires": { + "underscore": "1.9.1", + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-promievent": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-eth-abi": "1.2.1", + "web3-utils": "1.2.1" + } + } + } + }, + "web3-eth-iban": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz", + "integrity": "sha512-9gkr4QPl1jCU+wkgmZ8EwODVO3ovVj6d6JKMos52ggdT2YCmlfvFVF6wlGLwi0VvNa/p+0BjJzaqxnnG/JewjQ==", + "requires": { + "bn.js": "4.11.8", + "web3-utils": "1.2.1" + }, + "dependencies": { "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, + } + } + }, + "web3-eth-personal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz", + "integrity": "sha512-RNDVSiaSoY4aIp8+Hc7z+X72H7lMb3fmAChuSBADoEc7DsJrY/d0R5qQDK9g9t2BO8oxgLrLNyBP/9ub2Hc6Bg==", + "requires": { + "web3-core": "1.2.1", + "web3-core-helpers": "1.2.1", + "web3-core-method": "1.2.1", + "web3-net": "1.2.1", + "web3-utils": "1.2.1" + }, + "dependencies": { + "web3-core-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" + } + } + } + }, + "web3-net": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.1.tgz", + "integrity": "sha512-Yt1Bs7WgnLESPe0rri/ZoPWzSy55ovioaP35w1KZydrNtQ5Yq4WcrAdhBzcOW7vAkIwrsLQsvA+hrOCy7mNauw==", + "requires": { + "web3-core": "1.2.1", + "web3-core-method": "1.2.1", + "web3-utils": "1.2.1" + } + }, + "web3-providers-http": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.1.tgz", + "integrity": "sha512-BDtVUVolT9b3CAzeGVA/np1hhn7RPUZ6YYGB/sYky+GjeO311Yoq8SRDUSezU92x8yImSC2B+SMReGhd1zL+bQ==", + "requires": { + "web3-core-helpers": "1.2.1", + "xhr2-cookies": "1.1.0" + }, + "dependencies": { + "web3-core-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" + } + } + } + }, + "web3-providers-ipc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz", + "integrity": "sha512-oPEuOCwxVx8L4CPD0TUdnlOUZwGBSRKScCz/Ws2YHdr9Ium+whm+0NLmOZjkjQp5wovQbyBzNa6zJz1noFRvFA==", + "requires": { + "oboe": "2.1.4", + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1" + }, + "dependencies": { + "web3-core-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", + "requires": { + "underscore": "1.9.1", + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" + } + } + } + }, + "web3-providers-ws": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz", + "integrity": "sha512-oqsQXzu+ejJACVHy864WwIyw+oB21nw/pI65/sD95Zi98+/HQzFfNcIFneF1NC4bVF3VNX4YHTNq2I2o97LAiA==", + "requires": { + "underscore": "1.9.1", + "web3-core-helpers": "1.2.1", + "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" + }, + "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -11497,144 +10185,19 @@ "ms": "2.0.0" } }, - "eth-lib": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", - "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "requires": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "web3-core": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.2.9.tgz", - "integrity": "sha512-fSYv21IP658Ty2wAuU9iqmW7V+75DOYMVZsDH/c14jcF/1VXnedOcxzxSj3vArsCvXZNe6XC5/wAuGZyQwR9RA==", - "requires": { - "@types/bn.js": "^4.11.4", - "@types/node": "^12.6.1", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.2.9", - "web3-core-method": "1.2.9", - "web3-core-requestmanager": "1.2.9", - "web3-utils": "1.2.9" - } - }, - "web3-core-method": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.9.tgz", - "integrity": "sha512-bjsIoqP3gs7A/gP8+QeLUCyOKJ8bopteCSNbCX36Pxk6TYfYWNuC6hP+2GzUuqdP3xaZNe+XEElQFUNpR3oyAg==", - "requires": { - "@ethersproject/transactions": "^5.0.0-beta.135", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.9", - "web3-core-promievent": "1.2.9", - "web3-core-subscriptions": "1.2.9", - "web3-utils": "1.2.9" - } - }, - "web3-core-promievent": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.9.tgz", - "integrity": "sha512-0eAUA2zjgXTleSrnc1wdoKQPPIHU6KHf4fAscu4W9kKrR+mqP1KsjYrxY9wUyjNnXxfQ+5M29ipvbiaK8OqdOw==", - "requires": { - "eventemitter3": "3.1.2" - } - }, - "web3-core-requestmanager": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.9.tgz", - "integrity": "sha512-1PwKV2m46ALUnIN5VPPgjOj8yMLJhhqZYvYJE34hTN5SErOkwhzx5zScvo5MN7v7KyQGFnpVCZKKGCiEnDmtFA==", + "web3-core-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz", + "integrity": "sha512-Gx3sTEajD5r96bJgfuW377PZVFmXIH4TdqDhgGwd2lZQCcMi+DA4TgxJNJGxn0R3aUVzyyE76j4LBrh412mXrw==", "requires": { "underscore": "1.9.1", - "web3-core-helpers": "1.2.9", - "web3-providers-http": "1.2.9", - "web3-providers-ipc": "1.2.9", - "web3-providers-ws": "1.2.9" - } - }, - "web3-core-subscriptions": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.9.tgz", - "integrity": "sha512-Y48TvXPSPxEM33OmXjGVDMzTd0j8X0t2+sDw66haeBS8eYnrEzasWuBZZXDq0zNUsqyxItgBGDn+cszkgEnFqg==", - "requires": { - "eventemitter3": "3.1.2", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.9" - } - }, - "web3-eth-abi": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.9.tgz", - "integrity": "sha512-3YwUYbh/DMfDbhMWEebAdjSd5bj3ZQieOjLzWFHU23CaLEqT34sUix1lba+hgUH/EN6A7bKAuKOhR3p0OvTn7Q==", - "requires": { - "@ethersproject/abi": "5.0.0-beta.153", - "underscore": "1.9.1", - "web3-utils": "1.2.9" - } - }, - "web3-providers-http": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.9.tgz", - "integrity": "sha512-F956tCIj60Ttr0UvEHWFIhx+be3He8msoPzyA44/kfzzYoMAsCFRn5cf0zQG6al0znE75g6HlWVSN6s3yAh51A==", - "requires": { - "web3-core-helpers": "1.2.9", - "xhr2-cookies": "1.1.0" - } - }, - "web3-providers-ipc": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.9.tgz", - "integrity": "sha512-NQ8QnBleoHA2qTJlqoWu7EJAD/FR5uimf7Ielzk4Z2z+m+6UAuJdJMSuQNj+Umhz9L/Ys6vpS1vHx9NizFl+aQ==", - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.9" - } - }, - "web3-providers-ws": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.9.tgz", - "integrity": "sha512-6+UpvINeI//dglZoAKStUXqxDOXJy6Iitv2z3dbgInG4zb8tkYl/VBDL80UjUg3ZvzWG0g7EKY2nRPEpON2TFA==", - "requires": { - "eventemitter3": "^4.0.0", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.9", - "websocket": "^1.0.31" - }, - "dependencies": { - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==" - } - } - }, - "web3-utils": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.9.tgz", - "integrity": "sha512-9hcpuis3n/LxFzEVjwnVgvJzTirS2S9/MiNAa7l4WOEoywY+BSNwnRX4MuHnjkh9NY25B6QOjuNG6FNnSjTw1w==", - "requires": { - "bn.js": "4.11.8", - "eth-lib": "0.2.7", - "ethereum-bloom-filters": "^1.0.6", - "ethjs-unit": "0.1.6", - "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", - "underscore": "1.9.1", - "utf8": "3.0.0" + "web3-eth-iban": "1.2.1", + "web3-utils": "1.2.1" } }, "websocket": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", - "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", + "version": "github:web3-js/WebSocket-Node#ef5ea2f41daf4a2113b80c9223df884b4d56c400", + "from": "github:web3-js/WebSocket-Node#polyfill/globalThis", "requires": { "debug": "^2.2.0", "es5-ext": "^0.10.50", @@ -11645,209 +10208,27 @@ } } }, - "web3-eth-ens": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.2.tgz", - "integrity": "sha512-CFjkr2HnuyMoMFBoNUWojyguD4Ef+NkyovcnUc/iAb9GP4LHohKrODG4pl76R5u61TkJGobC2ij6TyibtsyVYg==", - "dev": true, - "requires": { - "eth-ens-namehash": "2.0.8", - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-eth-contract": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" - } - }, - "web3-eth-contract": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz", - "integrity": "sha512-EKT2yVFws3FEdotDQoNsXTYL798+ogJqR2//CaGwx3p0/RvQIgfzEwp8nbgA6dMxCsn9KOQi7OtklzpnJMkjtA==", - "dev": true, - "requires": { - "@types/bn.js": "^4.11.4", - "underscore": "1.9.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-promievent": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-eth-abi": "1.2.2", - "web3-utils": "1.2.2" - } - } - } - }, - "web3-eth-iban": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.2.tgz", - "integrity": "sha512-gxKXBoUhaTFHr0vJB/5sd4i8ejF/7gIsbM/VvemHT3tF5smnmY6hcwSMmn7sl5Gs+83XVb/BngnnGkf+I/rsrQ==", - "dev": true, - "requires": { - "bn.js": "4.11.8", - "web3-utils": "1.2.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true - } - } - }, - "web3-eth-personal": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.2.tgz", - "integrity": "sha512-4w+GLvTlFqW3+q4xDUXvCEMU7kRZ+xm/iJC8gm1Li1nXxwwFbs+Y+KBK6ZYtoN1qqAnHR+plYpIoVo27ixI5Rg==", - "dev": true, - "requires": { - "@types/node": "^12.6.1", - "web3-core": "1.2.2", - "web3-core-helpers": "1.2.2", - "web3-core-method": "1.2.2", - "web3-net": "1.2.2", - "web3-utils": "1.2.2" - }, - "dependencies": { - "@types/node": { - "version": "12.12.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz", - "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==", - "dev": true - }, - "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" - } - } - } - }, - "web3-net": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.2.2.tgz", - "integrity": "sha512-K07j2DXq0x4UOJgae65rWZKraOznhk8v5EGSTdFqASTx7vWE/m+NqBijBYGEsQY1lSMlVaAY9UEQlcXK5HzXTw==", - "dev": true, - "requires": { - "web3-core": "1.2.2", - "web3-core-method": "1.2.2", - "web3-utils": "1.2.2" - } - }, - "web3-providers-http": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.2.tgz", - "integrity": "sha512-BNZ7Hguy3eBszsarH5gqr9SIZNvqk9eKwqwmGH1LQS1FL3NdoOn7tgPPdddrXec4fL94CwgNk4rCU+OjjZRNDg==", - "dev": true, - "requires": { - "web3-core-helpers": "1.2.2", - "xhr2-cookies": "1.1.0" - }, - "dependencies": { - "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" - } - } - } - }, - "web3-providers-ipc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.2.tgz", - "integrity": "sha512-t97w3zi5Kn/LEWGA6D9qxoO0LBOG+lK2FjlEdCwDQatffB/+vYrzZ/CLYVQSoyFZAlsDoBasVoYSWZK1n39aHA==", - "dev": true, - "requires": { - "oboe": "2.1.4", - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2" - }, - "dependencies": { - "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" - } - } - } - }, - "web3-providers-ws": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.2.tgz", - "integrity": "sha512-Wb1mrWTGMTXOpJkL0yGvL/WYLt8fUIXx8k/l52QB2IiKzvyd42dTWn4+j8IKXGSYYzOm7NMqv6nhA5VDk12VfA==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-core-helpers": "1.2.2", - "websocket": "github:web3-js/WebSocket-Node#polyfill/globalThis" - }, - "dependencies": { - "web3-core-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz", - "integrity": "sha512-HJrRsIGgZa1jGUIhvGz4S5Yh6wtOIo/TMIsSLe+Xay+KVnbseJpPprDI5W3s7H2ODhMQTbogmmUFquZweW2ImQ==", - "dev": true, - "requires": { - "underscore": "1.9.1", - "web3-eth-iban": "1.2.2", - "web3-utils": "1.2.2" - } - } - } - }, "web3-shh": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.2.tgz", - "integrity": "sha512-og258NPhlBn8yYrDWjoWBBb6zo1OlBgoWGT+LL5/LPqRbjPe09hlOYHgscAAr9zZGtohTOty7RrxYw6Z6oDWCg==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.1.tgz", + "integrity": "sha512-/3Cl04nza5kuFn25bV3FJWa0s3Vafr5BlT933h26xovQ6HIIz61LmvNQlvX1AhFL+SNJOTcQmK1SM59vcyC8bA==", "requires": { - "web3-core": "1.2.2", - "web3-core-method": "1.2.2", - "web3-core-subscriptions": "1.2.2", - "web3-net": "1.2.2" + "web3-core": "1.2.1", + "web3-core-method": "1.2.1", + "web3-core-subscriptions": "1.2.1", + "web3-net": "1.2.1" } }, "web3-utils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.2.tgz", - "integrity": "sha512-joF+s3243TY5cL7Z7y4h1JsJpUCf/kmFmj+eJar7Y2yNIGVcW961VyrAms75tjUysSuHaUQ3eQXjBEUJueT52A==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.1.tgz", + "integrity": "sha512-Mrcn3l58L+yCKz3zBryM6JZpNruWuT0OCbag8w+reeNROSGVlXzUQkU+gtAwc9JCZ7tKUyg67+2YUGqUjVcyBA==", "requires": { "bn.js": "4.11.8", "eth-lib": "0.2.7", - "ethereum-bloom-filters": "^1.0.6", "ethjs-unit": "0.1.6", "number-to-bn": "1.7.0", - "randombytes": "^2.1.0", + "randomhex": "0.1.5", "underscore": "1.9.1", "utf8": "3.0.0" }, @@ -11855,14 +10236,12 @@ "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, "eth-lib": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", - "dev": true, "requires": { "bn.js": "^4.11.6", "elliptic": "^6.4.0", @@ -11872,14 +10251,15 @@ } }, "websocket": { - "version": "github:web3-js/WebSocket-Node#ef5ea2f41daf4a2113b80c9223df884b4d56c400", - "from": "github:web3-js/WebSocket-Node#polyfill/globalThis", - "dev": true, + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.32.tgz", + "integrity": "sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q==", "requires": { + "bufferutil": "^4.0.1", "debug": "^2.2.0", "es5-ext": "^0.10.50", - "nan": "^2.14.0", "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", "yaeti": "^0.0.6" }, "dependencies": { @@ -11887,16 +10267,9 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, @@ -11930,6 +10303,26 @@ "function-bind": "^1.1.1", "has-symbols": "^1.0.1", "is-typed-array": "^1.1.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } } }, "wide-align": { @@ -11938,35 +10331,6 @@ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "requires": { "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } } }, "word-wrap": { @@ -11996,15 +10360,13 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } }, "string-width": { "version": "3.1.0", @@ -12136,16 +10498,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", diff --git a/test/Route/Route.test.ts b/test/Route/Route.test.ts new file mode 100644 index 0000000..79f8a23 --- /dev/null +++ b/test/Route/Route.test.ts @@ -0,0 +1,171 @@ +/* + + Copyright 2020 DODO ZOO. + SPDX-License-Identifier: Apache-2.0 + +*/ + +// import * as assert from 'assert'; + +import BigNumber from 'bignumber.js'; +import { DODOContext, getDODOContext } from '../utils-v1/Context'; +import { decimalStr,MAX_UINT256 } from '../utils-v1/Converter'; +import { logGas } from '../utils-v1/Log'; + +let lp: string; +let trader: string; + +async function init(ctx: DODOContext): Promise { + await ctx.setOraclePrice(decimalStr("100")); + + lp = ctx.spareAccounts[0]; + trader = ctx.spareAccounts[1]; + await ctx.approveDODO(lp); + await ctx.approveDODO(trader); + + await ctx.mintTestToken(lp, decimalStr("10"), decimalStr("1000")); + await ctx.mintTestToken(trader, decimalStr("10"), decimalStr("1000")); + + await ctx.DODO.methods + .depositBaseTo(lp, decimalStr("10")) + .send(ctx.sendParam(lp)); + await ctx.DODO.methods + .depositQuoteTo(lp, decimalStr("1000")) + .send(ctx.sendParam(lp)); + +} + + +async function calcRoute(ctx: DODOContext) { + let fromTokenAmount = decimalStr("1"); + //路径 + let routes = [ + { + address: ctx.BASE.options.address, + decimals: 18 + }, + { + address: ctx.QUOTE.options.address, + decimals: 18 + } + ] + + //路径上交易对 + let pairs = [ + { + pair: ctx.DODO.options.address, + base: ctx.BASE.options.address + } + ] + let callPairs: string[] = [] + let datas: string = "" + let starts: number[] = [] + let gAndV: number[] = [] + let swapAmount = fromTokenAmount + for (let i = 0; i < pairs.length; i++) { + let curPair = pairs[i] + callPairs.push(curPair.pair) + //TODO: hardcode + let curContact =ctx.DODO; + let curData = '' + if (curPair.base === routes[i].address) { + curData = await curContact.methods.sellBaseToken(swapAmount, 0, []).encodeABI() + swapAmount = await curContact.methods.querySellBaseToken(swapAmount).call(); + } else { + curData = await curContact.methods.buyBaseToken(swapAmount, 0, []).encodABI() + swapAmount = await curContact.methods.queryBuyBaseToken(swapAmount).call(); + } + starts.push(datas.length) + gAndV.push(0) + datas += curData + } + + let toAmount = new BigNumber(swapAmount).multipliedBy(0.99).toFixed(0, BigNumber.ROUND_DOWN) + + return ctx.SmartSwap.methods.dodoSwap( + ctx.BASE.options.address, + ctx.QUOTE.options.address, + fromTokenAmount, + toAmount, + callPairs, + datas, + starts, + gAndV + ) +} + +describe("Trader", () => { + let snapshotId: string; + let ctx: DODOContext; + + before(async () => { + ctx = await getDODOContext(); + await init(ctx); + }); + + beforeEach(async () => { + snapshotId = await ctx.EVM.snapshot(); + }); + + afterEach(async () => { + await ctx.EVM.reset(snapshotId); + }); + + describe("hit currently pair", () => { + it("base to quote", async () => { + var beforeBalance = await ctx.BASE.methods.balanceOf(trader).call() + // await ctx.BASE.methods.approve(ctx.SmartApprove.options.address,MAX_UINT256).send(ctx.sendParam(trader)) + console.log("beforeBalance",beforeBalance) + await logGas(await calcRoute(ctx), ctx.sendParam(trader), "buy token") + var afterBalance = await ctx.BASE.methods.balanceOf(trader).call() + console.log("afterBalance",afterBalance) + // // trader balances + // assert.equal( + // await ctx.BASE.methods.balanceOf(trader).call(), + // decimalStr("11") + // ); + // assert.equal( + // await ctx.QUOTE.methods.balanceOf(trader).call(), + // "898581839502056240973" + // ); + }); + }); + + + // describe("Revert cases", () => { + // it("price limit", async () => { + // await assert.rejects( + // ctx.DODO.methods + // .buyBaseToken(decimalStr("1"), decimalStr("100"), "0x") + // .send(ctx.sendParam(trader)), + // /BUY_BASE_COST_TOO_MUCH/ + // ); + // await assert.rejects( + // ctx.DODO.methods + // .sellBaseToken(decimalStr("1"), decimalStr("100"), "0x") + // .send(ctx.sendParam(trader)), + // /SELL_BASE_RECEIVE_NOT_ENOUGH/ + // ); + // }); + + // it("base balance limit", async () => { + // await assert.rejects( + // ctx.DODO.methods + // .buyBaseToken(decimalStr("11"), decimalStr("10000"), "0x") + // .send(ctx.sendParam(trader)), + // /DODO_BASE_BALANCE_NOT_ENOUGH/ + // ); + + // await ctx.DODO.methods + // .buyBaseToken(decimalStr("1"), decimalStr("200"), "0x") + // .send(ctx.sendParam(trader)); + + // await assert.rejects( + // ctx.DODO.methods + // .buyBaseToken(decimalStr("11"), decimalStr("10000"), "0x") + // .send(ctx.sendParam(trader)), + // /DODO_BASE_BALANCE_NOT_ENOUGH/ + // ); + // }); + // }); +}); diff --git a/test/utils-v1/Context.ts b/test/utils-v1/Context.ts new file mode 100644 index 0000000..f00ba44 --- /dev/null +++ b/test/utils-v1/Context.ts @@ -0,0 +1,195 @@ +/* + + Copyright 2020 DODO ZOO. + SPDX-License-Identifier: Apache-2.0 + +*/ + +import BigNumber from 'bignumber.js'; +import Web3 from 'web3'; +import { Contract } from 'web3-eth-contract'; + +import * as contracts from './Contracts'; +import { decimalStr, gweiStr, MAX_UINT256 } from './Converter'; +import { EVM, getDefaultWeb3 } from './EVM'; +import * as log from './Log'; + +BigNumber.config({ + EXPONENTIAL_AT: 1000, + DECIMAL_PLACES: 80, +}); + +export interface DODOContextInitConfig { + lpFeeRate: string; + mtFeeRate: string; + k: string; + gasPriceLimit: string; +} + +/* + price curve when k=0.1 + +──────────────────────+───────────────+ + | purchase percentage | avg slippage | + +──────────────────────+───────────────+ + | 1% | 0.1% | + | 5% | 0.5% | + | 10% | 1.1% | + | 20% | 2.5% | + | 50% | 10% | + | 70% | 23.3% | + +──────────────────────+───────────────+ +*/ +export let DefaultDODOContextInitConfig = { + lpFeeRate: decimalStr("0.002"), + mtFeeRate: decimalStr("0.001"), + k: decimalStr("0.1"), + gasPriceLimit: gweiStr("100"), +}; + +export class DODOContext { + EVM: EVM; + Web3: Web3; + DODO: Contract; + DODOZoo: Contract; + BASE: Contract; + BaseCapital: Contract; + QUOTE: Contract; + QuoteCapital: Contract; + ORACLE: Contract; + SmartSwap: Contract; + SmartApprove: Contract; + Deployer: string; + Supervisor: string; + Maintainer: string; + spareAccounts: string[]; + + constructor() {} + + async init(config: DODOContextInitConfig) { + this.EVM = new EVM(); + this.Web3 = getDefaultWeb3(); + var cloneFactory = await contracts.newContract( + contracts.CLONE_FACTORY_CONTRACT_NAME + ); + + this.BASE = await contracts.newContract( + contracts.TEST_ERC20_CONTRACT_NAME, + ["TestBase", 18] + ); + this.QUOTE = await contracts.newContract( + contracts.TEST_ERC20_CONTRACT_NAME, + ["TestQuote", 18] + ); + this.ORACLE = await contracts.newContract( + contracts.NAIVE_ORACLE_CONTRACT_NAME + ); + + const allAccounts = await this.Web3.eth.getAccounts(); + this.Deployer = allAccounts[0]; + this.Supervisor = allAccounts[1]; + this.Maintainer = allAccounts[2]; + this.spareAccounts = allAccounts.slice(3, 10); + + var DODOTemplate = await contracts.newContract( + contracts.DODO_CONTRACT_NAME + ); + this.DODOZoo = await contracts.newContract( + contracts.DODO_ZOO_CONTRACT_NAME, + [ + DODOTemplate.options.address, + cloneFactory.options.address, + this.Supervisor, + ] + ); + + await this.DODOZoo.methods + .breedDODO( + this.Maintainer, + this.BASE.options.address, + this.QUOTE.options.address, + this.ORACLE.options.address, + config.lpFeeRate, + config.mtFeeRate, + config.k, + config.gasPriceLimit + ) + .send(this.sendParam(this.Deployer)); + + this.DODO = contracts.getContractWithAddress( + contracts.DODO_CONTRACT_NAME, + await this.DODOZoo.methods + .getDODO(this.BASE.options.address, this.QUOTE.options.address) + .call() + ); + await this.DODO.methods + .enableBaseDeposit() + .send(this.sendParam(this.Deployer)); + await this.DODO.methods + .enableQuoteDeposit() + .send(this.sendParam(this.Deployer)); + await this.DODO.methods.enableTrading().send(this.sendParam(this.Deployer)); + + this.BaseCapital = contracts.getContractWithAddress( + contracts.DODO_LP_TOKEN_CONTRACT_NAME, + await this.DODO.methods._BASE_CAPITAL_TOKEN_().call() + ); + this.QuoteCapital = contracts.getContractWithAddress( + contracts.DODO_LP_TOKEN_CONTRACT_NAME, + await this.DODO.methods._QUOTE_CAPITAL_TOKEN_().call() + ); + + /*v1.5*/ + this.SmartApprove = await contracts.newContract( + contracts.SMART_APPROVE + ); + + this.SmartSwap = await contracts.newContract( + contracts.SMART_SWAP, + [this.SmartApprove.options.address] + ); + + await this.SmartApprove.methods.setSmartSwap(this.SmartSwap.options.address).send(this.sendParam(this.Deployer)); + /*****/ + + console.log(log.blueText("[Init dodo context]")); + } + + sendParam(sender, value = "0") { + return { + from: sender, + gas: process.env["COVERAGE"] ? 10000000000 : 7000000, + gasPrice: process.env.GAS_PRICE, + value: decimalStr(value), + }; + } + + async setOraclePrice(price: string) { + await this.ORACLE.methods + .setPrice(price) + .send(this.sendParam(this.Deployer)); + } + + async mintTestToken(to: string, base: string, quote: string) { + await this.BASE.methods.mint(to, base).send(this.sendParam(this.Deployer)); + await this.QUOTE.methods + .mint(to, quote) + .send(this.sendParam(this.Deployer)); + } + + async approveDODO(account: string) { + await this.BASE.methods + .approve(this.DODO.options.address, MAX_UINT256) + .send(this.sendParam(account)); + await this.QUOTE.methods + .approve(this.DODO.options.address, MAX_UINT256) + .send(this.sendParam(account)); + } +} + +export async function getDODOContext( + config: DODOContextInitConfig = DefaultDODOContextInitConfig +): Promise { + var context = new DODOContext(); + await context.init(config); + return context; +} diff --git a/test/utils-v1/Contracts.ts b/test/utils-v1/Contracts.ts new file mode 100644 index 0000000..a17f6b2 --- /dev/null +++ b/test/utils-v1/Contracts.ts @@ -0,0 +1,118 @@ +/* + + Copyright 2020 DODO ZOO. + SPDX-License-Identifier: Apache-2.0 + +*/ +var jsonPath: string = "../../build-v1/contracts/" +/*v1.5*/ +var jsonPath2: string = "../../build/contracts/" +/******/ +if (process.env["COVERAGE"]) { + console.log("[Coverage mode]") + jsonPath = "../../.coverage_artifacts/contracts/" +} + +const CloneFactory = require(`${jsonPath}CloneFactory.json`) +const DODO = require(`${jsonPath}DODO.json`) +const DODOZoo = require(`${jsonPath}DODOZoo.json`) +const DODOEthProxy = require(`${jsonPath}DODOEthProxy.json`) +const WETH = require(`${jsonPath}WETH9.json`) +const TestERC20 = require(`${jsonPath}TestERC20.json`) +const NaiveOracle = require(`${jsonPath}NaiveOracle.json`) +const DODOLpToken = require(`${jsonPath}DODOLpToken.json`) +const Uniswap = require(`${jsonPath}UniswapV2Pair.json`) +const UniswapArbitrageur = require(`${jsonPath}UniswapArbitrageur.json`) +const DODOToken = require(`${jsonPath}DODOToken.json`) +const DODOMine = require(`${jsonPath}DODOMine.json`) +const DODOMineReader = require(`${jsonPath}DODOMineReader.json`) +const LockedTokenVault = require(`${jsonPath}LockedTokenVault.json`) +/*v1.5*/ +const SmartSwap = require(`${jsonPath2}SmartSwap.json`) +const SmartApprove = require(`${jsonPath2}SmartApprove.json`) +/******/ + +import { getDefaultWeb3 } from './EVM'; +import { Contract } from 'web3-eth-contract'; + +export const CLONE_FACTORY_CONTRACT_NAME = "CloneFactory" +export const DODO_CONTRACT_NAME = "DODO" +export const TEST_ERC20_CONTRACT_NAME = "TestERC20" +export const NAIVE_ORACLE_CONTRACT_NAME = "NaiveOracle" +export const DODO_LP_TOKEN_CONTRACT_NAME = "DODOLpToken" +export const DODO_ZOO_CONTRACT_NAME = "DOOZoo" +export const DODO_WILD_CONTRACT_NAME = "DOOWild" +export const DODO_ETH_PROXY_CONTRACT_NAME = "DODOEthProxy" +export const WETH_CONTRACT_NAME = "WETH" +export const UNISWAP_CONTRACT_NAME = "Uniswap" +export const UNISWAP_ARBITRAGEUR_CONTRACT_NAME = "UniswapArbitrageur" +export const DODO_TOKEN_CONTRACT_NAME = "DODOToken" +export const LOCKED_TOKEN_VAULT_CONTRACT_NAME = "LockedTokenVault" +export const DODO_MINE_NAME = "DODOMine" +export const DODO_MINE_READER_NAME = "DODOMineReader" +/*v1.5*/ +export const SMART_SWAP = "SmartSwap" +export const SMART_APPROVE = "SmartApprove" +/******/ + +var contractMap: { [name: string]: any } = {} +contractMap[CLONE_FACTORY_CONTRACT_NAME] = CloneFactory +contractMap[DODO_CONTRACT_NAME] = DODO +contractMap[TEST_ERC20_CONTRACT_NAME] = TestERC20 +contractMap[NAIVE_ORACLE_CONTRACT_NAME] = NaiveOracle +contractMap[DODO_LP_TOKEN_CONTRACT_NAME] = DODOLpToken +contractMap[DODO_ZOO_CONTRACT_NAME] = DODOZoo +contractMap[DODO_ETH_PROXY_CONTRACT_NAME] = DODOEthProxy +contractMap[WETH_CONTRACT_NAME] = WETH +contractMap[UNISWAP_CONTRACT_NAME] = Uniswap +contractMap[UNISWAP_ARBITRAGEUR_CONTRACT_NAME] = UniswapArbitrageur +contractMap[DODO_TOKEN_CONTRACT_NAME] = DODOToken +contractMap[LOCKED_TOKEN_VAULT_CONTRACT_NAME] = LockedTokenVault +contractMap[DODO_MINE_NAME] = DODOMine +contractMap[DODO_MINE_READER_NAME] = DODOMineReader +/*v1.5*/ +contractMap[SMART_SWAP] = SmartSwap +contractMap[SMART_APPROVE] = SmartApprove +/******/ + +interface ContractJson { + abi: any; + networks: { [network: number]: any }; + byteCode: string; +} + +export function getContractJSON(contractName: string): ContractJson { + var info = contractMap[contractName] + return { + abi: info.abi, + networks: info.networks, + byteCode: info.bytecode + } +} + +export function getContractWithAddress(contractName: string, address: string) { + var Json = getContractJSON(contractName) + var web3 = getDefaultWeb3() + return new web3.eth.Contract(Json.abi, address) +} + +export function getDepolyedContract(contractName: string): Contract { + var Json = getContractJSON(contractName) + var networkId = process.env.NETWORK_ID + var deployedAddress = getContractJSON(contractName).networks[networkId].address + var web3 = getDefaultWeb3() + return new web3.eth.Contract(Json.abi, deployedAddress) +} + +export async function newContract(contractName: string, args: any[] = []): Promise { + var web3 = getDefaultWeb3() + var Json = getContractJSON(contractName) + var contract = new web3.eth.Contract(Json.abi) + var adminAccount = (await web3.eth.getAccounts())[0] + let parameter = { + from: adminAccount, + gas: process.env["COVERAGE"] ? 10000000000 : 7000000, + gasPrice: web3.utils.toHex(web3.utils.toWei('1', 'wei')) + } + return await contract.deploy({ data: Json.byteCode, arguments: args }).send(parameter) +} \ No newline at end of file diff --git a/test/utils-v1/Converter.ts b/test/utils-v1/Converter.ts new file mode 100644 index 0000000..c7108b9 --- /dev/null +++ b/test/utils-v1/Converter.ts @@ -0,0 +1,15 @@ +import BigNumber from "bignumber.js"; + +export const MAX_UINT256 = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + +export function decimalStr(value: string): string { + return new BigNumber(value).multipliedBy(10 ** 18).toFixed(0, BigNumber.ROUND_DOWN) +} + +export function mweiStr(value: string): string { + return new BigNumber(value).multipliedBy(10 ** 6).toFixed(0, BigNumber.ROUND_DOWN) +} + +export function gweiStr(gwei: string): string { + return new BigNumber(gwei).multipliedBy(10 ** 9).toFixed(0, BigNumber.ROUND_DOWN) +} \ No newline at end of file diff --git a/test/utils-v1/EVM.ts b/test/utils-v1/EVM.ts new file mode 100644 index 0000000..75e071a --- /dev/null +++ b/test/utils-v1/EVM.ts @@ -0,0 +1,92 @@ +/* + + Copyright 2020 DODO ZOO. + SPDX-License-Identifier: Apache-2.0 + +*/ + +// require('dotenv-flow').config(); + +import { JsonRpcPayload, JsonRpcResponse } from 'web3-core-helpers'; +import Web3 from 'web3'; + +export function getDefaultWeb3() { + return new Web3(process.env.RPC_NODE_URI) +} + +export class EVM { + private provider = new Web3.providers.HttpProvider(process.env.RPC_NODE_URI); + + public async reset(id: string): Promise { + if (!id) { + throw new Error('id must be set'); + } + + await this.callJsonrpcMethod('evm_revert', [id]); + + return this.snapshot(); + } + + public async snapshot(): Promise { + return this.callJsonrpcMethod('evm_snapshot'); + } + + public async evmRevert(id: string): Promise { + return this.callJsonrpcMethod('evm_revert', [id]); + } + + public async stopMining(): Promise { + return this.callJsonrpcMethod('miner_stop'); + } + + public async startMining(): Promise { + return this.callJsonrpcMethod('miner_start'); + } + + public async mineBlock(): Promise { + return this.callJsonrpcMethod('evm_mine'); + } + + public async fastMove(moveBlockNum: number): Promise { + var res: string + for (let i = 0; i < moveBlockNum; i++) { + res = await this.callJsonrpcMethod('evm_mine'); + } + return res + } + + public async increaseTime(duration: number): Promise { + await this.callJsonrpcMethod('evm_increaseTime', [duration]); + return this.callJsonrpcMethod('evm_mine'); + } + + public async callJsonrpcMethod(method: string, params?: (any[])): Promise { + const args: JsonRpcPayload = { + method, + params, + jsonrpc: '2.0', + id: new Date().getTime(), + }; + + const response = await this.send(args); + + return response.result; + } + + private async send(args: JsonRpcPayload): Promise { + return new Promise((resolve, reject) => { + const callback: any = (error: Error, val: JsonRpcResponse): void => { + if (error) { + reject(error); + } else { + resolve(val); + } + }; + + this.provider.send( + args, + callback, + ); + }); + } +} diff --git a/test/utils-v1/Log.ts b/test/utils-v1/Log.ts new file mode 100644 index 0000000..7e7c3b7 --- /dev/null +++ b/test/utils-v1/Log.ts @@ -0,0 +1,30 @@ +/* + + Copyright 2020 DODO ZOO. + SPDX-License-Identifier: Apache-2.0 + +*/ + +export const blueText = x => `\x1b[36m${x}\x1b[0m`; +export const yellowText = x => `\x1b[33m${x}\x1b[0m`; +export const greenText = x => `\x1b[32m${x}\x1b[0m`; +export const redText = x => `\x1b[31m${x}\x1b[0m`; +export const numberWithCommas = x => x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); + +export async function logGas(funcCall: any, params: any, desc: string) { + const estimatedGas = await funcCall.estimateGas(params) + const receipt = await funcCall.send(params) + const gasUsed = receipt.gasUsed; + let colorFn; + + if (gasUsed < 80000) { + colorFn = greenText; + } else if (gasUsed < 200000) { + colorFn = yellowText; + } else { + colorFn = redText; + } + + console.log(("Gas estimated:" + numberWithCommas(estimatedGas)).padEnd(60, '.'), blueText(desc) + " ", colorFn(numberWithCommas(gasUsed).padStart(5))); + return receipt +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 3e1de7f..fc9a05e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,7 @@ "sourceMap": true, "declaration": true, "downlevelIteration": true, - "noUnusedLocals": true, + // "noUnusedLocals": true, "esModuleInterop": true, "outDir": "dist", "resolveJsonModule": true, diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 1739e46..0000000 --- a/yarn.lock +++ /dev/null @@ -1,6820 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.1.tgz#d5481c5095daa1c57e16e54c6f9198443afb49ff" - dependencies: - "@babel/highlight" "^7.10.1" - -"@babel/generator@^7.10.1": - version "7.10.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.2.tgz#0fa5b5b2389db8bfdfcc3492b551ee20f5dd69a9" - dependencies: - "@babel/types" "^7.10.2" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-function-name@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz#92bd63829bfc9215aca9d9defa85f56b539454f4" - dependencies: - "@babel/helper-get-function-arity" "^7.10.1" - "@babel/template" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/helper-get-function-arity@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz#7303390a81ba7cb59613895a192b93850e373f7d" - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-module-imports@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.3.tgz#766fa1d57608e53e5676f23ae498ec7a95e1b11a" - dependencies: - "@babel/types" "^7.10.3" - -"@babel/helper-plugin-utils@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.3.tgz#aac45cccf8bc1873b99a85f34bceef3beb5d3244" - -"@babel/helper-split-export-declaration@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz#c6f4be1cbc15e3a868e4c64a17d5d31d754da35f" - dependencies: - "@babel/types" "^7.10.1" - -"@babel/helper-validator-identifier@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz#5770b0c1a826c4f53f5ede5e153163e0318e94b5" - -"@babel/helper-validator-identifier@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz#60d9847f98c4cea1b279e005fdb7c28be5412d15" - -"@babel/highlight@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.1.tgz#841d098ba613ba1a427a2b383d79e35552c38ae0" - dependencies: - "@babel/helper-validator-identifier" "^7.10.1" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.10.1", "@babel/parser@^7.7.0": - version "7.10.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.2.tgz#871807f10442b92ff97e4783b9b54f6a0ca812d0" - -"@babel/plugin-transform-runtime@^7.5.5": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.3.tgz#3b287b06acc534a7cb6e6c71d6b1d88b1922dd6c" - dependencies: - "@babel/helper-module-imports" "^7.10.3" - "@babel/helper-plugin-utils" "^7.10.3" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/runtime@^7.5.5": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.3.tgz#670d002655a7c366540c67f6fd3342cd09500364" - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.10.1": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.1.tgz#e167154a94cb5f14b28dc58f5356d2162f539811" - dependencies: - "@babel/code-frame" "^7.10.1" - "@babel/parser" "^7.10.1" - "@babel/types" "^7.10.1" - -"@babel/traverse@^7.7.0": - version "7.10.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.1.tgz#bbcef3031e4152a6c0b50147f4958df54ca0dd27" - dependencies: - "@babel/code-frame" "^7.10.1" - "@babel/generator" "^7.10.1" - "@babel/helper-function-name" "^7.10.1" - "@babel/helper-split-export-declaration" "^7.10.1" - "@babel/parser" "^7.10.1" - "@babel/types" "^7.10.1" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/types@^7.10.1", "@babel/types@^7.10.2", "@babel/types@^7.7.0": - version "7.10.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.2.tgz#30283be31cad0dbf6fb00bd40641ca0ea675172d" - dependencies: - "@babel/helper-validator-identifier" "^7.10.1" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.10.3": - version "7.10.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.3.tgz#6535e3b79fea86a6b09e012ea8528f935099de8e" - dependencies: - "@babel/helper-validator-identifier" "^7.10.3" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@ethersproject/abi@5.0.0-beta.153": - version "5.0.0-beta.153" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz#43a37172b33794e4562999f6e2d555b7599a8eee" - dependencies: - "@ethersproject/address" ">=5.0.0-beta.128" - "@ethersproject/bignumber" ">=5.0.0-beta.130" - "@ethersproject/bytes" ">=5.0.0-beta.129" - "@ethersproject/constants" ">=5.0.0-beta.128" - "@ethersproject/hash" ">=5.0.0-beta.128" - "@ethersproject/keccak256" ">=5.0.0-beta.127" - "@ethersproject/logger" ">=5.0.0-beta.129" - "@ethersproject/properties" ">=5.0.0-beta.131" - "@ethersproject/strings" ">=5.0.0-beta.130" - -"@ethersproject/address@>=5.0.0-beta.128": - version "5.0.0-beta.135" - resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.0-beta.135.tgz#8d4697c81dc27758b05e7eb7507c254f2ef0e5dc" - dependencies: - "@ethersproject/bignumber" ">=5.0.0-beta.138" - "@ethersproject/bytes" ">=5.0.0-beta.137" - "@ethersproject/keccak256" ">=5.0.0-beta.131" - "@ethersproject/logger" ">=5.0.0-beta.137" - "@ethersproject/rlp" ">=5.0.0-beta.132" - bn.js "^4.4.0" - -"@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@>=5.0.0-beta.138": - version "5.0.0-beta.139" - resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.0-beta.139.tgz#12a4fa5a76ee90f77932326311caf04e1de1cae0" - dependencies: - "@ethersproject/bytes" ">=5.0.0-beta.137" - "@ethersproject/logger" ">=5.0.0-beta.137" - "@ethersproject/properties" ">=5.0.0-beta.140" - bn.js "^4.4.0" - -"@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@>=5.0.0-beta.137": - version "5.0.0-beta.138" - resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.0-beta.138.tgz#86e1f6c4016443f2b5236627fa656e7c56077a56" - dependencies: - "@ethersproject/logger" ">=5.0.0-beta.137" - -"@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@>=5.0.0-beta.133": - version "5.0.0-beta.134" - resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.0-beta.134.tgz#b81c42373a00cb21604a94aa8642454fb35bb764" - dependencies: - "@ethersproject/bignumber" ">=5.0.0-beta.138" - -"@ethersproject/hash@>=5.0.0-beta.128": - version "5.0.0-beta.134" - resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.0-beta.134.tgz#e1fdb69b42f5d31c343bcbf183043853b9b8e9dd" - dependencies: - "@ethersproject/bytes" ">=5.0.0-beta.137" - "@ethersproject/keccak256" ">=5.0.0-beta.131" - "@ethersproject/logger" ">=5.0.0-beta.137" - "@ethersproject/strings" ">=5.0.0-beta.136" - -"@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@>=5.0.0-beta.131": - version "5.0.0-beta.132" - resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.0-beta.132.tgz#38c128194a88aba690b6aca43cae57df420408d7" - dependencies: - "@ethersproject/bytes" ">=5.0.0-beta.137" - js-sha3 "0.5.7" - -"@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@>=5.0.0-beta.137": - version "5.0.0-beta.137" - resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.0-beta.137.tgz#781582b8b04d0ced01e9c1608c9887d31d95b8ee" - -"@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@>=5.0.0-beta.140": - version "5.0.0-beta.143" - resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.0-beta.143.tgz#604ba072ee91e386e1bfab70413c34165fa9c913" - dependencies: - "@ethersproject/logger" ">=5.0.0-beta.137" - -"@ethersproject/rlp@>=5.0.0-beta.132": - version "5.0.0-beta.133" - resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.0-beta.133.tgz#e51b2e8d51fd70a5872f85f11741193a6b118110" - dependencies: - "@ethersproject/bytes" ">=5.0.0-beta.137" - "@ethersproject/logger" ">=5.0.0-beta.137" - -"@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@>=5.0.0-beta.136": - version "5.0.0-beta.137" - resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.0-beta.137.tgz#1e9730a701e7a44c3f1b4e1c7e134665cdd51d7b" - dependencies: - "@ethersproject/bytes" ">=5.0.0-beta.137" - "@ethersproject/constants" ">=5.0.0-beta.133" - "@ethersproject/logger" ">=5.0.0-beta.137" - -"@nodelib/fs.scandir@2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" - dependencies: - "@nodelib/fs.stat" "2.0.3" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" - -"@nodelib/fs.walk@^1.2.3": - version "1.2.4" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" - dependencies: - "@nodelib/fs.scandir" "2.1.3" - fastq "^1.6.0" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - -"@solidity-parser/parser@^0.6.0", "@solidity-parser/parser@^0.6.1": - version "0.6.2" - resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.6.2.tgz#49707fc4e06649d39d6b25bdab2e9093d372ce50" - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - dependencies: - defer-to-connect "^1.0.1" - -"@truffle/error@^0.0.7": - version "0.0.7" - resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.0.7.tgz#e9db39885575647ef08bf624b0c13fe46d41a209" - -"@truffle/hdwallet-provider@^1.0.36": - version "1.0.36" - resolved "https://registry.yarnpkg.com/@truffle/hdwallet-provider/-/hdwallet-provider-1.0.36.tgz#d8f2abec2004a3174c0c62f5d5e01a792c894fdc" - dependencies: - "@trufflesuite/web3-provider-engine" "14.0.6" - any-promise "^1.3.0" - bindings "^1.5.0" - bip39 "^2.4.2" - ethereum-protocol "^1.0.1" - ethereumjs-tx "^1.0.0" - ethereumjs-util "^6.1.0" - ethereumjs-wallet "^0.6.3" - source-map-support "^0.5.19" - web3 "1.2.1" - -"@truffle/interface-adapter@^0.3.0": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.3.3.tgz#61305378cf81776769ef36c60d394e568ac4a2ee" - dependencies: - bn.js "^4.11.8" - ethers "^4.0.32" - lodash "^4.17.13" - web3 "1.2.2" - -"@truffle/provider@^0.1.17": - version "0.1.19" - resolved "https://registry.yarnpkg.com/@truffle/provider/-/provider-0.1.19.tgz#3e6f15fdd8475ca5d0c846d2b412cc823f1fb767" - dependencies: - "@truffle/error" "^0.0.7" - "@truffle/interface-adapter" "^0.3.0" - web3 "1.2.1" - -"@trufflesuite/web3-provider-engine@14.0.6": - version "14.0.6" - resolved "https://registry.yarnpkg.com/@trufflesuite/web3-provider-engine/-/web3-provider-engine-14.0.6.tgz#024d192cde9534a778e5d2436be1caf3c553a2e0" - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.2.0" - eth-json-rpc-filters "^4.0.2" - eth-json-rpc-infura "^3.1.0" - eth-json-rpc-middleware "^4.1.1" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.4": - version "4.11.6" - resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" - dependencies: - "@types/node" "*" - -"@types/chai@^4.2.11": - version "4.2.11" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.11.tgz#d3614d6c5f500142358e6ed24e1bf16657536c50" - -"@types/es6-promisify@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@types/es6-promisify/-/es6-promisify-6.0.0.tgz#a554e8c9c28466720a96b20c9f6b139249b7d375" - -"@types/events@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - -"@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - -"@types/mocha@^7.0.2": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-7.0.2.tgz#b17f16cf933597e10d6d78eae3251e692ce8b0ce" - -"@types/node@*": - version "14.0.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.10.tgz#dbfaa170bd9eafccccb6d7060743a761b0844afd" - -"@types/node@^10.12.18", "@types/node@^10.3.2": - version "10.17.24" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.24.tgz#c57511e3a19c4b5e9692bb2995c40a3a52167944" - -"@types/node@^12.6.1": - version "12.12.43" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.43.tgz#b60ce047822e526e7a9252e50844eee79d5386ff" - -"@web3-js/scrypt-shim@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@web3-js/scrypt-shim/-/scrypt-shim-0.1.0.tgz#0bf7529ab6788311d3e07586f7d89107c3bea2cc" - dependencies: - scryptsy "^2.1.0" - semver "^6.3.0" - -"@web3-js/websocket@^1.0.29": - version "1.0.30" - resolved "https://registry.yarnpkg.com/@web3-js/websocket/-/websocket-1.0.30.tgz#9ea15b7b582cf3bf3e8bc1f4d3d54c0731a87f87" - dependencies: - debug "^2.2.0" - es5-ext "^0.10.50" - nan "^2.14.0" - typedarray-to-buffer "^3.1.5" - yaeti "^0.0.6" - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - -abbrev@1.0.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" - -abstract-leveldown@~2.6.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" - dependencies: - xtend "~4.0.0" - -accepts@~1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - dependencies: - mime-types "~2.1.24" - negotiator "0.6.2" - -address@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" - -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" - -aes-js@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.2.tgz#db9aabde85d5caabbfc0d4f2a4446960f627146a" - -ajv@^6.5.5: - version "6.12.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -ansi-colors@3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.0" - -any-promise@1.3.0, any-promise@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" - -anymatch@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" - dependencies: - micromatch "^2.1.5" - normalize-path "^2.0.0" - -anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - -array-filter@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" - dependencies: - es6-object-assign "^1.1.0" - is-nan "^1.2.1" - object-is "^1.0.1" - util "^0.12.0" - -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - -async-each@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - -async-eventemitter@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" - dependencies: - async "^2.4.0" - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - -async@1.x, async@^1.4.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - -available-typed-arrays@^1.0.0, available-typed-arrays@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz#6b098ca9d8039079ee3f77f7b783c4480ba513f5" - dependencies: - array-filter "^1.0.0" - -await-semaphore@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/await-semaphore/-/await-semaphore-0.1.3.tgz#2b88018cc8c28e06167ae1cdff02504f1f9688d3" - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - -aws4@^1.8.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" - -babel-cli@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.26.0.tgz#502ab54874d7db88ad00b887a06383ce03d002f1" - dependencies: - babel-core "^6.26.0" - babel-polyfill "^6.26.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - commander "^2.11.0" - convert-source-map "^1.5.0" - fs-readdir-recursive "^1.0.0" - glob "^7.1.2" - lodash "^4.17.4" - output-file-sync "^1.1.2" - path-is-absolute "^1.0.1" - slash "^1.0.0" - source-map "^0.5.6" - v8flags "^2.1.1" - optionalDependencies: - chokidar "^1.6.1" - -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.0.14, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - -babel-eslint@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" - -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz#58a793863a9e7ca870bdc5a881117ffac27db6f3" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-polyfill@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" - dependencies: - babel-runtime "^6.26.0" - core-js "^2.5.0" - regenerator-runtime "^0.10.5" - -babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.7.0.tgz#dea79fa4ebeb883cd35dab07e260c1c9c04df77a" - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babelify@^7.3.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/babelify/-/babelify-7.3.0.tgz#aa56aede7067fd7bd549666ee16dc285087e88e5" - dependencies: - babel-core "^6.0.14" - object-assign "^4.0.0" - -babylon@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" - -backoff@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/backoff/-/backoff-2.5.0.tgz#f616eda9d3e4b66b8ca7fca79f695722c5f8e26f" - dependencies: - precond "0.2" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -base-x@^3.0.2, base-x@^3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" - dependencies: - safe-buffer "^5.0.1" - -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - dependencies: - tweetnacl "^0.14.3" - -bignumber.js@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - -binary-extensions@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" - -bindings@^1.2.1, bindings@^1.3.1, bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - dependencies: - file-uri-to-path "1.0.0" - -bip39@^2.4.2: - version "2.6.0" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.6.0.tgz#9e3a720b42ec8b3fbe4038f1e445317b6a99321c" - dependencies: - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - safe-buffer "^5.0.1" - unorm "^1.3.3" - -bip66@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" - dependencies: - safe-buffer "^5.0.1" - -bl@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c" - dependencies: - readable-stream "^2.3.5" - safe-buffer "^5.1.1" - -bluebird@^3.5.0: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - -bn.js@4.11.6: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - -bn.js@4.11.8: - version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - -bn.js@^5.1.1, bn.js@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - -body-parser@1.19.0, body-parser@^1.16.0: - version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - dependencies: - bytes "3.1.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "1.7.2" - iconv-lite "0.4.24" - on-finished "~2.3.0" - qs "6.7.0" - raw-body "2.4.0" - type-is "~1.6.17" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - dependencies: - fill-range "^7.0.1" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.2" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.8.tgz#b0005361d6471f0f5952797a76fc985f1f978fc6" - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - -bs58@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - dependencies: - base-x "^3.0.2" - -bs58check@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" - dependencies: - bs58 "^4.0.0" - create-hash "^1.1.0" - safe-buffer "^5.1.2" - -btoa@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/btoa/-/btoa-1.2.1.tgz#01a9909f8b2c93f6bf680ba26131eb30f7fa3d73" - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - -buffer-to-arraybuffer@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - -bytes@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - -caniuse-lite@^1.0.30000844: - version "1.0.30001088" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001088.tgz#23a6b9e192106107458528858f2c0e0dba0d9073" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -chai-bignumber@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chai-bignumber/-/chai-bignumber-3.0.0.tgz#e90cf1f468355bbb11a9acd051222586cd2648a9" - -chai@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - pathval "^1.1.0" - type-detect "^4.0.5" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - -checkpoint-store@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" - dependencies: - functional-red-black-tree "^1.0.1" - -chokidar@3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.2.0" - optionalDependencies: - fsevents "~2.1.1" - -chokidar@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - -cids@^0.7.1: - version "0.7.5" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" - dependencies: - buffer "^5.5.0" - class-is "^1.1.0" - multibase "~0.6.0" - multicodec "^1.0.0" - multihashes "~0.4.15" - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - dependencies: - mimic-response "^1.0.0" - -clone@^2.0.0, clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - dependencies: - delayed-stream "~1.0.0" - -commander@^2.11.0, commander@~2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - -commander@~2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" - dependencies: - graceful-readlink ">= 1.0.0" - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.5.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - dependencies: - safe-buffer "5.1.2" - -content-hash@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" - dependencies: - cids "^0.7.1" - multicodec "^0.5.5" - multihashes "^0.4.15" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - -convert-source-map@^1.5.0, convert-source-map@^1.5.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - -cookiejar@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - -core-js@^2.4.0, core-js@^2.5.0: - version "2.6.11" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -cors@^2.8.1: - version "2.8.5" - resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" - dependencies: - object-assign "^4" - vary "^1" - -create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-fetch@^2.1.0, cross-fetch@^2.1.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.3.tgz#e8a0b3c54598136e037f8650f8e823ccdfac198e" - dependencies: - node-fetch "2.1.2" - whatwg-fetch "2.0.4" - -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -death@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - -debug@3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - dependencies: - ms "^2.1.1" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - -decompress-response@^3.2.0, decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - dependencies: - mimic-response "^1.0.0" - -decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" - dependencies: - file-type "^5.2.0" - is-stream "^1.1.0" - tar-stream "^1.5.2" - -decompress-tarbz2@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz#3082a5b880ea4043816349f378b56c516be1a39b" - dependencies: - decompress-tar "^4.1.0" - file-type "^6.1.0" - is-stream "^1.1.0" - seek-bzip "^1.0.5" - unbzip2-stream "^1.0.9" - -decompress-targz@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.1.tgz#c09bc35c4d11f3de09f2d2da53e9de23e7ce1eee" - dependencies: - decompress-tar "^4.1.1" - file-type "^5.2.0" - is-stream "^1.1.0" - -decompress-unzip@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" - dependencies: - file-type "^3.8.0" - get-stream "^2.2.0" - pify "^2.3.0" - yauzl "^2.4.2" - -decompress@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.1.tgz#007f55cc6a62c055afa37c07eb6a4ee1b773f118" - dependencies: - decompress-tar "^4.0.0" - decompress-tarbz2 "^4.0.0" - decompress-targz "^4.0.0" - decompress-unzip "^4.0.1" - graceful-fs "^4.1.10" - make-dir "^1.0.0" - pify "^2.3.0" - strip-dirs "^2.0.0" - -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - dependencies: - type-detect "^4.0.0" - -deep-equal@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - -deferred-leveldown@~1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" - dependencies: - abstract-leveldown "~2.6.0" - -define-properties@^1.1.2, define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -defined@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -detect-port@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" - dependencies: - address "^1.0.1" - debug "^2.6.0" - -diff@3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - dependencies: - path-type "^4.0.0" - -dir-to-object@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/dir-to-object/-/dir-to-object-2.0.0.tgz#29723e9bd1c3e58e4f307bd04ff634c0370c8f8a" - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - -dotenv-flow@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/dotenv-flow/-/dotenv-flow-3.1.0.tgz#2abcb4661cf2d0ca5b46d8ff5e95c1045ade9938" - dependencies: - dotenv "^8.0.0" - -dotenv@^8.0.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - -dotignore@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" - dependencies: - minimatch "^3.0.4" - -drbg.js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" - dependencies: - browserify-aes "^1.0.6" - create-hash "^1.1.2" - create-hmac "^1.1.4" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - -electron-to-chromium@^1.3.47: - version "1.3.483" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.483.tgz#9269e7cfc1c8e72709824da171cbe47ca5e3ca9e" - -elliptic@6.3.3: - version "6.3.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.3.tgz#5482d9646d54bcb89fd7d994fc9e2e9568876e3f" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - inherits "^2.0.1" - -elliptic@6.5.2, elliptic@^6.0.0, elliptic@^6.4.0, elliptic@^6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - -emoji-regex@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.0.0.tgz#48a2309cc8a1d2e9d23bc6a67c39b63032e76ea4" - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - dependencies: - once "^1.4.0" - -errno@~0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - dependencies: - prr "~1.0.1" - -es-abstract@^1.17.0-next.1, es-abstract@^1.17.4, es-abstract@^1.17.5: - version "1.17.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" - object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es5-ext@^0.10.35, es5-ext@^0.10.50: - version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - dependencies: - es6-iterator "~2.0.3" - es6-symbol "~3.1.3" - next-tick "~1.0.0" - -es6-iterator@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-object-assign@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" - -es6-promisify@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.1.tgz#46837651b7b06bf6fff893d03f29393668d01621" - -es6-symbol@^3.1.1, es6-symbol@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - dependencies: - d "^1.0.1" - ext "^1.1.2" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - -escodegen@1.8.x: - version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" - dependencies: - esprima "^2.7.1" - estraverse "^1.9.1" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.2.0" - -eslint-visitor-keys@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz#74415ac884874495f78ec2a97349525344c981fa" - -esprima-extract-comments@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/esprima-extract-comments/-/esprima-extract-comments-1.1.0.tgz#0dacab567a5900240de6d344cf18c33617becbc9" - dependencies: - esprima "^4.0.0" - -esprima@2.7.x, esprima@^2.7.1: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - -estraverse@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - -eth-block-tracker@^4.2.0: - version "4.4.3" - resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz#766a0a0eb4a52c867a28328e9ae21353812cf626" - dependencies: - "@babel/plugin-transform-runtime" "^7.5.5" - "@babel/runtime" "^7.5.5" - eth-query "^2.1.0" - json-rpc-random-id "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-ens-namehash@2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" - dependencies: - idna-uts46-hx "^2.3.1" - js-sha3 "^0.5.7" - -eth-json-rpc-errors@^1.0.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz#148377ef55155585981c21ff574a8937f9d6991f" - dependencies: - fast-safe-stringify "^2.0.6" - -eth-json-rpc-errors@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz#c1965de0301fe941c058e928bebaba2e1285e3c4" - dependencies: - fast-safe-stringify "^2.0.6" - -eth-json-rpc-filters@^4.0.2: - version "4.1.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.1.tgz#15277c66790236d85f798f4d7dc6bab99a798cd2" - dependencies: - await-semaphore "^0.1.3" - eth-json-rpc-middleware "^4.1.4" - eth-query "^2.1.2" - json-rpc-engine "^5.1.3" - lodash.flatmap "^4.5.0" - safe-event-emitter "^1.0.1" - -eth-json-rpc-infura@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz#26702a821067862b72d979c016fd611502c6057f" - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-middleware "^1.5.0" - json-rpc-engine "^3.4.0" - json-rpc-error "^2.0.0" - -eth-json-rpc-middleware@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz#5c9d4c28f745ccb01630f0300ba945f4bef9593f" - dependencies: - async "^2.5.0" - eth-query "^2.1.2" - eth-tx-summary "^3.1.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.1.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^3.6.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - tape "^4.6.3" - -eth-json-rpc-middleware@^4.1.1, eth-json-rpc-middleware@^4.1.4: - version "4.4.1" - resolved "https://registry.yarnpkg.com/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.1.tgz#07d3dd0724c24a8d31e4a172ee96271da71b4228" - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-json-rpc-errors "^1.0.1" - eth-query "^2.1.2" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.7" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.6.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^5.1.3" - json-stable-stringify "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-lib@0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-lib@^0.1.26: - version "0.1.29" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - nano-json-stream-parser "^0.1.2" - servify "^0.1.12" - ws "^3.0.0" - xhr-request-promise "^0.1.2" - -eth-lib@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - -eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/eth-query/-/eth-query-2.1.2.tgz#d6741d9000106b51510c72db92d6365456a6da5e" - dependencies: - json-rpc-random-id "^1.0.0" - xtend "^4.0.1" - -eth-sig-util@^1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210" - dependencies: - ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" - ethereumjs-util "^5.1.1" - -eth-tx-summary@^3.1.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz#e10eb95eb57cdfe549bf29f97f1e4f1db679035c" - dependencies: - async "^2.1.2" - clone "^2.0.0" - concat-stream "^1.5.1" - end-of-stream "^1.1.0" - eth-query "^2.0.2" - ethereumjs-block "^1.4.1" - ethereumjs-tx "^1.1.1" - ethereumjs-util "^5.0.1" - ethereumjs-vm "^2.6.0" - through2 "^2.0.3" - -ethereum-bloom-filters@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz#b7b80735e385dbb7f944ce6b4533e24511306060" - dependencies: - js-sha3 "^0.8.0" - -ethereum-common@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.2.0.tgz#13bf966131cce1eeade62a1b434249bb4cb120ca" - -ethereum-common@^0.0.18: - version "0.0.18" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" - -ethereum-protocol@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz#b7d68142f4105e0ae7b5e178cf42f8d4dc4b93cf" - -"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": - version "0.6.8" - resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b" - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -ethereumjs-account@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz#eeafc62de544cb07b0ee44b10f572c9c49e00a84" - dependencies: - ethereumjs-util "^5.0.0" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz#78b88e6cc56de29a6b4884ee75379b6860333c3f" - dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@~2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" - dependencies: - async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-common@^1.1.0, ethereumjs-common@^1.3.2, ethereumjs-common@^1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.1.tgz#4e75042473a64daec0ed9fe84323dd9576aa5dba" - -ethereumjs-tx@^1.0.0, ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3, ethereumjs-tx@^1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" - dependencies: - ethereum-common "^0.0.18" - ethereumjs-util "^5.0.0" - -ethereumjs-tx@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz#5dfe7688bf177b45c9a23f86cf9104d47ea35fed" - dependencies: - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.0.0" - -ethereumjs-util@6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.1.0.tgz#e9c51e5549e8ebd757a339cc00f5380507e799c8" - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - ethjs-util "0.1.6" - keccak "^1.0.2" - rlp "^2.0.0" - safe-buffer "^5.1.1" - secp256k1 "^3.0.1" - -ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.5: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz#3e0c0d1741471acf1036052d048623dee54ad642" - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - ethjs-util "^0.1.3" - keccak "^1.0.2" - rlp "^2.0.0" - safe-buffer "^5.1.1" - secp256k1 "^3.0.1" - -ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.0.tgz#23ec79b2488a7d041242f01e25f24e5ad0357960" - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - ethjs-util "0.1.6" - keccak "^2.0.0" - rlp "^2.2.3" - secp256k1 "^3.0.1" - -ethereumjs-util@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.0.2.tgz#7e0d9fcd225ece6e49ee4ea65609d124715f1d15" - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^5.1.2" - create-hash "^1.1.2" - ethjs-util "0.1.6" - keccak "^3.0.0" - rlp "^2.2.4" - secp256k1 "^4.0.1" - -ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz#76243ed8de031b408793ac33907fb3407fe400c6" - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - -ethereumjs-wallet@^0.6.3: - version "0.6.4" - resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.4.tgz#67dd013dd839e69a8eb9a8f78cacfc9bff307167" - dependencies: - aes-js "^3.1.1" - bs58check "^2.1.2" - ethereumjs-util "^6.0.0" - hdkey "^1.1.1" - randombytes "^2.0.6" - safe-buffer "^5.1.2" - scryptsy "^1.2.1" - utf8 "^3.0.0" - uuid "^3.3.2" - -ethers@4.0.0-beta.3: - version "4.0.0-beta.3" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.0-beta.3.tgz#15bef14e57e94ecbeb7f9b39dd0a4bd435bc9066" - dependencies: - "@types/node" "^10.3.2" - aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.3.3" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.3" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethers@^4.0.32: - version "4.0.47" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.47.tgz#91b9cd80473b1136dd547095ff9171bd1fc68c85" - dependencies: - aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.5.2" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.4" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - -ethjs-unit@0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" - dependencies: - bn.js "4.11.6" - number-to-bn "1.7.0" - -ethjs-util@0.1.6, ethjs-util@^0.1.3: - version "0.1.6" - resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" - dependencies: - is-hex-prefixed "1.0.0" - strip-hex-prefix "1.0.0" - -eventemitter3@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - -eventemitter3@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - -events@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -express@^4.14.0: - version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - dependencies: - accepts "~1.3.7" - array-flatten "1.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -ext@^1.1.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - dependencies: - type "^2.0.0" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extract-comments@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/extract-comments/-/extract-comments-1.1.0.tgz#b90bca033a056bd69b8ba1c6b6b120fc2ee95c18" - dependencies: - esprima-extract-comments "^1.1.0" - parse-code-context "^1.0.0" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - -fake-merkle-patricia-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" - dependencies: - checkpoint-store "^1.1.0" - -fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - -fast-glob@^3.0.3: - version "3.2.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d" - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" - merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -fast-safe-stringify@^2.0.6: - version "2.0.7" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" - -fastq@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz#550e1f9f59bbc65fe185cb6a9b4d95357107f481" - dependencies: - reusify "^1.0.4" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - dependencies: - pend "~1.2.0" - -fetch-ponyfill@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893" - dependencies: - node-fetch "~1.7.1" - -file-type@^3.8.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - -file-type@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-5.2.0.tgz#2ddbea7c73ffe36368dfae49dc338c058c2b8ad6" - -file-type@^6.1.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-6.2.0.tgz#e50cd75d356ffed4e306dc4f5bcf52a79903a919" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fill-range@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^3.0.0" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - dependencies: - to-regex-range "^5.0.1" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -find-up@3.0.0, find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - dependencies: - locate-path "^3.0.0" - -flat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" - dependencies: - is-buffer "~2.0.3" - -for-each@~0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - dependencies: - is-callable "^1.1.3" - -for-in@^1.0.1, for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - -fs-extra@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - dependencies: - minipass "^2.6.0" - -fs-readdir-recursive@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz#e32fc030a2ccee44a6b5371308da54be0b397d27" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - -function-bind@^1.1.1, function-bind@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - -ganache-cli@6.9.0: - version "6.9.0" - resolved "https://registry.yarnpkg.com/ganache-cli/-/ganache-cli-6.9.0.tgz#94d7e26964dff80b7382a33829ec75e15709a948" - dependencies: - ethereumjs-util "6.1.0" - source-map-support "0.5.12" - yargs "13.2.4" - -ganache-cli@^6.9.1: - version "6.9.1" - resolved "https://registry.yarnpkg.com/ganache-cli/-/ganache-cli-6.9.1.tgz#1e13eee098fb9f19b031a191ec3f62ae926ea8b3" - dependencies: - ethereumjs-util "6.1.0" - source-map-support "0.5.12" - yargs "13.2.4" - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - -get-stream@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - -get-stream@^4.0.0, get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - -ghost-testrpc@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/ghost-testrpc/-/ghost-testrpc-0.0.2.tgz#c4de9557b1d1ae7b2d20bbe474a91378ca90ce92" - dependencies: - chalk "^2.4.2" - node-emoji "^1.10.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob-parent@^5.1.0, glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - dependencies: - is-glob "^4.0.1" - -glob@7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^5.0.15: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@~7.1.6: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-modules@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - dependencies: - global-prefix "^3.0.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -global@~4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" - dependencies: - min-document "^2.19.0" - process "~0.5.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" - -globby@^10.0.1: - version "10.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" - dependencies: - "@types/glob" "^7.1.1" - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.0.3" - glob "^7.1.3" - ignore "^5.1.1" - merge2 "^1.2.3" - slash "^3.0.0" - -got@9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -got@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - -graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -growl@1.10.5: - version "1.10.5" - resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" - -handlebars@^4.0.1: - version "4.7.6" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" - dependencies: - minimist "^1.2.5" - neo-async "^2.6.0" - source-map "^0.6.1" - wordwrap "^1.0.0" - optionalDependencies: - uglify-js "^3.1.4" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - -har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - dependencies: - has-symbol-support-x "^1.4.1" - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.3, has@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hdkey@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-1.1.2.tgz#c60f9cf6f90fbf24a8a52ea06893f36a0108cd3e" - dependencies: - bs58check "^2.1.2" - safe-buffer "^5.1.1" - secp256k1 "^3.0.1" - -he@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-https@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -iconv-lite@0.4.24, iconv-lite@~0.4.13: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -idna-uts46-hx@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" - dependencies: - punycode "2.1.0" - -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - -ignore@^5.1.1: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.3.0.tgz#1aef225517836bcdf7f2a2de2600c79ff0269266" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -ini@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - dependencies: - kind-of "^6.0.0" - -is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - dependencies: - binary-extensions "^2.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -is-buffer@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.1.5: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - -is-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - -is-generator-function@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - dependencies: - is-extglob "^2.1.1" - -is-hex-prefixed@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" - -is-nan@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.0.tgz#85d1f5482f7051c2019f5673ccebdb06f3b0db03" - dependencies: - define-properties "^1.1.3" - -is-natural-number@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - -is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - dependencies: - isobject "^3.0.1" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-regex@^1.0.4, is-regex@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" - dependencies: - has-symbols "^1.0.1" - -is-regex@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - dependencies: - has "^1.0.3" - -is-retry-allowed@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - dependencies: - has-symbols "^1.0.1" - -is-typed-array@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.3.tgz#a4ff5a5e672e1a55f99c7f54e59597af5c1df04d" - dependencies: - available-typed-arrays "^1.0.0" - es-abstract "^1.17.4" - foreach "^2.0.5" - has-symbols "^1.0.1" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -js-sha3@0.5.7, js-sha3@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - -js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - -js-yaml@3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@3.x: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - -json-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0: - version "3.8.0" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz#9d4ff447241792e1d0a232f6ef927302bb0c62a9" - dependencies: - async "^2.0.1" - babel-preset-env "^1.7.0" - babelify "^7.3.0" - json-rpc-error "^2.0.0" - promise-to-callback "^1.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-engine@^5.1.3: - version "5.1.8" - resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-5.1.8.tgz#5ba0147ce571899bbaa7133ffbc05317c34a3c7f" - dependencies: - async "^2.0.1" - eth-json-rpc-errors "^2.0.1" - promise-to-callback "^1.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-error@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02" - dependencies: - inherits "^2.0.1" - -json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsonschema@^1.2.4: - version "1.2.6" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.6.tgz#52b0a8e9dc06bbae7295249d03e4b9faee8a0c0b" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -keccak@^1.0.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" - dependencies: - bindings "^1.2.1" - inherits "^2.0.3" - nan "^2.2.1" - safe-buffer "^5.1.0" - -keccak@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-2.1.0.tgz#734ea53f2edcfd0f42cdb8d5f4c358fef052752b" - dependencies: - bindings "^1.5.0" - inherits "^2.0.4" - nan "^2.14.0" - safe-buffer "^5.2.0" - -keccak@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.0.tgz#420d1de4a38a04f33ff8401f0535fb93756861d4" - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - dependencies: - json-buffer "3.0.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - dependencies: - invert-kv "^2.0.0" - -level-codec@~7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" - -level-errors@^1.0.3: - version "1.1.2" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.1.2.tgz#4399c2f3d3ab87d0625f7e3676e2d807deff404d" - dependencies: - errno "~0.1.1" - -level-errors@~1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.0.5.tgz#83dbfb12f0b8a2516bdc9a31c4876038e227b859" - dependencies: - errno "~0.1.1" - -level-iterator-stream@~1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" - dependencies: - inherits "^2.0.1" - level-errors "^1.0.3" - readable-stream "^1.0.33" - xtend "^4.0.0" - -level-ws@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" - dependencies: - readable-stream "~1.0.15" - xtend "~2.1.1" - -levelup@^1.2.1: - version "1.3.9" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" - dependencies: - deferred-leveldown "~1.2.1" - level-codec "~7.0.0" - level-errors "~1.0.3" - level-iterator-stream "~1.3.0" - prr "~1.0.1" - semver "~5.4.1" - xtend "~4.0.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -lodash.flatmap@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz#ef8cbf408f6e48268663345305c6acc0b778702e" - -lodash.toarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" - -lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - -log-symbols@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" - dependencies: - chalk "^2.4.2" - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - -ltgt@~2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.1.tgz#f35ca91c493f7b73da0e07495304f17b31f87ee5" - -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - dependencies: - pify "^3.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - dependencies: - object-visit "^1.0.0" - -math-random@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -memdown@^1.0.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" - dependencies: - abstract-leveldown "~2.7.1" - functional-red-black-tree "^1.0.1" - immediate "^3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - -merge2@^1.2.3, merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - -merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz#982ca1b5a0fde00eed2f6aeed1f9152860b8208a" - dependencies: - async "^1.4.2" - ethereumjs-util "^5.0.0" - level-ws "0.0.0" - levelup "^1.2.1" - memdown "^1.0.0" - readable-stream "^2.0.0" - rlp "^2.0.0" - semaphore ">=1.0.1" - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -micromatch@^3.1.10: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - dependencies: - braces "^3.0.1" - picomatch "^2.0.5" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - -mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - dependencies: - mime-db "1.44.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - -mimic-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - dependencies: - dom-walk "^0.1.0" - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - -"minimatch@2 || 3", minimatch@3.0.4, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.5, minimist@~1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - dependencies: - minipass "^2.9.0" - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp-promise@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" - dependencies: - mkdirp "*" - -mkdirp@*: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - -mkdirp@0.5.5, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - dependencies: - minimist "^1.2.5" - -mocha@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-7.2.0.tgz#01cc227b00d875ab1eed03a75106689cfed5a604" - dependencies: - ansi-colors "3.2.3" - browser-stdout "1.3.1" - chokidar "3.3.0" - debug "3.2.6" - diff "3.5.0" - escape-string-regexp "1.0.5" - find-up "3.0.0" - glob "7.1.3" - growl "1.10.5" - he "1.2.0" - js-yaml "3.13.1" - log-symbols "3.0.0" - minimatch "3.0.4" - mkdirp "0.5.5" - ms "2.1.1" - node-environment-flags "1.0.6" - object.assign "4.1.0" - strip-json-comments "2.0.1" - supports-color "6.0.0" - which "1.3.1" - wide-align "1.1.3" - yargs "13.3.2" - yargs-parser "13.1.2" - yargs-unparser "1.6.0" - -mock-fs@^4.1.0: - version "4.12.0" - resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.12.0.tgz#a5d50b12d2d75e5bec9dac3b67ffe3c41d31ade4" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - -ms@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - -multibase@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multicodec@^0.5.5: - version "0.5.7" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" - dependencies: - varint "^5.0.0" - -multicodec@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.1.tgz#4e2812d726b9f7c7d615d3ebc5787d36a08680f9" - dependencies: - buffer "^5.5.0" - varint "^5.0.0" - -multihashes@^0.4.15, multihashes@~0.4.15: - version "0.4.19" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.19.tgz#d7493cf028e48747122f350908ea13d12d204813" - dependencies: - buffer "^5.5.0" - multibase "^0.7.0" - varint "^5.0.0" - -nan@^2.12.1, nan@^2.14.0, nan@^2.2.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - -nano-json-stream-parser@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -negotiator@0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - -neo-async@^2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - -next-tick@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - -node-addon-api@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.1.tgz#4fd0931bf6d7e48b219ff3e6abc73cbb0252b7a3" - -node-emoji@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" - dependencies: - lodash.toarray "^4.4.0" - -node-environment-flags@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088" - dependencies: - object.getownpropertydescriptors "^2.0.3" - semver "^5.7.0" - -node-fetch@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" - -node-fetch@~1.7.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-gyp-build@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.2.tgz#3f44b65adaafd42fb6c3d81afd630e45c847eb66" - -nopt@3.x: - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - dependencies: - abbrev "1" - -normalize-path@^2.0.0, normalize-path@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - dependencies: - path-key "^2.0.0" - -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - -object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.7.0, object-inspect@~1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - -object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - dependencies: - isobject "^3.0.0" - -object.assign@4.1.0, object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - -object.getownpropertydescriptors@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - dependencies: - isobject "^3.0.1" - -oboe@2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.4.tgz#20c88cdb0c15371bb04119257d4fdd34b0aa49f6" - dependencies: - http-https "^1.0.0" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - -once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - -os-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -output-file-sync@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" - dependencies: - graceful-fs "^4.1.4" - mkdirp "^0.5.1" - object-assign "^4.1.0" - -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - -p-limit@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - dependencies: - p-try "^2.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - dependencies: - p-limit "^2.0.0" - -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" - dependencies: - p-finally "^1.0.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-code-context@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-code-context/-/parse-code-context-1.0.0.tgz#718c295c593d0d19a37f898473268cc75e98de1e" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-headers@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - -pathval@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" - -pbkdf2@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.0.tgz#8839d778223e922164803a411dc62fddb57d3b02" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pbkdf2@^3.0.9: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - -picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - -pify@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - -precond@0.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -prettier-plugin-solidity@^1.0.0-alpha.52: - version "1.0.0-alpha.53" - resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-alpha.53.tgz#42ef3435fb179bc41fe83f08d7b9327c88bf4a01" - dependencies: - "@solidity-parser/parser" "^0.6.1" - dir-to-object "^2.0.0" - emoji-regex "^9.0.0" - escape-string-regexp "^4.0.0" - extract-comments "^1.1.0" - prettier "^2.0.5" - semver "^7.3.2" - string-width "^4.2.0" - -prettier@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" - -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - -process@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" - -promise-to-callback@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" - dependencies: - is-fn "^1.0.0" - set-immediate-shim "^1.0.1" - -proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - dependencies: - forwarded "~0.1.2" - ipaddr.js "1.9.1" - -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -randomatic@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" - dependencies: - is-number "^4.0.0" - kind-of "^6.0.0" - math-random "^1.0.1" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -randomhex@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/randomhex/-/randomhex-0.1.5.tgz#baceef982329091400f2a2912c6cd02f1094f585" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -readable-stream@^1.0.33: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.0, readable-stream@^2.3.5, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-stream@~1.0.15: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readdirp@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -readdirp@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" - dependencies: - picomatch "^2.0.4" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - dependencies: - resolve "^1.1.6" - -recursive-readdir@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" - dependencies: - minimatch "3.0.4" - -regenerate@^1.2.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - -regenerator-runtime@^0.10.5: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - -regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - -regex-cache@^0.4.2: - version "0.4.4" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" - dependencies: - is-equal-shallow "^0.1.3" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" - -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" - dependencies: - jsesc "~0.5.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - -repeat-string@^1.5.2, repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -request@^2.79.0, request@^2.85.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - -resolve@1.1.x: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - -resolve@^1.1.6, resolve@^1.12.0, resolve@^1.8.1, resolve@~1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - dependencies: - path-parse "^1.0.6" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - dependencies: - lowercase-keys "^1.0.0" - -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" - dependencies: - through "~2.3.4" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -rlp@^2.0.0, rlp@^2.2.3, rlp@^2.2.4: - version "2.2.5" - resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.5.tgz#b0577b763e909f21a9dea31b4b235b2393f15ef1" - dependencies: - bn.js "^4.11.1" - -run-parallel@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" - -rustbn.js@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.2.0.tgz#8082cb886e707155fd1cb6f23bd591ab8d55d0ca" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - -safe-event-emitter@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" - dependencies: - events "^3.0.0" - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - -sc-istanbul@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/sc-istanbul/-/sc-istanbul-0.4.5.tgz#1896066484d55336cf2cdbcc7884dc79da50dc76" - dependencies: - abbrev "1.0.x" - async "1.x" - escodegen "1.8.x" - esprima "2.7.x" - glob "^5.0.15" - handlebars "^4.0.1" - js-yaml "3.x" - mkdirp "0.5.x" - nopt "3.x" - once "1.x" - resolve "1.1.x" - supports-color "^3.1.0" - which "^1.1.1" - wordwrap "^1.0.0" - -scrypt-js@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.3.tgz#bb0040be03043da9a012a2cea9fc9f852cfc87d4" - -scrypt-js@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" - -"scrypt-shim@github:web3-js/scrypt-shim": - version "0.1.0" - resolved "https://codeload.github.com/web3-js/scrypt-shim/tar.gz/aafdadda13e660e25e1c525d1f5b2443f5eb1ebb" - dependencies: - scryptsy "^2.1.0" - semver "^6.3.0" - -scryptsy@2.1.0, scryptsy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" - -scryptsy@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-1.2.1.tgz#a3225fa4b2524f802700761e2855bdf3b2d92163" - dependencies: - pbkdf2 "^3.0.3" - -secp256k1@^3.0.1: - version "3.8.0" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.8.0.tgz#28f59f4b01dbee9575f56a47034b7d2e3b3b352d" - dependencies: - bindings "^1.5.0" - bip66 "^1.1.5" - bn.js "^4.11.8" - create-hash "^1.2.0" - drbg.js "^1.0.1" - elliptic "^6.5.2" - nan "^2.14.0" - safe-buffer "^5.1.2" - -secp256k1@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.1.tgz#b9570ca26ace9e74c3171512bba253da9c0b6d60" - dependencies: - elliptic "^6.5.2" - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -seek-bzip@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" - dependencies: - commander "~2.8.1" - -semaphore@>=1.0.1, semaphore@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" - -semver@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.2.0.tgz#4d813d9590aaf8a9192693d6c85b9344de5901db" - -semver@^5.3.0, semver@^5.5.0, semver@^5.5.1, semver@^5.7.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - -semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - -semver@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - -semver@~5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -servify@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" - dependencies: - body-parser "^1.16.0" - cors "^2.8.1" - express "^4.14.0" - request "^2.79.0" - xhr "^2.3.3" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" - -setimmediate@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - -shelljs@^0.8.3: - version "0.8.4" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -signal-exit@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - -simple-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" - -simple-get@^2.7.0: - version "2.8.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" - dependencies: - decompress-response "^3.3.0" - once "^1.3.1" - simple-concat "^1.0.0" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -solidity-coverage@^0.7.7: - version "0.7.7" - resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.7.7.tgz#e6d98436d529707c64c1d6d3355590031a724777" - dependencies: - "@solidity-parser/parser" "^0.6.0" - "@truffle/provider" "^0.1.17" - chalk "^2.4.2" - death "^1.1.0" - detect-port "^1.3.0" - fs-extra "^8.1.0" - ganache-cli "6.9.0" - ghost-testrpc "^0.0.2" - global-modules "^2.0.0" - globby "^10.0.1" - jsonschema "^1.2.4" - lodash "^4.17.15" - node-emoji "^1.10.0" - pify "^4.0.1" - recursive-readdir "^2.2.2" - sc-istanbul "^0.4.5" - shelljs "^0.8.3" - web3 "1.2.6" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@0.5.12: - version "0.5.12" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - -source-map-support@^0.5.17, source-map-support@^0.5.19: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -source-map@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" - dependencies: - amdefine ">=0.0.4" - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trim@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - -string.prototype.trimend@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimleft@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimstart "^1.0.0" - -string.prototype.trimright@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimend "^1.0.0" - -string.prototype.trimstart@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - dependencies: - ansi-regex "^5.0.0" - -strip-dirs@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.1.0.tgz#4987736264fc344cf20f6c34aca9d13d1d4ed6c5" - dependencies: - is-natural-number "^4.0.1" - -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - -strip-hex-prefix@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" - dependencies: - is-hex-prefixed "1.0.0" - -strip-json-comments@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -supports-color@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" - dependencies: - has-flag "^3.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - dependencies: - has-flag "^3.0.0" - -swarm-js@0.1.39: - version "0.1.39" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.39.tgz#79becb07f291d4b2a178c50fee7aa6e10342c0e8" - dependencies: - bluebird "^3.5.0" - buffer "^5.0.5" - decompress "^4.0.0" - eth-lib "^0.1.26" - fs-extra "^4.0.2" - got "^7.1.0" - mime-types "^2.1.16" - mkdirp-promise "^5.0.1" - mock-fs "^4.1.0" - setimmediate "^1.0.5" - tar "^4.0.2" - xhr-request-promise "^0.1.2" - -swarm-js@^0.1.40: - version "0.1.40" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" - dependencies: - bluebird "^3.5.0" - buffer "^5.0.5" - eth-lib "^0.1.26" - fs-extra "^4.0.2" - got "^7.1.0" - mime-types "^2.1.16" - mkdirp-promise "^5.0.1" - mock-fs "^4.1.0" - setimmediate "^1.0.5" - tar "^4.0.2" - xhr-request "^1.0.1" - -tape@^4.6.3: - version "4.13.3" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.13.3.tgz#51b3d91c83668c7a45b1a594b607dee0a0b46278" - dependencies: - deep-equal "~1.1.1" - defined "~1.0.0" - dotignore "~0.1.2" - for-each "~0.3.3" - function-bind "~1.1.1" - glob "~7.1.6" - has "~1.0.3" - inherits "~2.0.4" - is-regex "~1.0.5" - minimist "~1.2.5" - object-inspect "~1.7.0" - resolve "~1.17.0" - resumer "~0.0.0" - string.prototype.trim "~1.2.1" - through "~2.3.8" - -tar-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.6.2.tgz#8ea55dab37972253d9a9af90fdcd559ae435c555" - dependencies: - bl "^1.0.0" - buffer-alloc "^1.2.0" - end-of-stream "^1.0.0" - fs-constants "^1.0.0" - readable-stream "^2.3.0" - to-buffer "^1.1.1" - xtend "^4.0.0" - -tar@^4.0.2: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - -through2@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -through@^2.3.8, through@~2.3.4, through@~2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - -to-buffer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/to-buffer/-/to-buffer-1.1.1.tgz#493bd48f62d7c43fcded313a03dcadb2e1213a80" - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - dependencies: - is-number "^7.0.0" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -truffle-hdwallet-provider@^1.0.17: - version "1.0.17" - resolved "https://registry.yarnpkg.com/truffle-hdwallet-provider/-/truffle-hdwallet-provider-1.0.17.tgz#fe8edd0d6974eeb31af9959e41525fb19abd74ca" - dependencies: - any-promise "^1.3.0" - bindings "^1.3.1" - web3 "1.2.1" - websocket "^1.0.28" - -ts-node@^8.10.2: - version "8.10.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz#eee03764633b1234ddd37f8db9ec10b75ec7fb8d" - dependencies: - arg "^4.1.0" - diff "^4.0.1" - make-error "^1.1.1" - source-map-support "^0.5.17" - yn "3.1.1" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -type-detect@^4.0.0, type-detect@^4.0.5: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -type@^1.0.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - -type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -typescript@^3.9.5: - version "3.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.5.tgz#586f0dba300cde8be52dd1ac4f7e1009c1b13f36" - -uglify-js@^3.1.4: - version "3.9.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.9.4.tgz#867402377e043c1fc7b102253a22b64e5862401b" - dependencies: - commander "~2.20.3" - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - -unbzip2-stream@^1.0.9: - version "1.4.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" - dependencies: - buffer "^5.2.1" - through "^2.3.8" - -underscore@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - -unorm@^1.3.3: - version "1.6.0" - resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.6.0.tgz#029b289661fba714f1a9af439eb51d9b16c205af" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - dependencies: - prepend-http "^1.0.1" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - dependencies: - prepend-http "^2.0.0" - -url-set-query@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - -utf8@3.0.0, utf8@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util@^0.12.0: - version "0.12.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.3.tgz#971bb0292d2cc0c892dab7c6a5d37c2bec707888" - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - safe-buffer "^5.1.2" - which-typed-array "^1.1.2" - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - -uuid@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" - -uuid@3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - -v8flags@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - dependencies: - user-home "^1.1.1" - -varint@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.0.tgz#d826b89f7490732fabc0c0ed693ed475dcb29ebf" - -vary@^1, vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -web3-bzz@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.1.tgz#c3bd1e8f0c02a13cd6d4e3c3e9e1713f144f6f0d" - dependencies: - got "9.6.0" - swarm-js "0.1.39" - underscore "1.9.1" - -web3-bzz@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.2.tgz#a3b9f613c49fd3e120e0997088a73557d5adb724" - dependencies: - "@types/node" "^10.12.18" - got "9.6.0" - swarm-js "0.1.39" - underscore "1.9.1" - -web3-bzz@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.6.tgz#0b88c0b96029eaf01b10cb47c4d5f79db4668883" - dependencies: - "@types/node" "^10.12.18" - got "9.6.0" - swarm-js "0.1.39" - underscore "1.9.1" - -web3-bzz@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.8.tgz#7ff2c2de362f82ae3825e48c70ec63b3aca2b8ef" - dependencies: - "@types/node" "^10.12.18" - got "9.6.0" - swarm-js "^0.1.40" - underscore "1.9.1" - -web3-core-helpers@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.1.tgz#f5f32d71c60a4a3bd14786118e633ce7ca6d5d0d" - dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.1" - web3-utils "1.2.1" - -web3-core-helpers@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz#484974f4bd4a487217b85b0d7cfe841af0907619" - dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.2" - web3-utils "1.2.2" - -web3-core-helpers@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.6.tgz#7aacd25bf8015adcdfc0f3243d0dcfdff0373f7d" - dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.6" - web3-utils "1.2.6" - -web3-core-helpers@1.2.8, web3-core-helpers@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.8.tgz#86776d8f658b63bb630c84a314686661e599aa68" - dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.8" - web3-utils "1.2.8" - -web3-core-method@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.1.tgz#9df1bafa2cd8be9d9937e01c6a47fc768d15d90a" - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.1" - web3-core-promievent "1.2.1" - web3-core-subscriptions "1.2.1" - web3-utils "1.2.1" - -web3-core-method@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.2.tgz#d4fe2bb1945b7152e5f08e4ea568b171132a1e56" - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.2" - web3-core-promievent "1.2.2" - web3-core-subscriptions "1.2.2" - web3-utils "1.2.2" - -web3-core-method@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.6.tgz#f5a3e4d304abaf382923c8ab88ec8eeef45c1b3b" - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.6" - web3-core-promievent "1.2.6" - web3-core-subscriptions "1.2.6" - web3-utils "1.2.6" - -web3-core-method@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.8.tgz#f28a79935432aebfa019e4a50f9b6ae6c9ef4297" - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.8" - web3-core-promievent "1.2.8" - web3-core-subscriptions "1.2.8" - web3-utils "1.2.8" - -web3-core-promievent@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.1.tgz#003e8a3eb82fb27b6164a6d5b9cad04acf733838" - dependencies: - any-promise "1.3.0" - eventemitter3 "3.1.2" - -web3-core-promievent@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.2.tgz#3b60e3f2a0c96db8a891c927899d29d39e66ab1c" - dependencies: - any-promise "1.3.0" - eventemitter3 "3.1.2" - -web3-core-promievent@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.6.tgz#b1550a3a4163e48b8b704c1fe4b0084fc2dad8f5" - dependencies: - any-promise "1.3.0" - eventemitter3 "3.1.2" - -web3-core-promievent@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.8.tgz#a93ca2a19cae8b60883412619e04e69e11804eb5" - dependencies: - eventemitter3 "3.1.2" - -web3-core-requestmanager@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.1.tgz#fa2e2206c3d738db38db7c8fe9c107006f5c6e3d" - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.1" - web3-providers-http "1.2.1" - web3-providers-ipc "1.2.1" - web3-providers-ws "1.2.1" - -web3-core-requestmanager@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.2.tgz#667ba9ac724c9c76fa8965ae8a3c61f66e68d8d6" - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.2" - web3-providers-http "1.2.2" - web3-providers-ipc "1.2.2" - web3-providers-ws "1.2.2" - -web3-core-requestmanager@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.6.tgz#5808c0edc0d6e2991a87b65508b3a1ab065b68ec" - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.6" - web3-providers-http "1.2.6" - web3-providers-ipc "1.2.6" - web3-providers-ws "1.2.6" - -web3-core-requestmanager@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.8.tgz#da7259e72a433858d04c59b999c5116bfb797c09" - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.8" - web3-providers-http "1.2.8" - web3-providers-ipc "1.2.8" - web3-providers-ws "1.2.8" - -web3-core-subscriptions@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.1.tgz#8c2368a839d4eec1c01a4b5650bbeb82d0e4a099" - dependencies: - eventemitter3 "3.1.2" - underscore "1.9.1" - web3-core-helpers "1.2.1" - -web3-core-subscriptions@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.2.tgz#bf4ba23a653a003bdc3551649958cc0b080b068e" - dependencies: - eventemitter3 "3.1.2" - underscore "1.9.1" - web3-core-helpers "1.2.2" - -web3-core-subscriptions@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.6.tgz#9d44189e2321f8f1abc31f6c09103b5283461b57" - dependencies: - eventemitter3 "3.1.2" - underscore "1.9.1" - web3-core-helpers "1.2.6" - -web3-core-subscriptions@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.8.tgz#50945498fb0bd655f842cbcc13873d96956aa93e" - dependencies: - eventemitter3 "3.1.2" - underscore "1.9.1" - web3-core-helpers "1.2.8" - -web3-core@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.1.tgz#7278b58fb6495065e73a77efbbce781a7fddf1a9" - dependencies: - web3-core-helpers "1.2.1" - web3-core-method "1.2.1" - web3-core-requestmanager "1.2.1" - web3-utils "1.2.1" - -web3-core@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.2.tgz#334b99c8222ef9cfd0339e27352f0b58ea789a2f" - dependencies: - "@types/bn.js" "^4.11.4" - "@types/node" "^12.6.1" - web3-core-helpers "1.2.2" - web3-core-method "1.2.2" - web3-core-requestmanager "1.2.2" - web3-utils "1.2.2" - -web3-core@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.6.tgz#bb42a1d7ae49a7258460f0d95ddb00906f59ef92" - dependencies: - "@types/bn.js" "^4.11.4" - "@types/node" "^12.6.1" - web3-core-helpers "1.2.6" - web3-core-method "1.2.6" - web3-core-requestmanager "1.2.6" - web3-utils "1.2.6" - -web3-core@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.8.tgz#2a488bb11519b71e7738265329bddc00fc200dd3" - dependencies: - "@types/bn.js" "^4.11.4" - "@types/node" "^12.6.1" - bignumber.js "^9.0.0" - web3-core-helpers "1.2.8" - web3-core-method "1.2.8" - web3-core-requestmanager "1.2.8" - web3-utils "1.2.8" - -web3-eth-abi@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.1.tgz#9b915b1c9ebf82f70cca631147035d5419064689" - dependencies: - ethers "4.0.0-beta.3" - underscore "1.9.1" - web3-utils "1.2.1" - -web3-eth-abi@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.2.tgz#d5616d88a90020f894763423a9769f2da11fe37a" - dependencies: - ethers "4.0.0-beta.3" - underscore "1.9.1" - web3-utils "1.2.2" - -web3-eth-abi@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.6.tgz#b495383cc5c0d8e2857b26e7fe25606685983b25" - dependencies: - ethers "4.0.0-beta.3" - underscore "1.9.1" - web3-utils "1.2.6" - -web3-eth-abi@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.8.tgz#7537138f3e5cd1ccf98233fa07f388aa8dc1fff1" - dependencies: - "@ethersproject/abi" "5.0.0-beta.153" - underscore "1.9.1" - web3-utils "1.2.8" - -web3-eth-accounts@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.1.tgz#2741a8ef337a7219d57959ac8bd118b9d68d63cf" - dependencies: - any-promise "1.3.0" - crypto-browserify "3.12.0" - eth-lib "0.2.7" - scryptsy "2.1.0" - semver "6.2.0" - underscore "1.9.1" - uuid "3.3.2" - web3-core "1.2.1" - web3-core-helpers "1.2.1" - web3-core-method "1.2.1" - web3-utils "1.2.1" - -web3-eth-accounts@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.2.tgz#c187e14bff6baa698ac352220290222dbfd332e5" - dependencies: - any-promise "1.3.0" - crypto-browserify "3.12.0" - eth-lib "0.2.7" - ethereumjs-common "^1.3.2" - ethereumjs-tx "^2.1.1" - scrypt-shim "github:web3-js/scrypt-shim" - underscore "1.9.1" - uuid "3.3.2" - web3-core "1.2.2" - web3-core-helpers "1.2.2" - web3-core-method "1.2.2" - web3-utils "1.2.2" - -web3-eth-accounts@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.6.tgz#a1ba4bf75fa8102a3ec6cddd0eccd72462262720" - dependencies: - "@web3-js/scrypt-shim" "^0.1.0" - any-promise "1.3.0" - crypto-browserify "3.12.0" - eth-lib "^0.2.8" - ethereumjs-common "^1.3.2" - ethereumjs-tx "^2.1.1" - underscore "1.9.1" - uuid "3.3.2" - web3-core "1.2.6" - web3-core-helpers "1.2.6" - web3-core-method "1.2.6" - web3-utils "1.2.6" - -web3-eth-accounts@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.8.tgz#e63afc6d4902f2beb0cf60e6b755c86fa5b5ccd7" - dependencies: - "@web3-js/scrypt-shim" "^0.1.0" - crypto-browserify "3.12.0" - eth-lib "^0.2.8" - ethereumjs-common "^1.3.2" - ethereumjs-tx "^2.1.1" - underscore "1.9.1" - uuid "3.3.2" - web3-core "1.2.8" - web3-core-helpers "1.2.8" - web3-core-method "1.2.8" - web3-utils "1.2.8" - -web3-eth-contract@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.1.tgz#3542424f3d341386fd9ff65e78060b85ac0ea8c4" - dependencies: - underscore "1.9.1" - web3-core "1.2.1" - web3-core-helpers "1.2.1" - web3-core-method "1.2.1" - web3-core-promievent "1.2.1" - web3-core-subscriptions "1.2.1" - web3-eth-abi "1.2.1" - web3-utils "1.2.1" - -web3-eth-contract@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz#84e92714918a29e1028ee7718f0712536e14e9a1" - dependencies: - "@types/bn.js" "^4.11.4" - underscore "1.9.1" - web3-core "1.2.2" - web3-core-helpers "1.2.2" - web3-core-method "1.2.2" - web3-core-promievent "1.2.2" - web3-core-subscriptions "1.2.2" - web3-eth-abi "1.2.2" - web3-utils "1.2.2" - -web3-eth-contract@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.6.tgz#39111543960035ed94c597a239cf5aa1da796741" - dependencies: - "@types/bn.js" "^4.11.4" - underscore "1.9.1" - web3-core "1.2.6" - web3-core-helpers "1.2.6" - web3-core-method "1.2.6" - web3-core-promievent "1.2.6" - web3-core-subscriptions "1.2.6" - web3-eth-abi "1.2.6" - web3-utils "1.2.6" - -web3-eth-contract@1.2.8, web3-eth-contract@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.8.tgz#ff75920ac698a70781edcebbf75287a6d0f14499" - dependencies: - "@types/bn.js" "^4.11.4" - underscore "1.9.1" - web3-core "1.2.8" - web3-core-helpers "1.2.8" - web3-core-method "1.2.8" - web3-core-promievent "1.2.8" - web3-core-subscriptions "1.2.8" - web3-eth-abi "1.2.8" - web3-utils "1.2.8" - -web3-eth-ens@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz#a0e52eee68c42a8b9865ceb04e5fb022c2d971d5" - dependencies: - eth-ens-namehash "2.0.8" - underscore "1.9.1" - web3-core "1.2.1" - web3-core-helpers "1.2.1" - web3-core-promievent "1.2.1" - web3-eth-abi "1.2.1" - web3-eth-contract "1.2.1" - web3-utils "1.2.1" - -web3-eth-ens@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.2.tgz#0a4abed1d4cbdacbf5e1ab06e502d806d1192bc6" - dependencies: - eth-ens-namehash "2.0.8" - underscore "1.9.1" - web3-core "1.2.2" - web3-core-helpers "1.2.2" - web3-core-promievent "1.2.2" - web3-eth-abi "1.2.2" - web3-eth-contract "1.2.2" - web3-utils "1.2.2" - -web3-eth-ens@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.6.tgz#bf86a624c4c72bc59913c2345180d3ea947e110d" - dependencies: - eth-ens-namehash "2.0.8" - underscore "1.9.1" - web3-core "1.2.6" - web3-core-helpers "1.2.6" - web3-core-promievent "1.2.6" - web3-eth-abi "1.2.6" - web3-eth-contract "1.2.6" - web3-utils "1.2.6" - -web3-eth-ens@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.8.tgz#247daddfdbf7533adb0f45cd2f75c75e52f7e678" - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - underscore "1.9.1" - web3-core "1.2.8" - web3-core-helpers "1.2.8" - web3-core-promievent "1.2.8" - web3-eth-abi "1.2.8" - web3-eth-contract "1.2.8" - web3-utils "1.2.8" - -web3-eth-iban@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.1.tgz#2c3801718946bea24e9296993a975c80b5acf880" - dependencies: - bn.js "4.11.8" - web3-utils "1.2.1" - -web3-eth-iban@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.2.tgz#76bec73bad214df7c4192388979a59fc98b96c5a" - dependencies: - bn.js "4.11.8" - web3-utils "1.2.2" - -web3-eth-iban@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.6.tgz#0b22191fd1aa6e27f7ef0820df75820bfb4ed46b" - dependencies: - bn.js "4.11.8" - web3-utils "1.2.6" - -web3-eth-iban@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.8.tgz#414e80a7fb2d1ea16490bc2c8fc29a996aec5612" - dependencies: - bn.js "4.11.8" - web3-utils "1.2.8" - -web3-eth-personal@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.1.tgz#244e9911b7b482dc17c02f23a061a627c6e47faf" - dependencies: - web3-core "1.2.1" - web3-core-helpers "1.2.1" - web3-core-method "1.2.1" - web3-net "1.2.1" - web3-utils "1.2.1" - -web3-eth-personal@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.2.tgz#eee1c86a8132fa16b5e34c6d421ca92e684f0be6" - dependencies: - "@types/node" "^12.6.1" - web3-core "1.2.2" - web3-core-helpers "1.2.2" - web3-core-method "1.2.2" - web3-net "1.2.2" - web3-utils "1.2.2" - -web3-eth-personal@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.6.tgz#47a0a0657ec04dd77f95451a6869d4751d324b6b" - dependencies: - "@types/node" "^12.6.1" - web3-core "1.2.6" - web3-core-helpers "1.2.6" - web3-core-method "1.2.6" - web3-net "1.2.6" - web3-utils "1.2.6" - -web3-eth-personal@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.8.tgz#8ebb27210b4c9c9555a30c5bb2ce8db12f84cd24" - dependencies: - "@types/node" "^12.6.1" - web3-core "1.2.8" - web3-core-helpers "1.2.8" - web3-core-method "1.2.8" - web3-net "1.2.8" - web3-utils "1.2.8" - -web3-eth@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.1.tgz#b9989e2557c73a9e8ffdc107c6dafbe72c79c1b0" - dependencies: - underscore "1.9.1" - web3-core "1.2.1" - web3-core-helpers "1.2.1" - web3-core-method "1.2.1" - web3-core-subscriptions "1.2.1" - web3-eth-abi "1.2.1" - web3-eth-accounts "1.2.1" - web3-eth-contract "1.2.1" - web3-eth-ens "1.2.1" - web3-eth-iban "1.2.1" - web3-eth-personal "1.2.1" - web3-net "1.2.1" - web3-utils "1.2.1" - -web3-eth@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.2.tgz#65a1564634a23b990efd1655bf94ad513904286c" - dependencies: - underscore "1.9.1" - web3-core "1.2.2" - web3-core-helpers "1.2.2" - web3-core-method "1.2.2" - web3-core-subscriptions "1.2.2" - web3-eth-abi "1.2.2" - web3-eth-accounts "1.2.2" - web3-eth-contract "1.2.2" - web3-eth-ens "1.2.2" - web3-eth-iban "1.2.2" - web3-eth-personal "1.2.2" - web3-net "1.2.2" - web3-utils "1.2.2" - -web3-eth@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.6.tgz#15a8c65fdde0727872848cae506758d302d8d046" - dependencies: - underscore "1.9.1" - web3-core "1.2.6" - web3-core-helpers "1.2.6" - web3-core-method "1.2.6" - web3-core-subscriptions "1.2.6" - web3-eth-abi "1.2.6" - web3-eth-accounts "1.2.6" - web3-eth-contract "1.2.6" - web3-eth-ens "1.2.6" - web3-eth-iban "1.2.6" - web3-eth-personal "1.2.6" - web3-net "1.2.6" - web3-utils "1.2.6" - -web3-eth@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.8.tgz#cf6a16fae4d7c12b90cfb6ef570cb1a2acc34c1b" - dependencies: - underscore "1.9.1" - web3-core "1.2.8" - web3-core-helpers "1.2.8" - web3-core-method "1.2.8" - web3-core-subscriptions "1.2.8" - web3-eth-abi "1.2.8" - web3-eth-accounts "1.2.8" - web3-eth-contract "1.2.8" - web3-eth-ens "1.2.8" - web3-eth-iban "1.2.8" - web3-eth-personal "1.2.8" - web3-net "1.2.8" - web3-utils "1.2.8" - -web3-net@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.1.tgz#edd249503315dd5ab4fa00220f6509d95bb7ab10" - dependencies: - web3-core "1.2.1" - web3-core-method "1.2.1" - web3-utils "1.2.1" - -web3-net@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.2.tgz#5c3226ca72df7c591422440ce6f1203fd42ddad9" - dependencies: - web3-core "1.2.2" - web3-core-method "1.2.2" - web3-utils "1.2.2" - -web3-net@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.6.tgz#035ca0fbe55282fda848ca17ebb4c8966147e5ea" - dependencies: - web3-core "1.2.6" - web3-core-method "1.2.6" - web3-utils "1.2.6" - -web3-net@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.8.tgz#582fc2d4ba32c2e5c7761624e4be7c5434142d66" - dependencies: - web3-core "1.2.8" - web3-core-method "1.2.8" - web3-utils "1.2.8" - -web3-providers-http@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.1.tgz#c93ea003a42e7b894556f7e19dd3540f947f5013" - dependencies: - web3-core-helpers "1.2.1" - xhr2-cookies "1.1.0" - -web3-providers-http@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.2.tgz#155e55c1d69f4c5cc0b411ede40dea3d06720956" - dependencies: - web3-core-helpers "1.2.2" - xhr2-cookies "1.1.0" - -web3-providers-http@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.6.tgz#3c7b1252751fb37e53b873fce9dbb6340f5e31d9" - dependencies: - web3-core-helpers "1.2.6" - xhr2-cookies "1.1.0" - -web3-providers-http@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.8.tgz#cd7fc4d49df6980b5dd0fb1b5a808bc4b6a0069d" - dependencies: - web3-core-helpers "1.2.8" - xhr2-cookies "1.1.0" - -web3-providers-ipc@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.1.tgz#017bfc687a8fc5398df2241eb98f135e3edd672c" - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.1" - -web3-providers-ipc@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.2.tgz#c6d165a12bc68674b4cdd543ea18aec79cafc2e8" - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.2" - -web3-providers-ipc@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.6.tgz#adabab5ac66b3ff8a26c7dc97af3f1a6a7609701" - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.6" - -web3-providers-ipc@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.8.tgz#47be918ddd077999aa14703169b76c807f45d894" - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.8" - -web3-providers-ws@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.1.tgz#2d941eaf3d5a8caa3214eff8dc16d96252b842cb" - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.1" - websocket "github:web3-js/WebSocket-Node#polyfill/globalThis" - -web3-providers-ws@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.2.tgz#d2c05c68598cea5ad3fa6ef076c3bcb3ca300d29" - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.2" - websocket "github:web3-js/WebSocket-Node#polyfill/globalThis" - -web3-providers-ws@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.6.tgz#3cecc49f7c99f07a75076d3c54247050bc4f7e11" - dependencies: - "@web3-js/websocket" "^1.0.29" - underscore "1.9.1" - web3-core-helpers "1.2.6" - -web3-providers-ws@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.8.tgz#9e6454edc82d753d398c8d1e044632c234434a46" - dependencies: - "@web3-js/websocket" "^1.0.29" - eventemitter3 "^4.0.0" - underscore "1.9.1" - web3-core-helpers "1.2.8" - -web3-shh@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.1.tgz#4460e3c1e07faf73ddec24ccd00da46f89152b0c" - dependencies: - web3-core "1.2.1" - web3-core-method "1.2.1" - web3-core-subscriptions "1.2.1" - web3-net "1.2.1" - -web3-shh@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.2.tgz#44ed998f2a6ba0ec5cb9d455184a0f647826a49c" - dependencies: - web3-core "1.2.2" - web3-core-method "1.2.2" - web3-core-subscriptions "1.2.2" - web3-net "1.2.2" - -web3-shh@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.6.tgz#2492616da4cac32d4c7534b890f43bac63190c14" - dependencies: - web3-core "1.2.6" - web3-core-method "1.2.6" - web3-core-subscriptions "1.2.6" - web3-net "1.2.6" - -web3-shh@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.8.tgz#5162d9d13bc6838d390df1cd39e5f87235c1c2ae" - dependencies: - web3-core "1.2.8" - web3-core-method "1.2.8" - web3-core-subscriptions "1.2.8" - web3-net "1.2.8" - -web3-utils@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.1.tgz#21466e38291551de0ab34558de21512ac4274534" - dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randomhex "0.1.5" - underscore "1.9.1" - utf8 "3.0.0" - -web3-utils@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.2.tgz#b53a08c40d2c3f31d3c4a28e7d749405df99c8c0" - dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.9.1" - utf8 "3.0.0" - -web3-utils@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.6.tgz#b9a25432da00976457fcc1094c4af8ac6d486db9" - dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.9.1" - utf8 "3.0.0" - -web3-utils@1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.8.tgz#5321d91715cd4c0869005705a33c4c042a532b18" - dependencies: - bn.js "4.11.8" - eth-lib "0.2.7" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.9.1" - utf8 "3.0.0" - -web3@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.1.tgz#5d8158bcca47838ab8c2b784a2dee4c3ceb4179b" - dependencies: - web3-bzz "1.2.1" - web3-core "1.2.1" - web3-eth "1.2.1" - web3-eth-personal "1.2.1" - web3-net "1.2.1" - web3-shh "1.2.1" - web3-utils "1.2.1" - -web3@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.2.tgz#b1b8b69aafdf94cbaeadbb68a8aa1df2ef266aec" - dependencies: - "@types/node" "^12.6.1" - web3-bzz "1.2.2" - web3-core "1.2.2" - web3-eth "1.2.2" - web3-eth-personal "1.2.2" - web3-net "1.2.2" - web3-shh "1.2.2" - web3-utils "1.2.2" - -web3@1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.6.tgz#c497dcb14cdd8d6d9fb6b445b3b68ff83f8ccf68" - dependencies: - "@types/node" "^12.6.1" - web3-bzz "1.2.6" - web3-core "1.2.6" - web3-eth "1.2.6" - web3-eth-personal "1.2.6" - web3-net "1.2.6" - web3-shh "1.2.6" - web3-utils "1.2.6" - -web3@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.8.tgz#20b24baa769e0224a708ef5bf196a5b83d19540b" - dependencies: - web3-bzz "1.2.8" - web3-core "1.2.8" - web3-eth "1.2.8" - web3-eth-personal "1.2.8" - web3-net "1.2.8" - web3-shh "1.2.8" - web3-utils "1.2.8" - -websocket@^1.0.28: - version "1.0.31" - resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.31.tgz#e5d0f16c3340ed87670e489ecae6144c79358730" - dependencies: - debug "^2.2.0" - es5-ext "^0.10.50" - nan "^2.14.0" - typedarray-to-buffer "^3.1.5" - yaeti "^0.0.6" - -"websocket@github:web3-js/WebSocket-Node#polyfill/globalThis": - version "1.0.29" - resolved "https://codeload.github.com/web3-js/WebSocket-Node/tar.gz/ef5ea2f41daf4a2113b80c9223df884b4d56c400" - dependencies: - debug "^2.2.0" - es5-ext "^0.10.50" - nan "^2.14.0" - typedarray-to-buffer "^3.1.5" - yaeti "^0.0.6" - -whatwg-fetch@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - -which-typed-array@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.2.tgz#e5f98e56bda93e3dac196b01d47c1156679c00b2" - dependencies: - available-typed-arrays "^1.0.2" - es-abstract "^1.17.5" - foreach "^2.0.5" - function-bind "^1.1.1" - has-symbols "^1.0.1" - is-typed-array "^1.1.3" - -which@1.3.1, which@^1.1.1, which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - dependencies: - isexe "^2.0.0" - -wide-align@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - dependencies: - string-width "^1.0.2 || 2" - -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - -wordwrap@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -ws@^3.0.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -ws@^5.1.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - dependencies: - async-limiter "~1.0.0" - -xhr-request-promise@^0.1.2: - version "0.1.3" - resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" - dependencies: - xhr-request "^1.1.0" - -xhr-request@^1.0.1, xhr-request@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" - dependencies: - buffer-to-arraybuffer "^0.0.5" - object-assign "^4.1.1" - query-string "^5.0.1" - simple-get "^2.7.0" - timed-out "^4.0.1" - url-set-query "^1.0.0" - xhr "^2.0.4" - -xhr2-cookies@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" - dependencies: - cookiejar "^2.1.1" - -xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: - version "2.5.0" - resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" - dependencies: - global "~4.3.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xmlhttprequest@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - dependencies: - object-keys "~0.4.0" - -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - -yaeti@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" - -yallist@^3.0.0, yallist@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - -yargs-parser@13.1.2, yargs-parser@^13.1.0, yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-unparser@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" - dependencies: - flat "^4.1.0" - lodash "^4.17.15" - yargs "^13.3.0" - -yargs@13.2.4: - version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.0" - -yargs@13.3.2, yargs@^13.3.0: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yauzl@^2.4.2: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"